archgine 1.0.19 → 1.0.20

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.
@@ -3999,7 +3999,7 @@ Ss.__DOMHandler = mi;
3999
3999
  Ss.normalizeLineEndings = Hc;
4000
4000
  Ss.DOMParser = Vc;
4001
4001
  var Fy = Ss.DOMParser;
4002
- const Uy = "1.0.19";
4002
+ const Uy = "1.0.20";
4003
4003
  function qy() {
4004
4004
  return typeof window < "u" && ({}.toString.call(window) === "[object Window]" || {}.toString.call(window) === "[object global]");
4005
4005
  }
package/lib/index.mjs CHANGED
@@ -3995,7 +3995,7 @@ tu.__DOMHandler = Us;
3995
3995
  tu.normalizeLineEndings = fp;
3996
3996
  tu.DOMParser = pp;
3997
3997
  var pv = tu.DOMParser;
3998
- const dv = "1.0.19";
3998
+ const dv = "1.0.20";
3999
3999
  function gv() {
4000
4000
  return typeof window < "u" && ({}.toString.call(window) === "[object Window]" || {}.toString.call(window) === "[object global]");
4001
4001
  }
@@ -14050,7 +14050,7 @@ class Lp extends ex {
14050
14050
  clearLegendBy(t) {
14051
14051
  var e;
14052
14052
  t || (this.legend.length = 0);
14053
- for (let r = (e = this.legend) == null ? void 0 : e.length; r >= 0; r--)
14053
+ for (let r = ((e = this.legend) == null ? void 0 : e.length) - 1; r >= 0; r--)
14054
14054
  this.legend[r].type === t && this.legend.splice(r, r);
14055
14055
  }
14056
14056
  getLegend() {
package/lib/index.umd.js CHANGED
@@ -2,7 +2,7 @@
2
2
  `,nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nhArr:"⇎",nharr:"↮",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlArr:"⇍",nlarr:"↚",nldr:"‥",nlE:"≦̸",nle:"≰",nLeftarrow:"⇍",nleftarrow:"↚",nLeftrightarrow:"⇎",nleftrightarrow:"↮",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",Nopf:"ℕ",nopf:"𝕟",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrArr:"⇏",nrarr:"↛",nrarrc:"⤳̸",nrarrw:"↝̸",nRightarrow:"⇏",nrightarrow:"↛",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nVDash:"⊯",nVdash:"⊮",nvDash:"⊭",nvdash:"⊬",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwArr:"⇖",nwarr:"↖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",ocir:"⊚",Ocirc:"Ô",ocirc:"ô",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",Or:"⩔",or:"∨",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",Otimes:"⨷",otimes:"⊗",otimesas:"⨶",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",Popf:"ℙ",popf:"𝕡",pound:"£",Pr:"⪻",pr:"≺",prap:"⪷",prcue:"≼",prE:"⪳",pre:"⪯",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",Prime:"″",prime:"′",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",Qopf:"ℚ",qopf:"𝕢",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",QUOT:'"',quot:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",Rang:"⟫",rang:"⟩",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",Rarr:"↠",rArr:"⇒",rarr:"→",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",rAtail:"⤜",ratail:"⤚",ratio:"∶",rationals:"ℚ",RBarr:"⤐",rBarr:"⤏",rbarr:"⤍",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",REG:"®",reg:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",Rfr:"ℜ",rfr:"𝔯",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrow:"→",Rightarrow:"⇒",rightarrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",Ropf:"ℝ",ropf:"𝕣",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",Rscr:"ℛ",rscr:"𝓇",Rsh:"↱",rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",Sc:"⪼",sc:"≻",scap:"⪸",Scaron:"Š",scaron:"š",sccue:"≽",scE:"⪴",sce:"⪰",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",seArr:"⇘",searr:"↘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",sol:"/",solb:"⧄",solbar:"⌿",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",Square:"□",square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",Sub:"⋐",sub:"⊂",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",Subset:"⋐",subset:"⊂",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",Sum:"∑",sum:"∑",sung:"♪",Sup:"⋑",sup:"⊃",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",Supset:"⋑",supset:"⊃",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swArr:"⇙",swarr:"↙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:" ",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",Therefore:"∴",therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",Tilde:"∼",tilde:"˜",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",TRADE:"™",trade:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",Uarr:"↟",uArr:"⇑",uarr:"↑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrow:"↑",Uparrow:"⇑",uparrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",UpDownArrow:"↕",Updownarrow:"⇕",updownarrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",Upsi:"ϒ",upsi:"υ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",vArr:"⇕",varr:"↕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",Vbar:"⫫",vBar:"⫨",vBarv:"⫩",Vcy:"В",vcy:"в",VDash:"⊫",Vdash:"⊩",vDash:"⊨",vdash:"⊢",Vdashl:"⫦",Vee:"⋁",vee:"∨",veebar:"⊻",veeeq:"≚",vellip:"⋮",Verbar:"‖",verbar:"|",Vert:"‖",vert:"|",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",Wedge:"⋀",wedge:"∧",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xhArr:"⟺",xharr:"⟷",Xi:"Ξ",xi:"ξ",xlArr:"⟸",xlarr:"⟵",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrArr:"⟹",xrarr:"⟶",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",Yuml:"Ÿ",yuml:"ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",Zfr:"ℨ",zfr:"𝔷",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",Zopf:"ℤ",zopf:"𝕫",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}),n.entityMap=n.HTML_ENTITIES})(ah);var Eu={},Wn=wi.NAMESPACE,bu=/[A-Z_a-z\xC0-\xD6\xD8-\xF6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/,uh=new RegExp("[\\-\\.0-9"+bu.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),oh=new RegExp("^"+bu.source+uh.source+"*(?::"+bu.source+uh.source+"*)?$"),zn=0,Qi=1,Kr=2,Vn=3,Qr=4,Jr=5,$n=6,Zs=7;function jr(n,t){this.message=n,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,jr)}jr.prototype=new Error,jr.prototype.name=jr.name;function lh(){}lh.prototype={parse:function(n,t,e){var r=this.domBuilder;r.startDocument(),fh(t,t={}),od(n,t,e,r,this.errorHandler),r.endDocument()}};function od(n,t,e,r,a){function u(B){if(B>65535){B-=65536;var Pt=55296+(B>>10),Le=56320+(B&1023);return String.fromCharCode(Pt,Le)}else return String.fromCharCode(B)}function l(B){var Pt=B.slice(1,-1);return Object.hasOwnProperty.call(e,Pt)?e[Pt]:Pt.charAt(0)==="#"?u(parseInt(Pt.substr(1).replace("x","0x"))):(a.error("entity not found:"+B),B)}function c(B){if(B>S){var Pt=n.substring(S,B).replace(/&#?\w+;/g,l);b&&f(S),r.characters(Pt,0,B-S),S=B}}function f(B,Pt){for(;B>=x&&(Pt=E.exec(n));)g=Pt.index,x=g+Pt[0].length,b.lineNumber++;b.columnNumber=B-g+1}for(var g=0,x=0,E=/.*(?:\r\n?|\n)|.*$/g,b=r.locator,T=[{currentNSMap:t}],I={},S=0;;){try{var D=n.indexOf("<",S);if(D<0){if(!n.substr(S).match(/^\s*$/)){var k=r.doc,V=k.createTextNode(n.substr(S));k.appendChild(V),r.currentElement=V}return}switch(D>S&&c(D),n.charAt(D+1)){case"/":var nt=n.indexOf(">",D+3),W=n.substring(D+2,nt).replace(/[ \t\n\r]+$/g,""),X=T.pop();nt<0?(W=n.substring(D+2).replace(/[\s<].*/,""),a.error("end tag name: "+W+" is not complete:"+X.tagName),nt=D+1+W.length):W.match(/\s</)&&(W=W.replace(/[\s<].*/,""),a.error("end tag name: "+W+" maybe not complete"),nt=D+1+W.length);var $=X.localNSMap,K=X.tagName==W,tt=K||X.tagName&&X.tagName.toLowerCase()==W.toLowerCase();if(tt){if(r.endElement(X.uri,X.localName,W),$)for(var Z in $)Object.prototype.hasOwnProperty.call($,Z)&&r.endPrefixMapping(Z);K||a.fatalError("end tag name: "+W+" is not match the current start tagName:"+X.tagName)}else T.push(X);nt++;break;case"?":b&&f(D),nt=pd(n,D,r);break;case"!":b&&f(D),nt=fd(n,D,r,a);break;default:b&&f(D);var z=new ph,J=T[T.length-1].currentNSMap,nt=ld(n,D,z,J,l,a),mt=z.length;if(!z.closed&&cd(n,nt,z.tagName,I)&&(z.closed=!0,e.nbsp||a.warning("unclosed xml attribute")),b&&mt){for(var It=hh(b,{}),Ct=0;Ct<mt;Ct++){var yt=z[Ct];f(yt.offset),yt.locator=hh(b,{})}r.locator=It,ch(z,r,J)&&T.push(z),r.locator=b}else ch(z,r,J)&&T.push(z);Wn.isHTML(z.uri)&&!z.closed?nt=hd(n,nt,z.tagName,l,r):nt++}}catch(B){if(B instanceof jr)throw B;a.error("element parse error: "+B),nt=-1}nt>S?S=nt:c(Math.max(D,S)+1)}}function hh(n,t){return t.lineNumber=n.lineNumber,t.columnNumber=n.columnNumber,t}function ld(n,t,e,r,a,u){function l(b,T,I){e.attributeNames.hasOwnProperty(b)&&u.fatalError("Attribute "+b+" redefined"),e.addValue(b,T.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,a),I)}for(var c,f,g=++t,x=zn;;){var E=n.charAt(g);switch(E){case"=":if(x===Qi)c=n.slice(t,g),x=Vn;else if(x===Kr)x=Vn;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(x===Vn||x===Qi)if(x===Qi&&(u.warning('attribute value must after "="'),c=n.slice(t,g)),t=g+1,g=n.indexOf(E,t),g>0)f=n.slice(t,g),l(c,f,t-1),x=Jr;else throw new Error("attribute value no end '"+E+"' match");else if(x==Qr)f=n.slice(t,g),l(c,f,t),u.warning('attribute "'+c+'" missed start quot('+E+")!!"),t=g+1,x=Jr;else throw new Error('attribute value must after "="');break;case"/":switch(x){case zn:e.setTagName(n.slice(t,g));case Jr:case $n:case Zs:x=Zs,e.closed=!0;case Qr:case Qi:break;case Kr:e.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return u.error("unexpected end of input"),x==zn&&e.setTagName(n.slice(t,g)),g;case">":switch(x){case zn:e.setTagName(n.slice(t,g));case Jr:case $n:case Zs:break;case Qr:case Qi:f=n.slice(t,g),f.slice(-1)==="/"&&(e.closed=!0,f=f.slice(0,-1));case Kr:x===Kr&&(f=c),x==Qr?(u.warning('attribute "'+f+'" missed quot(")!'),l(c,f,t)):((!Wn.isHTML(r[""])||!f.match(/^(?:disabled|checked|selected)$/i))&&u.warning('attribute "'+f+'" missed value!! "'+f+'" instead!!'),l(f,f,t));break;case Vn:throw new Error("attribute value missed!!")}return g;case"€":E=" ";default:if(E<=" ")switch(x){case zn:e.setTagName(n.slice(t,g)),x=$n;break;case Qi:c=n.slice(t,g),x=Kr;break;case Qr:var f=n.slice(t,g);u.warning('attribute "'+f+'" missed quot(")!!'),l(c,f,t);case Jr:x=$n;break}else switch(x){case Kr:e.tagName,(!Wn.isHTML(r[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&u.warning('attribute "'+c+'" missed value!! "'+c+'" instead2!!'),l(c,c,t),t=g,x=Qi;break;case Jr:u.warning('attribute space is required"'+c+'"!!');case $n:x=Qi,t=g;break;case Vn:x=Qr,t=g;break;case Zs:throw new Error("elements closed character '/' and '>' must be connected to")}}g++}}function ch(n,t,e){for(var r=n.tagName,a=null,E=n.length;E--;){var u=n[E],l=u.qName,c=u.value,b=l.indexOf(":");if(b>0)var f=u.prefix=l.slice(0,b),g=l.slice(b+1),x=f==="xmlns"&&g;else g=l,f=null,x=l==="xmlns"&&"";u.localName=g,x!==!1&&(a==null&&(a={},fh(e,e={})),e[x]=a[x]=c,u.uri=Wn.XMLNS,t.startPrefixMapping(x,c))}for(var E=n.length;E--;){u=n[E];var f=u.prefix;f&&(f==="xml"&&(u.uri=Wn.XML),f!=="xmlns"&&(u.uri=e[f||""]))}var b=r.indexOf(":");b>0?(f=n.prefix=r.slice(0,b),g=n.localName=r.slice(b+1)):(f=null,g=n.localName=r);var T=n.uri=e[f||""];if(t.startElement(T,g,r,n),n.closed){if(t.endElement(T,g,r),a)for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&t.endPrefixMapping(f)}else return n.currentNSMap=e,n.localNSMap=a,!0}function hd(n,t,e,r,a){if(/^(?:script|textarea)$/i.test(e)){var u=n.indexOf("</"+e+">",t),l=n.substring(t+1,u);if(/[&<]/.test(l))return/^script$/i.test(e)?(a.characters(l,0,l.length),u):(l=l.replace(/&#?\w+;/g,r),a.characters(l,0,l.length),u)}return t+1}function cd(n,t,e,r){var a=r[e];return a==null&&(a=n.lastIndexOf("</"+e+">"),a<t&&(a=n.lastIndexOf("</"+e)),r[e]=a),a<t}function fh(n,t){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])}function fd(n,t,e,r){var a=n.charAt(t+2);switch(a){case"-":if(n.charAt(t+3)==="-"){var u=n.indexOf("-->",t+4);return u>t?(e.comment(n,t+4,u-t-4),u+3):(r.error("Unclosed comment"),-1)}else return-1;default:if(n.substr(t+3,6)=="CDATA["){var u=n.indexOf("]]>",t+9);return e.startCDATA(),e.characters(n,t+9,u-t-9),e.endCDATA(),u+3}var l=dd(n,t),c=l.length;if(c>1&&/!doctype/i.test(l[0][0])){var f=l[1][0],g=!1,x=!1;c>3&&(/^public$/i.test(l[2][0])?(g=l[3][0],x=c>4&&l[4][0]):/^system$/i.test(l[2][0])&&(x=l[3][0]));var E=l[c-1];return e.startDTD(f,g,x),e.endDTD(),E.index+E[0].length}}return-1}function pd(n,t,e){var r=n.indexOf("?>",t);if(r){var a=n.substring(t,r).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);return a?(a[0].length,e.processingInstruction(a[1],a[2]),r+2):-1}return-1}function ph(){this.attributeNames={}}ph.prototype={setTagName:function(n){if(!oh.test(n))throw new Error("invalid tagName:"+n);this.tagName=n},addValue:function(n,t,e){if(!oh.test(n))throw new Error("invalid attribute:"+n);this.attributeNames[n]=this.length,this[this.length++]={qName:n,value:t,offset:e}},length:0,getLocalName:function(n){return this[n].localName},getLocator:function(n){return this[n].locator},getQName:function(n){return this[n].qName},getURI:function(n){return this[n].uri},getValue:function(n){return this[n].value}};function dd(n,t){var e,r=[],a=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(a.lastIndex=t,a.exec(n);e=a.exec(n);)if(r.push(e),e[1])return r}Eu.XMLReader=lh,Eu.ParseError=jr;var gd=wi,md=Ki,dh=ah,gh=Eu,yd=md.DOMImplementation,mh=gd.NAMESPACE,vd=gh.ParseError,xd=gh.XMLReader;function yh(n){return n.replace(/\r[\n\u0085]/g,`
3
3
  `).replace(/[\r\u0085\u2028]/g,`
4
4
  `)}function vh(n){this.options=n||{locator:{}}}vh.prototype.parseFromString=function(n,t){var e=this.options,r=new xd,a=e.domBuilder||new Gn,u=e.errorHandler,l=e.locator,c=e.xmlns||{},f=/\/x?html?$/.test(t),g=f?dh.HTML_ENTITIES:dh.XML_ENTITIES;l&&a.setDocumentLocator(l),r.errorHandler=Ed(u,a,l),r.domBuilder=e.domBuilder||a,f&&(c[""]=mh.HTML),c.xml=c.xml||mh.XML;var x=e.normalizeLineEndings||yh;return n&&typeof n=="string"?r.parse(x(n),c,g):r.errorHandler.error("invalid doc source"),a.doc};function Ed(n,t,e){if(!n){if(t instanceof Gn)return t;n=t}var r={},a=n instanceof Function;e=e||{};function u(l){var c=n[l];!c&&a&&(c=n.length==2?function(f){n(l,f)}:n),r[l]=c&&function(f){c("[xmldom "+l+"] "+f+Au(e))}||function(){}}return u("warning"),u("error"),u("fatalError"),r}function Gn(){this.cdata=!1}function tn(n,t){t.lineNumber=n.lineNumber,t.columnNumber=n.columnNumber}Gn.prototype={startDocument:function(){this.doc=new yd().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(n,t,e,r){var a=this.doc,u=a.createElementNS(n,e||t),l=r.length;Ks(this,u),this.currentElement=u,this.locator&&tn(this.locator,u);for(var c=0;c<l;c++){var n=r.getURI(c),f=r.getValue(c),e=r.getQName(c),g=a.createAttributeNS(n,e);this.locator&&tn(r.getLocator(c),g),g.value=g.nodeValue=f,u.setAttributeNode(g)}},endElement:function(n,t,e){var r=this.currentElement;r.tagName,this.currentElement=r.parentNode},startPrefixMapping:function(n,t){},endPrefixMapping:function(n){},processingInstruction:function(n,t){var e=this.doc.createProcessingInstruction(n,t);this.locator&&tn(this.locator,e),Ks(this,e)},ignorableWhitespace:function(n,t,e){},characters:function(n,t,e){if(n=xh.apply(this,arguments),n){if(this.cdata)var r=this.doc.createCDATASection(n);else var r=this.doc.createTextNode(n);this.currentElement?this.currentElement.appendChild(r):/^\s*$/.test(n)&&this.doc.appendChild(r),this.locator&&tn(this.locator,r)}},skippedEntity:function(n){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(n){(this.locator=n)&&(n.lineNumber=0)},comment:function(n,t,e){n=xh.apply(this,arguments);var r=this.doc.createComment(n);this.locator&&tn(this.locator,r),Ks(this,r)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(n,t,e){var r=this.doc.implementation;if(r&&r.createDocumentType){var a=r.createDocumentType(n,t,e);this.locator&&tn(this.locator,a),Ks(this,a),this.doc.doctype=a}},warning:function(n){console.warn("[xmldom warning] "+n,Au(this.locator))},error:function(n){console.error("[xmldom error] "+n,Au(this.locator))},fatalError:function(n){throw new vd(n,this.locator)}};function Au(n){if(n)return`
5
- @`+(n.systemId||"")+"#[line:"+n.lineNumber+",col:"+n.columnNumber+"]"}function xh(n,t,e){return typeof n=="string"?n.substr(t,e):n.length>=t+e||t?new java.lang.String(n,t,e)+"":n}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(n){Gn.prototype[n]=function(){return null}});function Ks(n,t){n.currentElement?n.currentElement.appendChild(t):n.doc.appendChild(t)}Ys.__DOMHandler=Gn,Ys.normalizeLineEndings=yh,Ys.DOMParser=vh;var bd=Ys.DOMParser;const Ad="1.0.19";function wd(){return typeof window<"u"&&({}.toString.call(window)==="[object Window]"||{}.toString.call(window)==="[object global]")}const en=typeof window<"u"?window:typeof WorkerGlobalScope<"u"?self:{document:void 0,tinyEngine:void 0};en.Path2D||zp(en),en.DOMParser||(en.DOMParser=bd);const gt={window:en,version:Ad,isBrowser:wd(),dpr:typeof window<"u"&&window.devicePixelRatio||1,document:en.document,time:0,deltaTime:0,config:$r},Xn=(n,t,e)=>Math.max(t,Math.min(e,n)),Ji=(n,t=1e-6)=>Math.abs(n)<t?0:n<0?-1:1,Qs=n=>n*(Math.PI/180),Td=(n,t)=>(n%t+t)%t,wu=(n,t,e)=>(1-e)*n+e*t,_d=n=>{let t=n*(180/Math.PI);return t<0&&(t+=360),t>360&&(t-=360),t},oe={transparent:"rgba(1, 1, 1, 0)",green:"#45b787",darkGreen:"#314a43",blue:"#6e9bc5",darkBlue:"#2775b6",red:"#F26666",darkRed:"#D95970",brown:"#ECD2B9",darkBrown:"#BF9D8A",yellow:"#ECDEC0",darkYellow:"#D0AC57",lightGray:"#e0e0e0",gray:"#beb6b6",darkGray:"#918883",white:"#F2F2F2",darkWhite:"#ececec",lightBlack:"#2E3032",black:"#182327",blackAlpha5:"rgba(0, 0, 0, 0.5)"},Cd={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ze={h:0,s:0,l:0},Js={h:0,s:0,l:0};function Tu(n,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?n+(t-n)*6*e:e<1/2?t:e<2/3?n+(t-n)*6*(2/3-e):n}const Sd=/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}|[A-Fa-f0-9]{8})$|rgb\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*\)|rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*[\d.]+\s*\)/;class le{isColor=!0;r=1;g=1;b=1;a=1;constructor(t,e,r,a){return e===void 0&&r===void 0?this.set(t):this.setRGBA(t,e,r,a)}static isColor(t){return typeof t=="string"?Sd.test(t):typeof t=="number"?t>=0&&t<=16777215:!1}static getRandomStyle(){return Si.random().getStyle()}static getDarken(t,e=.8){return Si.set(t).getHSL(js),Si.setHSL(js.h,js.s,js.l*e).getStyle()}static getLighten(t,e=1.2){return this.getDarken(t,e)}static getContrast(t){return Si.set(t),Si.getContrastString()}static getArray(t){return Si.set(t).toArray()}static getComplementary(t){return Si.set(t),Si.getComplementaryString()}static getMoreTransparent(t,e){return Si.set(t).setA(e).getStyle()}set(t){return t&&t.isColor?this.copy(t):typeof t=="number"?this.setHex(t):typeof t=="string"&&this.setStyle(t),this}random(){return this.setHex(Math.floor(Math.random()*(1<<24)))}setScalar(t){return this.r=t,this.g=t,this.b=t,this.a=1,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,this.a=1,this}setR(t){return this.r=t,this}setG(t){return this.g=t,this}setB(t){return this.b=t,this}setA(t){return this.a=t,this}setRGB(t,e,r){return this.setRGBA(t,e,r,this.a)}setRGBA(t,e,r,a=1){return this.r=t,this.g=e,this.b=r,this.a=a,this}setHSL(t,e,r,a=1){if(t=Td(t,1),e=Xn(e,0,1),r=Xn(r,0,1),e===0)this.r=this.g=this.b=r;else{const u=r<=.5?r*(1+e):r+e-r*e,l=2*r-u;this.r=Tu(l,u,t+1/3),this.g=Tu(l,u,t),this.b=Tu(l,u,t-1/3)}return this.a=a,this}setStyle(t){let e;if(e=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let r;const a=e[1],u=e[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,this.a=Math.max(Math.min(1,r[4]!==void 0?parseFloat(r[4]):1),0),this;if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,this.a=Math.max(Math.min(1,r[4]!==void 0?parseFloat(r[4]):1),0),this;break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u)){const l=parseFloat(r[1])/360,c=parseInt(r[2],10)/100,f=parseInt(r[3],10)/100,g=Math.max(Math.min(1,r[4]!==void 0?parseFloat(r[4]):1),0);return this.setHSL(l,c,f,g)}break}}else if(e=/^\#([A-Fa-f\d]+)$/.exec(t)){const r=e[1],a=r.length;if(a===3)return this.r=parseInt(r.charAt(0)+r.charAt(0),16)/255,this.g=parseInt(r.charAt(1)+r.charAt(1),16)/255,this.b=parseInt(r.charAt(2)+r.charAt(2),16)/255,this.a=1,this;if(a===6)return this.r=parseInt(r.charAt(0)+r.charAt(1),16)/255,this.g=parseInt(r.charAt(2)+r.charAt(3),16)/255,this.b=parseInt(r.charAt(4)+r.charAt(5),16)/255,this.a=1,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Cd[t.toLowerCase()];return e!==void 0?this.setHex(e):console.warn("Color: Unknown color "+t),this}clone(){return new le(this.r,this.g,this.b,this.a)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this}getRGB(t=new le){return t.setRGB(this.r,this.g,this.b)}getRGBByBg(t=new le){const e=this.a,r=e*this.r+(1-e)*t.r,a=e*this.g+(1-e)*t.g,u=e*this.b+(1-e)*t.b;return new le(r,a,u)}getHex(){return Xn(this.r*255,0,255)<<16^Xn(this.g*255,0,255)<<8^Xn(this.b*255,0,255)<<0}getHSL(t){const e=this.r,r=this.g,a=this.b,u=Math.max(e,r,a),l=Math.min(e,r,a);let c=0,f;const g=(l+u)/2;if(l===u)c=0,f=0;else{const x=u-l;switch(f=g<=.5?x/(u+l):x/(2-u-l),u){case e:c=(r-a)/x+(r<a?6:0);break;case r:c=(a-e)/x+2;break;case a:c=(e-r)/x+4;break}c/=6}return t.h=c,t.s=f,t.l=g,t}getStyle(){return this.a===1?`rgb(${this.r*255|0},${this.g*255|0},${this.b*255|0})`:`rgba(${this.r*255|0},${this.g*255|0},${this.b*255|0},${this.a||1})`}getHexString(){return"#"+("000000"+this.getHex().toString(16)).slice(-6)}getBrightness(){let t=(this.r*255*299+this.g*255*587+this.b*255*144)/1e3;return t+=(255-t)*(255-this.a*255)/255,t}getContrastString(){return this.getBrightness()>125?"#2f2f2f":"#f2f2f2"}getComplementary(t=new le){const e=this.toArray(),r=[0,0,0,1];for(let a=0;a<e.length;a++)if(a<3)r[a]=1-e[a];else if(a===3)e[a]>1||e[a]<=0?r[a]=1:r[a]=Math.max(Math.min(parseFloat(e[a].toFixed(2)),1),0);else continue;return t.setRGBA(r[0],r[1],r[2],parseFloat(r[3].toFixed(2)))}getComplementaryString(){return this.getComplementary().getStyle()}getLightenOrDarken(t){if(typeof t>"u"||t>=1)return this.getHexString();const e=this.getRGBByBg(),r=e.r*t+(1-t),a=e.g*t+(1-t),u=e.b*t+(1-t);return new le(r,a,u).getHexString()}getNormalized(){return[parseFloat(Math.max(Math.min(this.r,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.g,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.b,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.a,1),0).toFixed(2))]}getNormalized3(){return[parseFloat(Math.max(Math.min(this.r,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.g,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.b,1),0).toFixed(2))]}offsetHSL(t,e,r){return this.getHSL(Ze),Ze.h+=t,Ze.s+=e,Ze.l+=r,this.setHSL(Ze.h,Ze.s,Ze.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,r){return this.r=t.r+(e.r-t.r)*r,this.g=t.g+(e.g-t.g)*r,this.b=t.b+(e.b-t.b)*r,this}lerpHSL(t,e){this.getHSL(Ze),t.getHSL(Js);const r=wu(Ze.h,Js.h,e),a=wu(Ze.s,Js.s,e),u=wu(Ze.l,Js.l,e);return this.setHSL(r,a,u),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this.a=t[e+3],this}toArray(t=[0,0,0,0],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t[e+3]=this.a,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),t.normalized===!0&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const Si=new le,js={h:0,s:0,l:0};class L{isVector2=!0;x=0;y=0;z;constructor(t=0,e=0,r){this.x=t,this.y=e,this.z=r||0}static isZero(t){return t.x===0&&t.y===0}static isEmpty(t){return!Number.isFinite(t.x)&&!Number.isFinite(t.y)}static equals(t,e,r=!0){return r?t.x===e.x&&t.y===e.y:Math.abs(t.x-e.x)<Number.EPSILON&&Math.abs(t.y-e.y)<Number.EPSILON}static getInt32Array(t,e=2){const r=new ArrayBuffer(t.length*e*4),a=new Int32Array(r);for(let u=0,l=t.length;u<l;u++)a[u*2]=t[u].x,a[u*2+1]=t[u].y;return a}static getFloat64Array(t,e=2){const r=new ArrayBuffer(t.length*e*8),a=new Float64Array(r);for(let u=0,l=t.length;u<l;u++)a[u*2]=t[u].x,a[u*2+1]=t[u].y;return a}static getVectors(t){const e=[];for(let r=0,a=t.length;r<a;r++)e.push(new L(t[r].x,t[r].y));return e}static getStrings(t){const e=[];if(!t||!t.length)return"";for(let r=0,a=t.length;r<a;r++)e.push(L.getString(t[r]));return e.join(",")}static getString(t){return`${t.x},${t.y}`}static getLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}static getDistance(t,e){return Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y))}static dot(t,e){return t.x*e.y+t.y*e.x}static cross(t,e){return t.x*e.y-t.y*e.x}static sub(t,e){return new L().subVectors(t,e)}static isPointOnSegment(t,e,r){return Ji(this.sub(t,r).cross(this.sub(e,r)))===0&&Ji(this.sub(t,r).dot(this.sub(e,r)))<=0}static angle(t,e,r){return r?Math.atan2(t.y-e.y,t.x-e.x):_d(Math.atan2(t.y-e.y,t.x-e.x))}static getSamplingPoints(t,e=100){let r=this.getClothoidPoints(t,e),a=0;for(let u=0,l=r.length;u<l;u++){let c=Math.max(0,u-1);u>0?a+=this.getDistance(r[c],r[c+1]):a=0,r[u].l=Math.round(a);let f=this.angle(r[c+1],r[c]);r[u].a=Math.round(f*100)/100}return r}static getClothoidPoints(t,e=100){let r=[],a=t.concat([]);if(!a||a.length<2)return r;a.length===2?(a.push(a[1]),a.unshift(a[0])):a.length===3&&a.splice(2,0,a[1]);for(let u=0;u<a.length-3;u+=3){let l=new L(a[u].x,a[u].y),c=new L(a[u+1].x,a[u+1].y),f=new L(a[u+2].x,a[u+2].y),g=new L(a[u+3].x,a[u+3].y),x=0;x+=l.distanceTo(c),x+=c.distanceTo(f),x+=f.distanceTo(g);let E=Math.min(.5,1/(x/e));for(let b=E;b<1;b+=E){let T=3*(c.x-l.x),I=3*(f.x-c.x)-T,S=g.x-l.x-T-I,D=3*(c.y-l.y),k=3*(f.y-c.y)-D,V=g.y-l.y-D-k,W=S*Math.pow(b,3)+I*Math.pow(b,2)+T*b+l.x,X=V*Math.pow(b,3)+k*Math.pow(b,2)+D*b+l.y;r.push({x:Math.round(W),y:Math.round(X),a:0,l:0})}}return r.unshift({x:a[0].x,y:a[0].y,a:0,l:0}),r.push({x:a[a.length-1].x,y:a[a.length-1].y,a:0,l:0}),r}static getClothoidLength(t){let e=0;if(t.length>2)for(let r=0;r<t.length;r++){let a=Math.max(0,r-1);r>0&&(e+=this.getDistance(t[a],t[a+1]))}return e}static getCircleCenterByChord(t,e,r,a=!0,u=new L){const l=this.getDistance(t,e);if(l===0)return u.x=1/0,u.y=1/0,u;_u.set((t.x+e.x)/2,(t.y+e.y)/2);const c=Math.sqrt(r*r-l*l/4),f=a?-1:1;return u.x=_u.x+f*c*(e.y-t.y)/l,u.y=_u.y-f*c*(e.x-t.x)/l,u}static isPointInCircle(t,e,r){return this.getDistance(r,t)<e}static isPointInPolygonByRay(t,e){let r=0;const a=new L().copy(t),u=new L,l=new L;for(let c=0;c<e.length;c++){c===e.length-1?(u.copy(e[c]),l.copy(e[0])):(u.copy(e[c]),l.copy(e[c+1]));let f=[u.y,l.y].sort((g,x)=>g-x);f[0]<a.y&&f[1]>a.y&&(u.x<a.x||l.x<a.x)&&r++}return r%2===1}static whichSideOfSegment(t,e,r){return(e.x-t.x)*(r.y-t.y)-(r.x-t.x)*(e.y-t.y)}static getIntersectionOfSegments(t,e,r,a,u=!1,l=new L){const c=(a.y-r.y)*(e.x-t.x)-(a.x-r.x)*(e.y-t.y);if(c===0)return l.makeEmpty();const f=(a.x-r.x)*(t.y-r.y)-(a.y-r.y)*(t.x-r.x),g=(e.x-t.x)*(t.y-r.y)-(e.y-t.y)*(t.x-r.x),x=f/c,E=g/c;return u&&(x<0||x>1||E<0||E>1)?l.makeEmpty():(l.x=t.x+x*(e.x-t.x),l.y=t.y+x*(e.y-t.y),l)}static getConvexHullByGrahamScan(t,e=!1,r=[]){if(!t||!t.length)return r;const a=t.length;let u=0;for(let f=0;f<a;f++)t[f].x<t[u].x&&(u=f);let l=u,c;do{r.push(t[l]),c=(l+1)%a;for(let f=0;f<a;f++)this.whichSideOfSegment(t[l],t[f],t[c])>0&&(c=f);l=c}while(l!==u);return e&&r.push(t[u]),r}static getPointsWithMatrix3(t,e){const r=[];if(!t)return r;for(let a=0,u=t.length;a<u;a++)r.push({x:e.elements[0]*t[a].x+e.elements[3]*t[a].y+e.elements[6],y:e.elements[1]*t[a].x+e.elements[4]*t[a].y+e.elements[7]});return r}static getPointsApplyMatrix3(t,e=[]){for(let r=0,a=e.length;r<a;r++){const u=t.elements[0]*e[r].x+t.elements[3]*e[r].y+t.elements[6],l=t.elements[1]*e[r].x+t.elements[4]*e[r].y+t.elements[7];e[r].x=u,e[r].y=l}return e}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}applyMatrix3(t){const e=this.x,r=this.y,a=t.elements;return this.x=a[0]*e+a[3]*r+a[6],this.y=a[1]*e+a[4]*r+a[7],this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}ceilToZero(){return this.x=this.x<0?Math.floor(this.x):Math.ceil(this.x),this.y=this.y<0?Math.floor(this.y):Math.ceil(this.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampLength(t,e){const r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(t,Math.min(e,r)))}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clone(){return new L(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}cross(t){return this.x*t.y-this.y*t.x}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,r=this.y-t.y;return e*e+r*r}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}dot(t){return this.x*t.x+this.y*t.y}equals(t,e=!0){return e?t.x===this.x&&t.y===this.y:Math.abs(t.x-this.x)<Number.EPSILON&&Math.abs(t.y-this.y)<Number.EPSILON}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}floorToZero(){return this.roundToZero()}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("out of range: "+t)}}identity(){return this.set(0,0)}isEmpty(){return!Number.isFinite(this.x)&&!Number.isFinite(this.y)}isZero(){return this.x===0&&this.y===0}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}lengthSq(){return this.x*this.x+this.y*this.y}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,r){return this.x=t.x+(e.x-t.x)*r,this.y=t.y+(e.y-t.y)*r,this}makeEmpty(){return this.x=1/0,this.y=1/0,this}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}maxXY(t,e){return this.x=Math.max(this.x,t),this.y=Math.max(this.y,e),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}minXY(t,e){return this.x=Math.max(this.x,t),this.y=Math.max(this.y,e),this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t,e){return this.x*=t,this.y*=e||t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this}negate(){return this.x=-this.x,this.y=-this.y,this}normalize(){return this.divideScalar(this.length()||1)}project(t){return this.applyMatrix3(t.matrixWorldInverse).applyMatrix3(t.projectionMatrix)}random(){return this.x=Math.random(),this.y=Math.random(),this}rotate(t){const e=Math.cos(t),r=Math.sin(t),a=this.x,u=this.y;return this.x=a*e-u*r,this.y=a*r+u*e,this}rotateAround(t,e){const r=Math.cos(e),a=Math.sin(e),u=this.x-t.x,l=this.y-t.y;return this.x=u*r-l*a+t.x,this.y=u*a+l*r+t.y,this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}set(t,e){return this.x=t,this.y=e,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("out of range: "+t)}return this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*3)}setLength(t){return this.normalize().multiplyScalar(t)}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}toString(){return`{x:${this.x},y:${this.y}}`}unproject(t,e=!1){return this.applyMatrix3(t.projectionMatrixInverse).applyMatrix3(t.matrixWorld)}validate(){return!(isNaN(this.x)||isNaN(this.y))}*[Symbol.iterator](){yield this.x,yield this.y}}const _u=new L,Dd=Object.freeze(Object.defineProperty({__proto__:null,default:L},Symbol.toStringTag,{value:"Module"})),Nd=gt.window.requestAnimationFrame,Yn=gt.window.performance?()=>gt.window.performance.now():()=>new Date().getTime(),Eh=Nd;class wt{static idCounter=0;id=wt.idCounter++;timers=new Map;timersDuration=new Map;counters=new Map;countersAmount=new Map;out=[];constructor(){}destroy(){wt.remove(this)}addTimer(t,e=Yn(),r=Yn()-(this.timersDuration.get(t)||Yn())){this.addTimerDuration(t,r),this.timersDuration.set(t,e)}addTimerDuration(t,e){var r;this.timers.has(t)||this.timers.set(t,[]),(r=this.timers.get(t))==null||r.push(e)}calculateTimers(){this.timers.forEach((t,e)=>{!t||!t.length||(this.out.push(this.calculateDurations(e,t)),t.length=0)})}addCounterAmount(t,e){var r;this.counters.has(t)||this.counters.set(t,[]),(r=this.counters.get(t))==null||r.push(e)}calculateCounters(){this.counters.forEach((t,e)=>{!t||!t.length||(this.out.push(this.calculateAmounts(e,t)),t.length=0)})}start(){return this.stop(),wt.add(this),this}stop(){return wt.remove(this),this}calculateDurations(t,e){const r={name:t,avg:0,min:0,max:0,stdDev:0,count:0,FPS:0};if(!e||!e.length)return r;const a=e.length,{min:u,max:l,avg:c}=this.minMaxAvg(e),f=parseFloat(this.stdDev(e,c).toFixed(2));return{name:t,avg:this.fd(c),min:this.fd(u),max:this.fd(l),stdDev:f,count:a,FPS:Math.ceil(a/wt.duration*1e3)}}calculateAmounts(t,e){const r={name:t,avg:0,min:0,max:0,stdDev:0,count:0,FPS:0};if(!e||!e.length)return r;const a=e.length,{min:u,max:l,avg:c}=this.minMaxAvg(e),f=this.stdDev(e,c);return{name:t,avg:c,min:u,max:l,stdDev:f,count:a,FPS:Math.ceil(a/wt.duration*1e3)}}minMaxAvg(t){let e=t[0],r=t[0],a=t.length,u=0;for(let c=0;c<t.length;c++){const f=t[c];u+=f,f<e&&(e=f),f>r&&(r=f)}const l=u/a;return{min:this.fx(e),max:this.fx(r),avg:this.fx(l)}}stdDev(t,e){let r=0;for(let u=0;u<t.length;u++){const l=t[u];r+=(l-e)*(l-e)}const a=t.length;return this.fx(Math.sqrt(r/a))}fd(t){return t>1e3?(t/1e3).toFixed(1)+"s":t.toFixed(1)+"ms"}fx(t,e=1){return e===1?Math.round(t*10)/10:e===2?Math.round(t*100)/100:e===3?Math.round(t*1e3)/1e3:t}static children=[];static isRunning=!1;static actived=!1;static duration=0;static lastTime=Yn();static messages=[];static maxLetters=20;static active(t){t?wt.actived=!0:wt.actived=!1,wt.duration=t||0}static add(t){this.children.push(t),this.handleStart()}static remove(t){for(let e=0,r=wt.children.length;e<r;e++)if(wt.children[e].id===t.id){this.children.splice(e,1);break}}static handleStart(){this.isRunning||(this.isRunning=!0,Eh(this.runLoop))}static runLoop(){wt.children.length?(wt.runFrames(),Eh(wt.runLoop)):wt.isRunning=!1}static runFrames(){let t,e=Yn();if(!(e-wt.lastTime<wt.duration)){wt.lastTime=e;for(let r=0,a=this.children.length;r<a;r++)t=this.children[r],t.calculateTimers(),t.calculateCounters(),wt.messages=wt.messages.concat(t.out),t.out.length=0;if(wt.messages.length){if(wt.actived){let r=[];r.push(Md),r.push(Od),r.push(Bd),this.messages.forEach(a=>r.push(Ud(a,this.maxLetters))),r.push(Id),console.log(r.join(`
5
+ @`+(n.systemId||"")+"#[line:"+n.lineNumber+",col:"+n.columnNumber+"]"}function xh(n,t,e){return typeof n=="string"?n.substr(t,e):n.length>=t+e||t?new java.lang.String(n,t,e)+"":n}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(n){Gn.prototype[n]=function(){return null}});function Ks(n,t){n.currentElement?n.currentElement.appendChild(t):n.doc.appendChild(t)}Ys.__DOMHandler=Gn,Ys.normalizeLineEndings=yh,Ys.DOMParser=vh;var bd=Ys.DOMParser;const Ad="1.0.20";function wd(){return typeof window<"u"&&({}.toString.call(window)==="[object Window]"||{}.toString.call(window)==="[object global]")}const en=typeof window<"u"?window:typeof WorkerGlobalScope<"u"?self:{document:void 0,tinyEngine:void 0};en.Path2D||zp(en),en.DOMParser||(en.DOMParser=bd);const gt={window:en,version:Ad,isBrowser:wd(),dpr:typeof window<"u"&&window.devicePixelRatio||1,document:en.document,time:0,deltaTime:0,config:$r},Xn=(n,t,e)=>Math.max(t,Math.min(e,n)),Ji=(n,t=1e-6)=>Math.abs(n)<t?0:n<0?-1:1,Qs=n=>n*(Math.PI/180),Td=(n,t)=>(n%t+t)%t,wu=(n,t,e)=>(1-e)*n+e*t,_d=n=>{let t=n*(180/Math.PI);return t<0&&(t+=360),t>360&&(t-=360),t},oe={transparent:"rgba(1, 1, 1, 0)",green:"#45b787",darkGreen:"#314a43",blue:"#6e9bc5",darkBlue:"#2775b6",red:"#F26666",darkRed:"#D95970",brown:"#ECD2B9",darkBrown:"#BF9D8A",yellow:"#ECDEC0",darkYellow:"#D0AC57",lightGray:"#e0e0e0",gray:"#beb6b6",darkGray:"#918883",white:"#F2F2F2",darkWhite:"#ececec",lightBlack:"#2E3032",black:"#182327",blackAlpha5:"rgba(0, 0, 0, 0.5)"},Cd={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074},Ze={h:0,s:0,l:0},Js={h:0,s:0,l:0};function Tu(n,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?n+(t-n)*6*e:e<1/2?t:e<2/3?n+(t-n)*6*(2/3-e):n}const Sd=/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3}|[A-Fa-f0-9]{8})$|rgb\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*\)|rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*[\d.]+\s*\)/;class le{isColor=!0;r=1;g=1;b=1;a=1;constructor(t,e,r,a){return e===void 0&&r===void 0?this.set(t):this.setRGBA(t,e,r,a)}static isColor(t){return typeof t=="string"?Sd.test(t):typeof t=="number"?t>=0&&t<=16777215:!1}static getRandomStyle(){return Si.random().getStyle()}static getDarken(t,e=.8){return Si.set(t).getHSL(js),Si.setHSL(js.h,js.s,js.l*e).getStyle()}static getLighten(t,e=1.2){return this.getDarken(t,e)}static getContrast(t){return Si.set(t),Si.getContrastString()}static getArray(t){return Si.set(t).toArray()}static getComplementary(t){return Si.set(t),Si.getComplementaryString()}static getMoreTransparent(t,e){return Si.set(t).setA(e).getStyle()}set(t){return t&&t.isColor?this.copy(t):typeof t=="number"?this.setHex(t):typeof t=="string"&&this.setStyle(t),this}random(){return this.setHex(Math.floor(Math.random()*(1<<24)))}setScalar(t){return this.r=t,this.g=t,this.b=t,this.a=1,this}setHex(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(t&255)/255,this.a=1,this}setR(t){return this.r=t,this}setG(t){return this.g=t,this}setB(t){return this.b=t,this}setA(t){return this.a=t,this}setRGB(t,e,r){return this.setRGBA(t,e,r,this.a)}setRGBA(t,e,r,a=1){return this.r=t,this.g=e,this.b=r,this.a=a,this}setHSL(t,e,r,a=1){if(t=Td(t,1),e=Xn(e,0,1),r=Xn(r,0,1),e===0)this.r=this.g=this.b=r;else{const u=r<=.5?r*(1+e):r+e-r*e,l=2*r-u;this.r=Tu(l,u,t+1/3),this.g=Tu(l,u,t),this.b=Tu(l,u,t-1/3)}return this.a=a,this}setStyle(t){let e;if(e=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let r;const a=e[1],u=e[2];switch(a){case"rgb":case"rgba":if(r=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return this.r=Math.min(255,parseInt(r[1],10))/255,this.g=Math.min(255,parseInt(r[2],10))/255,this.b=Math.min(255,parseInt(r[3],10))/255,this.a=Math.max(Math.min(1,r[4]!==void 0?parseFloat(r[4]):1),0),this;if(r=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return this.r=Math.min(100,parseInt(r[1],10))/100,this.g=Math.min(100,parseInt(r[2],10))/100,this.b=Math.min(100,parseInt(r[3],10))/100,this.a=Math.max(Math.min(1,r[4]!==void 0?parseFloat(r[4]):1),0),this;break;case"hsl":case"hsla":if(r=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u)){const l=parseFloat(r[1])/360,c=parseInt(r[2],10)/100,f=parseInt(r[3],10)/100,g=Math.max(Math.min(1,r[4]!==void 0?parseFloat(r[4]):1),0);return this.setHSL(l,c,f,g)}break}}else if(e=/^\#([A-Fa-f\d]+)$/.exec(t)){const r=e[1],a=r.length;if(a===3)return this.r=parseInt(r.charAt(0)+r.charAt(0),16)/255,this.g=parseInt(r.charAt(1)+r.charAt(1),16)/255,this.b=parseInt(r.charAt(2)+r.charAt(2),16)/255,this.a=1,this;if(a===6)return this.r=parseInt(r.charAt(0)+r.charAt(1),16)/255,this.g=parseInt(r.charAt(2)+r.charAt(3),16)/255,this.b=parseInt(r.charAt(4)+r.charAt(5),16)/255,this.a=1,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Cd[t.toLowerCase()];return e!==void 0?this.setHex(e):console.warn("Color: Unknown color "+t),this}clone(){return new le(this.r,this.g,this.b,this.a)}copy(t){return this.r=t.r,this.g=t.g,this.b=t.b,this.a=t.a,this}getRGB(t=new le){return t.setRGB(this.r,this.g,this.b)}getRGBByBg(t=new le){const e=this.a,r=e*this.r+(1-e)*t.r,a=e*this.g+(1-e)*t.g,u=e*this.b+(1-e)*t.b;return new le(r,a,u)}getHex(){return Xn(this.r*255,0,255)<<16^Xn(this.g*255,0,255)<<8^Xn(this.b*255,0,255)<<0}getHSL(t){const e=this.r,r=this.g,a=this.b,u=Math.max(e,r,a),l=Math.min(e,r,a);let c=0,f;const g=(l+u)/2;if(l===u)c=0,f=0;else{const x=u-l;switch(f=g<=.5?x/(u+l):x/(2-u-l),u){case e:c=(r-a)/x+(r<a?6:0);break;case r:c=(a-e)/x+2;break;case a:c=(e-r)/x+4;break}c/=6}return t.h=c,t.s=f,t.l=g,t}getStyle(){return this.a===1?`rgb(${this.r*255|0},${this.g*255|0},${this.b*255|0})`:`rgba(${this.r*255|0},${this.g*255|0},${this.b*255|0},${this.a||1})`}getHexString(){return"#"+("000000"+this.getHex().toString(16)).slice(-6)}getBrightness(){let t=(this.r*255*299+this.g*255*587+this.b*255*144)/1e3;return t+=(255-t)*(255-this.a*255)/255,t}getContrastString(){return this.getBrightness()>125?"#2f2f2f":"#f2f2f2"}getComplementary(t=new le){const e=this.toArray(),r=[0,0,0,1];for(let a=0;a<e.length;a++)if(a<3)r[a]=1-e[a];else if(a===3)e[a]>1||e[a]<=0?r[a]=1:r[a]=Math.max(Math.min(parseFloat(e[a].toFixed(2)),1),0);else continue;return t.setRGBA(r[0],r[1],r[2],parseFloat(r[3].toFixed(2)))}getComplementaryString(){return this.getComplementary().getStyle()}getLightenOrDarken(t){if(typeof t>"u"||t>=1)return this.getHexString();const e=this.getRGBByBg(),r=e.r*t+(1-t),a=e.g*t+(1-t),u=e.b*t+(1-t);return new le(r,a,u).getHexString()}getNormalized(){return[parseFloat(Math.max(Math.min(this.r,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.g,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.b,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.a,1),0).toFixed(2))]}getNormalized3(){return[parseFloat(Math.max(Math.min(this.r,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.g,1),0).toFixed(2)),parseFloat(Math.max(Math.min(this.b,1),0).toFixed(2))]}offsetHSL(t,e,r){return this.getHSL(Ze),Ze.h+=t,Ze.s+=e,Ze.l+=r,this.setHSL(Ze.h,Ze.s,Ze.l),this}add(t){return this.r+=t.r,this.g+=t.g,this.b+=t.b,this}addColors(t,e){return this.r=t.r+e.r,this.g=t.g+e.g,this.b=t.b+e.b,this}addScalar(t){return this.r+=t,this.g+=t,this.b+=t,this}sub(t){return this.r=Math.max(0,this.r-t.r),this.g=Math.max(0,this.g-t.g),this.b=Math.max(0,this.b-t.b),this}multiply(t){return this.r*=t.r,this.g*=t.g,this.b*=t.b,this}multiplyScalar(t){return this.r*=t,this.g*=t,this.b*=t,this}lerp(t,e){return this.r+=(t.r-this.r)*e,this.g+=(t.g-this.g)*e,this.b+=(t.b-this.b)*e,this}lerpColors(t,e,r){return this.r=t.r+(e.r-t.r)*r,this.g=t.g+(e.g-t.g)*r,this.b=t.b+(e.b-t.b)*r,this}lerpHSL(t,e){this.getHSL(Ze),t.getHSL(Js);const r=wu(Ze.h,Js.h,e),a=wu(Ze.s,Js.s,e),u=wu(Ze.l,Js.l,e);return this.setHSL(r,a,u),this}equals(t){return t.r===this.r&&t.g===this.g&&t.b===this.b}fromArray(t,e=0){return this.r=t[e],this.g=t[e+1],this.b=t[e+2],this.a=t[e+3],this}toArray(t=[0,0,0,0],e=0){return t[e]=this.r,t[e+1]=this.g,t[e+2]=this.b,t[e+3]=this.a,t}fromBufferAttribute(t,e){return this.r=t.getX(e),this.g=t.getY(e),this.b=t.getZ(e),t.normalized===!0&&(this.r/=255,this.g/=255,this.b/=255),this}toJSON(){return this.getHex()}*[Symbol.iterator](){yield this.r,yield this.g,yield this.b}}const Si=new le,js={h:0,s:0,l:0};class L{isVector2=!0;x=0;y=0;z;constructor(t=0,e=0,r){this.x=t,this.y=e,this.z=r||0}static isZero(t){return t.x===0&&t.y===0}static isEmpty(t){return!Number.isFinite(t.x)&&!Number.isFinite(t.y)}static equals(t,e,r=!0){return r?t.x===e.x&&t.y===e.y:Math.abs(t.x-e.x)<Number.EPSILON&&Math.abs(t.y-e.y)<Number.EPSILON}static getInt32Array(t,e=2){const r=new ArrayBuffer(t.length*e*4),a=new Int32Array(r);for(let u=0,l=t.length;u<l;u++)a[u*2]=t[u].x,a[u*2+1]=t[u].y;return a}static getFloat64Array(t,e=2){const r=new ArrayBuffer(t.length*e*8),a=new Float64Array(r);for(let u=0,l=t.length;u<l;u++)a[u*2]=t[u].x,a[u*2+1]=t[u].y;return a}static getVectors(t){const e=[];for(let r=0,a=t.length;r<a;r++)e.push(new L(t[r].x,t[r].y));return e}static getStrings(t){const e=[];if(!t||!t.length)return"";for(let r=0,a=t.length;r<a;r++)e.push(L.getString(t[r]));return e.join(",")}static getString(t){return`${t.x},${t.y}`}static getLength(t){return Math.sqrt(t.x*t.x+t.y*t.y)}static getDistance(t,e){return Math.sqrt((t.x-e.x)*(t.x-e.x)+(t.y-e.y)*(t.y-e.y))}static dot(t,e){return t.x*e.y+t.y*e.x}static cross(t,e){return t.x*e.y-t.y*e.x}static sub(t,e){return new L().subVectors(t,e)}static isPointOnSegment(t,e,r){return Ji(this.sub(t,r).cross(this.sub(e,r)))===0&&Ji(this.sub(t,r).dot(this.sub(e,r)))<=0}static angle(t,e,r){return r?Math.atan2(t.y-e.y,t.x-e.x):_d(Math.atan2(t.y-e.y,t.x-e.x))}static getSamplingPoints(t,e=100){let r=this.getClothoidPoints(t,e),a=0;for(let u=0,l=r.length;u<l;u++){let c=Math.max(0,u-1);u>0?a+=this.getDistance(r[c],r[c+1]):a=0,r[u].l=Math.round(a);let f=this.angle(r[c+1],r[c]);r[u].a=Math.round(f*100)/100}return r}static getClothoidPoints(t,e=100){let r=[],a=t.concat([]);if(!a||a.length<2)return r;a.length===2?(a.push(a[1]),a.unshift(a[0])):a.length===3&&a.splice(2,0,a[1]);for(let u=0;u<a.length-3;u+=3){let l=new L(a[u].x,a[u].y),c=new L(a[u+1].x,a[u+1].y),f=new L(a[u+2].x,a[u+2].y),g=new L(a[u+3].x,a[u+3].y),x=0;x+=l.distanceTo(c),x+=c.distanceTo(f),x+=f.distanceTo(g);let E=Math.min(.5,1/(x/e));for(let b=E;b<1;b+=E){let T=3*(c.x-l.x),I=3*(f.x-c.x)-T,S=g.x-l.x-T-I,D=3*(c.y-l.y),k=3*(f.y-c.y)-D,V=g.y-l.y-D-k,W=S*Math.pow(b,3)+I*Math.pow(b,2)+T*b+l.x,X=V*Math.pow(b,3)+k*Math.pow(b,2)+D*b+l.y;r.push({x:Math.round(W),y:Math.round(X),a:0,l:0})}}return r.unshift({x:a[0].x,y:a[0].y,a:0,l:0}),r.push({x:a[a.length-1].x,y:a[a.length-1].y,a:0,l:0}),r}static getClothoidLength(t){let e=0;if(t.length>2)for(let r=0;r<t.length;r++){let a=Math.max(0,r-1);r>0&&(e+=this.getDistance(t[a],t[a+1]))}return e}static getCircleCenterByChord(t,e,r,a=!0,u=new L){const l=this.getDistance(t,e);if(l===0)return u.x=1/0,u.y=1/0,u;_u.set((t.x+e.x)/2,(t.y+e.y)/2);const c=Math.sqrt(r*r-l*l/4),f=a?-1:1;return u.x=_u.x+f*c*(e.y-t.y)/l,u.y=_u.y-f*c*(e.x-t.x)/l,u}static isPointInCircle(t,e,r){return this.getDistance(r,t)<e}static isPointInPolygonByRay(t,e){let r=0;const a=new L().copy(t),u=new L,l=new L;for(let c=0;c<e.length;c++){c===e.length-1?(u.copy(e[c]),l.copy(e[0])):(u.copy(e[c]),l.copy(e[c+1]));let f=[u.y,l.y].sort((g,x)=>g-x);f[0]<a.y&&f[1]>a.y&&(u.x<a.x||l.x<a.x)&&r++}return r%2===1}static whichSideOfSegment(t,e,r){return(e.x-t.x)*(r.y-t.y)-(r.x-t.x)*(e.y-t.y)}static getIntersectionOfSegments(t,e,r,a,u=!1,l=new L){const c=(a.y-r.y)*(e.x-t.x)-(a.x-r.x)*(e.y-t.y);if(c===0)return l.makeEmpty();const f=(a.x-r.x)*(t.y-r.y)-(a.y-r.y)*(t.x-r.x),g=(e.x-t.x)*(t.y-r.y)-(e.y-t.y)*(t.x-r.x),x=f/c,E=g/c;return u&&(x<0||x>1||E<0||E>1)?l.makeEmpty():(l.x=t.x+x*(e.x-t.x),l.y=t.y+x*(e.y-t.y),l)}static getConvexHullByGrahamScan(t,e=!1,r=[]){if(!t||!t.length)return r;const a=t.length;let u=0;for(let f=0;f<a;f++)t[f].x<t[u].x&&(u=f);let l=u,c;do{r.push(t[l]),c=(l+1)%a;for(let f=0;f<a;f++)this.whichSideOfSegment(t[l],t[f],t[c])>0&&(c=f);l=c}while(l!==u);return e&&r.push(t[u]),r}static getPointsWithMatrix3(t,e){const r=[];if(!t)return r;for(let a=0,u=t.length;a<u;a++)r.push({x:e.elements[0]*t[a].x+e.elements[3]*t[a].y+e.elements[6],y:e.elements[1]*t[a].x+e.elements[4]*t[a].y+e.elements[7]});return r}static getPointsApplyMatrix3(t,e=[]){for(let r=0,a=e.length;r<a;r++){const u=t.elements[0]*e[r].x+t.elements[3]*e[r].y+t.elements[6],l=t.elements[1]*e[r].x+t.elements[4]*e[r].y+t.elements[7];e[r].x=u,e[r].y=l}return e}add(t){return this.x+=t.x,this.y+=t.y,this}addScalar(t){return this.x+=t,this.y+=t,this}addScaledVector(t,e){return this.x+=t.x*e,this.y+=t.y*e,this}addVectors(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this}angle(){return Math.atan2(-this.y,-this.x)+Math.PI}applyMatrix3(t){const e=this.x,r=this.y,a=t.elements;return this.x=a[0]*e+a[3]*r+a[6],this.y=a[1]*e+a[4]*r+a[7],this}ceil(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this}ceilToZero(){return this.x=this.x<0?Math.floor(this.x):Math.ceil(this.x),this.y=this.y<0?Math.floor(this.y):Math.ceil(this.y),this}clamp(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this}clampLength(t,e){const r=this.length();return this.divideScalar(r||1).multiplyScalar(Math.max(t,Math.min(e,r)))}clampScalar(t,e){return this.x=Math.max(t,Math.min(e,this.x)),this.y=Math.max(t,Math.min(e,this.y)),this}clone(){return new L(this.x,this.y)}copy(t){return this.x=t.x,this.y=t.y,this}cross(t){return this.x*t.y-this.y*t.x}distanceTo(t){return Math.sqrt(this.distanceToSquared(t))}distanceToSquared(t){const e=this.x-t.x,r=this.y-t.y;return e*e+r*r}divide(t){return this.x/=t.x,this.y/=t.y,this}divideScalar(t){return this.multiplyScalar(1/t)}dot(t){return this.x*t.x+this.y*t.y}equals(t,e=!0){return e?t.x===this.x&&t.y===this.y:Math.abs(t.x-this.x)<Number.EPSILON&&Math.abs(t.y-this.y)<Number.EPSILON}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}floorToZero(){return this.roundToZero()}fromArray(t,e=0){return this.x=t[e],this.y=t[e+1],this.z=t[e+2],this}fromBufferAttribute(t,e){return this.x=t.getX(e),this.y=t.getY(e),this}getComponent(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error("out of range: "+t)}}identity(){return this.set(0,0)}isEmpty(){return!Number.isFinite(this.x)&&!Number.isFinite(this.y)}isZero(){return this.x===0&&this.y===0}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}lengthSq(){return this.x*this.x+this.y*this.y}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,r){return this.x=t.x+(e.x-t.x)*r,this.y=t.y+(e.y-t.y)*r,this}makeEmpty(){return this.x=1/0,this.y=1/0,this}manhattanDistanceTo(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)}manhattanLength(){return Math.abs(this.x)+Math.abs(this.y)}max(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this}maxXY(t,e){return this.x=Math.max(this.x,t),this.y=Math.max(this.y,e),this}min(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this}minXY(t,e){return this.x=Math.max(this.x,t),this.y=Math.max(this.y,e),this}multiply(t){return this.x*=t.x,this.y*=t.y,this}multiplyScalar(t,e){return this.x*=t,this.y*=e||t,this}multiplyVectors(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this}negate(){return this.x=-this.x,this.y=-this.y,this}normalize(){return this.divideScalar(this.length()||1)}project(t){return this.applyMatrix3(t.matrixWorldInverse).applyMatrix3(t.projectionMatrix)}random(){return this.x=Math.random(),this.y=Math.random(),this}rotate(t){const e=Math.cos(t),r=Math.sin(t),a=this.x,u=this.y;return this.x=a*e-u*r,this.y=a*r+u*e,this}rotateAround(t,e){const r=Math.cos(e),a=Math.sin(e),u=this.x-t.x,l=this.y-t.y;return this.x=u*r-l*a+t.x,this.y=u*a+l*r+t.y,this}round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}roundToZero(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this}set(t,e){return this.x=t,this.y=e,this}setComponent(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error("out of range: "+t)}return this}setFromMatrixColumn(t,e){return this.fromArray(t.elements,e*3)}setLength(t){return this.normalize().multiplyScalar(t)}setScalar(t){return this.x=t,this.y=t,this}setX(t){return this.x=t,this}setY(t){return this.y=t,this}setZ(t){return this.z=t,this}sub(t){return this.x-=t.x,this.y-=t.y,this}subScalar(t){return this.x-=t,this.y-=t,this}subVectors(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this}toArray(t=[],e=0){return t[e]=this.x,t[e+1]=this.y,t}toString(){return`{x:${this.x},y:${this.y}}`}unproject(t,e=!1){return this.applyMatrix3(t.projectionMatrixInverse).applyMatrix3(t.matrixWorld)}validate(){return!(isNaN(this.x)||isNaN(this.y))}*[Symbol.iterator](){yield this.x,yield this.y}}const _u=new L,Dd=Object.freeze(Object.defineProperty({__proto__:null,default:L},Symbol.toStringTag,{value:"Module"})),Nd=gt.window.requestAnimationFrame,Yn=gt.window.performance?()=>gt.window.performance.now():()=>new Date().getTime(),Eh=Nd;class wt{static idCounter=0;id=wt.idCounter++;timers=new Map;timersDuration=new Map;counters=new Map;countersAmount=new Map;out=[];constructor(){}destroy(){wt.remove(this)}addTimer(t,e=Yn(),r=Yn()-(this.timersDuration.get(t)||Yn())){this.addTimerDuration(t,r),this.timersDuration.set(t,e)}addTimerDuration(t,e){var r;this.timers.has(t)||this.timers.set(t,[]),(r=this.timers.get(t))==null||r.push(e)}calculateTimers(){this.timers.forEach((t,e)=>{!t||!t.length||(this.out.push(this.calculateDurations(e,t)),t.length=0)})}addCounterAmount(t,e){var r;this.counters.has(t)||this.counters.set(t,[]),(r=this.counters.get(t))==null||r.push(e)}calculateCounters(){this.counters.forEach((t,e)=>{!t||!t.length||(this.out.push(this.calculateAmounts(e,t)),t.length=0)})}start(){return this.stop(),wt.add(this),this}stop(){return wt.remove(this),this}calculateDurations(t,e){const r={name:t,avg:0,min:0,max:0,stdDev:0,count:0,FPS:0};if(!e||!e.length)return r;const a=e.length,{min:u,max:l,avg:c}=this.minMaxAvg(e),f=parseFloat(this.stdDev(e,c).toFixed(2));return{name:t,avg:this.fd(c),min:this.fd(u),max:this.fd(l),stdDev:f,count:a,FPS:Math.ceil(a/wt.duration*1e3)}}calculateAmounts(t,e){const r={name:t,avg:0,min:0,max:0,stdDev:0,count:0,FPS:0};if(!e||!e.length)return r;const a=e.length,{min:u,max:l,avg:c}=this.minMaxAvg(e),f=this.stdDev(e,c);return{name:t,avg:c,min:u,max:l,stdDev:f,count:a,FPS:Math.ceil(a/wt.duration*1e3)}}minMaxAvg(t){let e=t[0],r=t[0],a=t.length,u=0;for(let c=0;c<t.length;c++){const f=t[c];u+=f,f<e&&(e=f),f>r&&(r=f)}const l=u/a;return{min:this.fx(e),max:this.fx(r),avg:this.fx(l)}}stdDev(t,e){let r=0;for(let u=0;u<t.length;u++){const l=t[u];r+=(l-e)*(l-e)}const a=t.length;return this.fx(Math.sqrt(r/a))}fd(t){return t>1e3?(t/1e3).toFixed(1)+"s":t.toFixed(1)+"ms"}fx(t,e=1){return e===1?Math.round(t*10)/10:e===2?Math.round(t*100)/100:e===3?Math.round(t*1e3)/1e3:t}static children=[];static isRunning=!1;static actived=!1;static duration=0;static lastTime=Yn();static messages=[];static maxLetters=20;static active(t){t?wt.actived=!0:wt.actived=!1,wt.duration=t||0}static add(t){this.children.push(t),this.handleStart()}static remove(t){for(let e=0,r=wt.children.length;e<r;e++)if(wt.children[e].id===t.id){this.children.splice(e,1);break}}static handleStart(){this.isRunning||(this.isRunning=!0,Eh(this.runLoop))}static runLoop(){wt.children.length?(wt.runFrames(),Eh(wt.runLoop)):wt.isRunning=!1}static runFrames(){let t,e=Yn();if(!(e-wt.lastTime<wt.duration)){wt.lastTime=e;for(let r=0,a=this.children.length;r<a;r++)t=this.children[r],t.calculateTimers(),t.calculateCounters(),wt.messages=wt.messages.concat(t.out),t.out.length=0;if(wt.messages.length){if(wt.actived){let r=[];r.push(Md),r.push(Od),r.push(Bd),this.messages.forEach(a=>r.push(Ud(a,this.maxLetters))),r.push(Id),console.log(r.join(`
6
6
  `))}wt.messages.length=0}}}}const ta=20,ea=["avg","min","max","stdDev","count","FPS"],pi=Ld(ea,1),Md=Pd(ea,ta),Od=Rd(ea,ta),Bd=Fd(ea,ta),Id=kd(ta);function Pd(n,t=20){let e="┌";e+="─".repeat(t),e+="┬";for(let r=0,a=n.length;r<a;r++)e+="─".repeat(pi),r<a-1?e+="┬":e+="┐";return e}function Ld(n,t=0){let e=0;for(let r=0,a=n.length;r<a;r++)e=Math.max(e,n[r].length);return e+t}function Rd(n,t=20){let e="│";e+=" ".repeat(t),e+="│";for(let r=0,a=n.length;r<a;r++)e+=" ".repeat(Math.max(pi-n[r].length-1,0)),e+=n[r],e+=" │";return e}function Fd(n,t=20){let e="├";e+="─".repeat(t),e+="┼";for(let r=0,a=n.length;r<a;r++)e+="─".repeat(pi),r<a-1?e+="┴":e+="┘";return e}function Ud(n,t=20){let e="│";e+=" ".repeat(Math.max(t-n.name.length,0)),e+=n.name,e+="│";const r=typeof n.avg=="string"?pi-n.avg.length:pi-n.avg.toString().length;return e+=" ".repeat(Math.max(r,0)),e+=n.avg+" ",e+=" ".repeat(Math.max(pi-n.min.toString().length,0)),e+=n.min+" ",e+=" ".repeat(Math.max(pi-n.max.toString().length,0)),e+=n.max+" ",e+=" ".repeat(Math.max(pi-n.stdDev.toString().length,0)),e+=n.stdDev+" ",e+=" ".repeat(Math.max(pi-n.count.toString().length,0)),e+=n.count+" ",e+=" ".repeat(Math.max(pi-n.FPS.toString().length,0)),e+=n.FPS,e}function kd(n=20){let t="└";for(let e=0;e<n;e++)t+="─";return t+="┘",t}var bh=(n=>(n.GROS="gros",n.RM="rm",n.WS="ws",n.SU="su",n.EQ="eq",n.FN="fn",n.GL="gl",n.IP="ip",n))(bh||{}),ia=(n=>(n.BACKGROUND="background",n.ASSETS="assets",n.ANNOTATIONS="annotations",n.TEXT="text",n.ASSET_LABELS="asset-labels",n.LABELS="labels",n))(ia||{});class ji{_listeners=new Map;destroy(){this._listeners.clear()}addEventListener(t,e){let r=this._listeners.get(t);r||(r=[],this._listeners.set(t,r)),r.includes(e)||r.push(e)}addEventListeners(t,e){const r=t.split(","),a=r.length;for(let u=0;u<a;u++)this.addEventListener(r[u].trim(),e)}isListening(t){var e;return this._listeners.has(t)&&!!((e=this._listeners.get(t))!=null&&e.length)}hasEventListener(t,e){var r;return this._listeners.size===0?!1:this._listeners.has(t)&&!!((r=this._listeners.get(t))!=null&&r.includes(e))}removeEventListener(t,e){const r=this._listeners.get(t);if(r){const a=r.indexOf(e);a>-1&&r.splice(a,1)}}dispatchEvent(t){const e=this._listeners.get(t.type);if(e){t.target=this;const r=e.slice(0);for(let a=0,u=r.length;a<u;a++)r[a].call(this,t);t.target=void 0}}dispatchEventAsync(t){const e=this._listeners.get(t.type);e&&setTimeout(()=>{for(const r of e)r.call(this,t)})}}function qd(n){var t,e;return(e=(t=gt.window)==null?void 0:t.document)==null?void 0:e.createElement(n)}async function Hd(n=2e3){return new Promise(t=>setTimeout(t,(Math.random()+.5)*n))}var ra={exports:{}};/**
7
7
  * @license
8
8
  * Lodash <https://lodash.com/>
@@ -36,7 +36,7 @@ function print() { __p += __j.call(arguments, '') }
36
36
  `;function dg(n,t){let e="";return t.format&&t.indentBy.length>0&&(e=pg),kh(n,t,"",e)}function kh(n,t,e,r){let a="",u=!1;for(let l=0;l<n.length;l++){const c=n[l],f=gg(c);if(f===void 0)continue;let g="";if(e.length===0?g=f:g=`${e}.${f}`,f===t.textNodeName){let I=c[f];mg(g,t)||(I=t.tagValueProcessor(f,I),I=Hh(I,t)),u&&(a+=r),a+=I,u=!1;continue}else if(f===t.cdataPropName){u&&(a+=r),a+=`<![CDATA[${c[f][0][t.textNodeName]}]]>`,u=!1;continue}else if(f===t.commentPropName){a+=r+`<!--${c[f][0][t.textNodeName]}-->`,u=!0;continue}else if(f[0]==="?"){const I=qh(c[":@"],t),S=f==="?xml"?"":r;let D=c[f][0][t.textNodeName];D=D.length!==0?" "+D:"",a+=S+`<${f}${D}${I}?>`,u=!0;continue}let x=r;x!==""&&(x+=t.indentBy);const E=qh(c[":@"],t),b=r+`<${f}${E}`,T=kh(c[f],t,g,x);t.unpairedTags.indexOf(f)!==-1?t.suppressUnpairedNode?a+=b+">":a+=b+"/>":(!T||T.length===0)&&t.suppressEmptyNode?a+=b+"/>":T&&T.endsWith(">")?a+=b+`>${T}${r}</${f}>`:(a+=b+">",T&&r!==""&&(T.includes("/>")||T.includes("</"))?a+=r+t.indentBy+T+r:a+=T,a+=`</${f}>`),u=!0}return a}function gg(n){const t=Object.keys(n);for(let e=0;e<t.length;e++){const r=t[e];if(n.hasOwnProperty(r)&&r!==":@")return r}}function qh(n,t){let e="";if(n&&!t.ignoreAttributes)for(let r in n){if(!n.hasOwnProperty(r))continue;let a=t.attributeValueProcessor(r,n[r]);a=Hh(a,t),a===!0&&t.suppressBooleanAttributes?e+=` ${r.substr(t.attributeNamePrefix.length)}`:e+=` ${r.substr(t.attributeNamePrefix.length)}="${a}"`}return e}function mg(n,t){n=n.substr(0,n.length-t.textNodeName.length-1);let e=n.substr(n.lastIndexOf(".")+1);for(let r in t.stopNodes)if(t.stopNodes[r]===n||t.stopNodes[r]==="*."+e)return!0;return!1}function Hh(n,t){if(n&&n.length>0&&t.processEntities)for(let e=0;e<t.entities.length;e++){const r=t.entities[e];n=n.replace(r.regex,r.val)}return n}var yg=dg;const vg=yg,xg={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(n,t){return t},attributeValueProcessor:function(n,t){return t},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&amp;"},{regex:new RegExp(">","g"),val:"&gt;"},{regex:new RegExp("<","g"),val:"&lt;"},{regex:new RegExp("'","g"),val:"&apos;"},{regex:new RegExp('"',"g"),val:"&quot;"}],processEntities:!0,stopNodes:[],oneListGroup:!1};function tr(n){this.options=Object.assign({},xg,n),this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Ag),this.processTextOrObjNode=Eg,this.options.format?(this.indentate=bg,this.tagEndChar=`>
37
37
  `,this.newLine=`
38
38
  `):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}tr.prototype.build=function(n){return this.options.preserveOrder?vg(n,this.options):(Array.isArray(n)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(n={[this.options.arrayNodeName]:n}),this.j2x(n,0).val)},tr.prototype.j2x=function(n,t){let e="",r="";for(let a in n)if(Object.prototype.hasOwnProperty.call(n,a))if(typeof n[a]>"u")this.isAttribute(a)&&(r+="");else if(n[a]===null)this.isAttribute(a)?r+="":a[0]==="?"?r+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(t)+"<"+a+"/"+this.tagEndChar;else if(n[a]instanceof Date)r+=this.buildTextValNode(n[a],a,"",t);else if(typeof n[a]!="object"){const u=this.isAttribute(a);if(u)e+=this.buildAttrPairStr(u,""+n[a]);else if(a===this.options.textNodeName){let l=this.options.tagValueProcessor(a,""+n[a]);r+=this.replaceEntitiesValue(l)}else r+=this.buildTextValNode(n[a],a,"",t)}else if(Array.isArray(n[a])){const u=n[a].length;let l="",c="";for(let f=0;f<u;f++){const g=n[a][f];if(!(typeof g>"u"))if(g===null)a[0]==="?"?r+=this.indentate(t)+"<"+a+"?"+this.tagEndChar:r+=this.indentate(t)+"<"+a+"/"+this.tagEndChar;else if(typeof g=="object")if(this.options.oneListGroup){const x=this.j2x(g,t+1);l+=x.val,this.options.attributesGroupName&&g.hasOwnProperty(this.options.attributesGroupName)&&(c+=x.attrStr)}else l+=this.processTextOrObjNode(g,a,t);else if(this.options.oneListGroup){let x=this.options.tagValueProcessor(a,g);x=this.replaceEntitiesValue(x),l+=x}else l+=this.buildTextValNode(g,a,"",t)}this.options.oneListGroup&&(l=this.buildObjectNode(l,a,c,t)),r+=l}else if(this.options.attributesGroupName&&a===this.options.attributesGroupName){const u=Object.keys(n[a]),l=u.length;for(let c=0;c<l;c++)e+=this.buildAttrPairStr(u[c],""+n[a][u[c]])}else r+=this.processTextOrObjNode(n[a],a,t);return{attrStr:e,val:r}},tr.prototype.buildAttrPairStr=function(n,t){return t=this.options.attributeValueProcessor(n,""+t),t=this.replaceEntitiesValue(t),this.options.suppressBooleanAttributes&&t==="true"?" "+n:" "+n+'="'+t+'"'};function Eg(n,t,e){const r=this.j2x(n,e+1);return n[this.options.textNodeName]!==void 0&&Object.keys(n).length===1?this.buildTextValNode(n[this.options.textNodeName],t,r.attrStr,e):this.buildObjectNode(r.val,t,r.attrStr,e)}tr.prototype.buildObjectNode=function(n,t,e,r){if(n==="")return t[0]==="?"?this.indentate(r)+"<"+t+e+"?"+this.tagEndChar:this.indentate(r)+"<"+t+e+this.closeTag(t)+this.tagEndChar;{let a="</"+t+this.tagEndChar,u="";return t[0]==="?"&&(u="?",a=""),(e||e==="")&&n.indexOf("<")===-1?this.indentate(r)+"<"+t+e+u+">"+n+a:this.options.commentPropName!==!1&&t===this.options.commentPropName&&u.length===0?this.indentate(r)+`<!--${n}-->`+this.newLine:this.indentate(r)+"<"+t+e+u+this.tagEndChar+n+this.indentate(r)+a}},tr.prototype.closeTag=function(n){let t="";return this.options.unpairedTags.indexOf(n)!==-1?this.options.suppressUnpairedNode||(t="/"):this.options.suppressEmptyNode?t="/":t=`></${n}`,t},tr.prototype.buildTextValNode=function(n,t,e,r){if(this.options.cdataPropName!==!1&&t===this.options.cdataPropName)return this.indentate(r)+`<![CDATA[${n}]]>`+this.newLine;if(this.options.commentPropName!==!1&&t===this.options.commentPropName)return this.indentate(r)+`<!--${n}-->`+this.newLine;if(t[0]==="?")return this.indentate(r)+"<"+t+e+"?"+this.tagEndChar;{let a=this.options.tagValueProcessor(t,n);return a=this.replaceEntitiesValue(a),a===""?this.indentate(r)+"<"+t+e+this.closeTag(t)+this.tagEndChar:this.indentate(r)+"<"+t+e+">"+a+"</"+t+this.tagEndChar}},tr.prototype.replaceEntitiesValue=function(n){if(n&&n.length>0&&this.options.processEntities)for(let t=0;t<this.options.entities.length;t++){const e=this.options.entities[t];n=n.replace(e.regex,e.val)}return n};function bg(n){return this.options.indentBy.repeat(n)}function Ag(n){return n.startsWith(this.options.attributeNamePrefix)&&n!==this.options.textNodeName?n.substr(this.attrPrefixLen):!1}var wg=tr,Wh={XMLParser:fg,XMLValidator:Ru,XMLBuilder:wg};class di extends gt.window.Path2D{vertices=[];commands=[];constructor(t){return super(t),this}destroy(){this.vertices.length=0}getVertices2(){return this.vertices}setVertices2(t){if(!t||!t.length)return this;const e=t.length;for(let r=0;r<e;r++)r?this.lineTo(t[r].x,t[r].y):this.moveTo(t[r].x,t[r].y);return L.equals(t[0],t[e-1])||this.lineTo(t[0].x,t[0].y),this}clone(){const t=this.constructor;return new t(this).copy(this)}copy(t){return this.vertices=ct.cloneDeep(t.vertices),this.commands=ct.cloneDeep(t.commands),this}rebuild(t){if(!this.commands||!this.commands.length)return this;this.vertices.length=0;const e=this.commands;this.commands=[];let r;for(let a=0,u=e.length;a<u;a++)switch(r=e[a],r.cmd){case"arc":this.arc(r.x,r.y,r.r,r.start,r.end,r.ccw);break;case"arcTo":this.arcTo(r.x1,r.y1,r.x2,r.y2,r.r);break;case"bezierCurveTo":this.bezierCurveTo(r.cp1x,r.cp1y,r.cp2x,r.cp2y,r.x,r.y);break;case"closePath":this.closePath();break;case"ellipse":this.ellipse(r.x,r.y,r.rx,r.ry,r.angle,r.start,r.end,r.ccw);break;case"lineTo":this.lineTo(r.x,r.y);break;case"moveTo":this.moveTo(r.x,r.y);break;case"quadraticCurveTo":this.quadraticCurveTo(r.cpx,r.cpy,r.x,r.y);break;case"rect":this.rect(r.x,r.y,r.width,r.height);break;case"roundRect":this.roundRect(r.x,r.y,r.width,r.height,r.radii);break;default:console.error(`unsupported type '${r.cmd}'`);break}return this}addPath(t){return super.addPath(t),typeof t.getVertices2=="function"&&(this.vertices=this.vertices.concat(t.getVertices2())),this}arc(t,e,r,a,u,l){super.arc(t,e,r,a,u,l);const c=[{x:t-r,y:e-r},{x:t-r,y:e+r},{x:t+r,y:e+r},{x:t+r,y:e-r}];return this.commands.push({cmd:"arc",x:t,y:e,start:a,end:u,ccw:l,points:c}),this}arcTo(t,e,r,a,u){super.arcTo(t,e,r,a,u);const l=[{x:t,y:e},{x:r,y:a}];return this.commands.push({cmd:"arcTo",x1:t,y1:e,x2:r,y2:a,r:u,points:l}),this.vertices.push(...l),this}bezierCurveTo(t,e,r,a,u,l){super.bezierCurveTo(t,e,r,a,u,l);const c=[{x:t,y:e},{x:r,y:a},{x:u,y:l}];return this.commands.push({cmd:"bezierCurveTo",cp1x:t,cp1y:e,cp2x:r,cp2y:a,x:u,y:l,points:c}),this.vertices.push(...c),this}closePath(){return super.closePath(),this.commands.push({cmd:"closePath"}),this}ellipse(t,e,r,a,u,l,c,f){super.ellipse(t,e,r,a,u,l,c,f);const g=Math.max(r,a),x=[{x:t-g,y:e-g},{x:t+g,y:e+g}];return this.commands.push({cmd:"ellipse",x:t,y:e,rx:r,ry:a,angle:u,start:l,end:c,ccw:f,points:x}),this.vertices.push(...x),this}lineTo(t,e){super.lineTo(t,e);const r=[{x:t,y:e}];return this.commands.push({cmd:"lineTo",x:t,y:e,points:r}),this.vertices.push(...r),this}moveTo(t,e){super.moveTo(t,e);const r=[{x:t,y:e}];return this.commands.push({cmd:"moveTo",x:t,y:e,points:r}),this.vertices.push(...r),this}quadraticCurveTo(t,e,r,a){super.quadraticCurveTo(t,e,r,a);const u=[{x:t,y:e},{x:r,y:a}];return this.commands.push({cmd:"quadraticCurveTo",cpx:t,cpy:e,x:r,y:a,points:u}),this.vertices.push(...u),this}rect(t,e,r,a){super.rect(t,e,r,a);const u=[{x:t,y:e},{x:t+r,y:e},{x:t+r,y:e+a},{x:t,y:e+a}];return this.commands.push({cmd:"rect",x:t,y:e,width:r,height:a,points:u}),this.vertices.push(...u),this}roundRect(t,e,r,a,u){super.roundRect(t,e,r,a,u);const l=[{x:t,y:e},{x:t+r,y:e+a}];return this.commands.push({cmd:"roundRect",x:t,y:e,width:r,height:a,radii:u,points:l}),this.vertices.push(...l),this}}class Hu extends sa{type="Group2";isGroup=!0;version=0;versions=[];params;alignCenter=!1;dynamically=!1;usedCache=!1;wireframe=!1;showPoints=!1;constructor(t={}){t.name===void 0&&(t.name="Group2"),super(t),this.params=t,t.usedCache!==void 0&&(this.usedCache=t.usedCache),t.wireframe!==void 0&&(this.wireframe=t.wireframe),t.showPoints!==void 0&&(this.showPoints=t.showPoints),t.alignCenter!==void 0&&(this.alignCenter=t.alignCenter),t.dynamically!==void 0&&(this.dynamically=t.dynamically)}destroy(){super.destroy(),this.boundingBox.makeEmpty()}clone(t=!0){const e=this.constructor;return new e(this.params).copy(this,t)}copy(t,e=!0){return super.copy(t,e),this.params=t.params,this.alignCenter=t.alignCenter,this.dynamically=t.dynamically,this.usedCache=t.usedCache,this.wireframe=t.wireframe,this.showPoints=t.showPoints,this}composeWireframeGeometryPath(t){return this.traverse(e=>{!e.isShape||!e.geometry||!e.geometry.path||t.addPath(e.geometry.path)}),t}set needsUpdate(t){t&&this.version++,this.dispatchEvent({type:"needsUpdateChanged"})}generateFeaturesKey(){return this.featureKey=this.name+this.version,this.featureKey}render(t){if(!(!this.visible||!this.composeNode))for(let e=0,r=this.children.length;e<r;e++)this.children[e].render(t)}}var ts={};const Tg="bold|bolder|lighter|[1-9]00",_g="italic|oblique",Cg="small-caps",Sg="ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded",Dg="px|pt|pc|in|cm|mm|%|em|ex|ch|rem|q",zh=`'([^']+)'|"([^"]+)"|[\\w\\s-]+`,Ng=new RegExp(`(${Tg}) +`,"i"),Mg=new RegExp(`(${_g}) +`,"i"),Og=new RegExp(`(${Cg}) +`,"i"),Bg=new RegExp(`(${Sg}) +`,"i"),Ig=new RegExp(`([\\d\\.]+)(${Dg}) *((?:${zh})( *, *(?:${zh}))*)`),Wu={},Pg=16;var Lg=n=>{if(Wu[n])return Wu[n];const t=Ig.exec(n);if(!t)return;const e={weight:"normal",style:"normal",stretch:"normal",variant:"normal",size:parseFloat(t[1]),unit:t[2],family:t[3].replace(/["']/g,"").replace(/ *, */g,",")};let r,a,u,l;const c=n.substring(0,t.index);switch((r=Ng.exec(c))&&(e.weight=r[1]),(a=Mg.exec(c))&&(e.style=a[1]),(u=Og.exec(c))&&(e.variant=u[1]),(l=Bg.exec(c))&&(e.stretch=l[1]),e.unit){case"pt":e.size/=.75;break;case"pc":e.size*=16;break;case"in":e.size*=96;break;case"cm":e.size*=96/2.54;break;case"mm":e.size*=96/25.4;break;case"%":break;case"em":case"rem":e.size*=Pg/.75;break;case"q":e.size*=96/25.4/4;break}return Wu[n]=e};const Rg=Lg;ts.parseFont=Rg,ts.createCanvas=function(n,t){return Object.assign(document.createElement("canvas"),{width:n,height:t})},ts.createImageData=function(n,t,e){switch(arguments.length){case 0:return new ImageData;case 1:return new ImageData(n);case 2:return new ImageData(n,t);default:return new ImageData(n,t,e)}},ts.loadImage=function(n,t){return new Promise(function(e,r){const a=Object.assign(document.createElement("img"),t);function u(){a.onload=null,a.onerror=null}a.onload=function(){u(),e(a)},a.onerror=function(){u(),r(new Error('Failed to load the image "'+n+'"'))},a.src=n})};class Mi{static cached=new Map;static cachedCanvas=new Map;static destroy(){this.cached.clear(),this.cachedCanvas.clear()}static createCanvas(t){var a;if(!((a=gt.window)!=null&&a.document))throw new Error("environment not support");let e;t.containerId&&(e=gt.window.document.getElementById(t.containerId)),e||(e=gt.window.document.getElementsByTagName("body")[0]);let r;if(t.canvasId&&(r=gt.window.document.getElementById(t.canvasId)||void 0),t.width||(t.width=e==null?void 0:e.offsetWidth),t.height||(t.height=e==null?void 0:e.offsetHeight),t.dpr||(t.dpr=gt.dpr),r)this.resizeCanvas(r,t.width,t.height,t.dpr);else{if(r=this.createHtmlCanvas(t.width,t.height,t.dpr),!r)throw new Error("error environment");t.canvasId&&r.setAttribute("id",t.canvasId),e==null||e.appendChild(r)}return r.style.background=t.background||"transparent",r}static getContext2D(t,e={}){const r={alpha:!0,willReadFrequently:!!e.willReadFrequently},a=t.getContext("2d",r);if(!a)throw new Error("getContext2D error");return a.scale(e.dpr||1,e.dpr||1),a}static createNodeCanvas(t,e){var a;let r;return(a=gt.window)!=null&&a.document?r=gt.window.document.createElement("canvas"):r=new ts.Canvas(t,e),this.resizeCanvas(r,t,e,gt.window.devicePixelRatio),r.uuid=Ou(),r}static resizeCanvas(t,e,r,a=1){t instanceof OffscreenCanvas?(t.width=e,t.height=r):t instanceof HTMLCanvasElement?(t.setAttribute("width",(e*a).toString()),t.setAttribute("height",(r*a).toString()),t.style.width=e+"px",t.style.height=r+"px",t.style.padding="0",t.style.margin="0",t.style.border="0",t.style.imageRendering="pixelated",t.style.transform="translateZ(0)"):(t.width=e,t.height=r)}static async getImageBitmapByCanvasAsync(t){if(t)return t instanceof OffscreenCanvas?t.transferToImageBitmap():t instanceof HTMLCanvasElement?await createImageBitmap(t):void 0}static get(t,e,r,a=1){let u=this.cached.get(t);return u||(u=this.create(e,r,a),this.set(t,u)),this.resizeCanvas(u,e,r,a),u}static set(t,e){if(!t||!e)throw new Error("error input");return this.cached.set(t,e)}static remove(t){this.cached.has(t)&&this.cached.delete(t)}static create(t,e,r=1){var a;if((a=gt.window)!=null&&a.OffscreenCanvas)return new OffscreenCanvas(t,e);throw new Error("environment does not support")}static createHtmlCanvas(t,e,r=1){if(!gt.window.document)throw new Error("environment does not support");const a=gt.window.document.createElement("canvas");return this.resizeCanvas(a,t,e,r),a}static measureText(t,e,r=new L){if(!t)throw new Error("input error");const u=this.get("measureText",1,1).getContext("2d");if(!u)throw new Error("bufferCtx not found");e.render(u);const l=u.measureText(t);if(!l)throw new Error("measureText error");const c=l.actualBoundingBoxRight+l.actualBoundingBoxLeft,f=l.actualBoundingBoxAscent+l.actualBoundingBoxDescent;return r.set(c,f),r}}function Vh(n){return!!(n&&n.constructor&&n.call&&n.apply)}const Fg="children",Ug="get",kg="set",zu="Changed";class Vu extends ji{name="Node2";userData={};_cache=new Map;_attachedDepsListeners=new Map;constructor(t){super(),this.setAttrs(t)}destroy(){super.destroy(),this._clearCache()}setAttrs(t){if(!t)return this;let e;for(const r in t)r!==Fg&&(e=kg+r,Vh(this[e])?this[e](t[r]):this.setAttr(r,t[r]));return this}setAttr(t,e){Object.hasOwnProperty.call(this,t)&&(this.userData[t]=e,this[t]=e)}getAttrs(){return this.userData||{}}getAttr(t){const e=Ug+ct.capitalize(t);return Vh(this[e])?this[e]():this.userData[t]}getAttrKey(){return Object.values(this.userData).filter(t=>!(t instanceof Array||t instanceof Object)).join("_")}_getCache(t,e){let r=this._cache.get(t);return(r===void 0||r.dirty===!0)&&(r=e.call(this),this._cache.set(t,r)),r}_clearCache(t){t===void 0?this._cache.clear():this._cache.has(t)&&this._cache.get(t).isMatrix3?this._cache.get(t).dirty=!0:t?this._cache.delete(t):this._cache.clear()}_setProperty(t){Object.hasOwnProperty.call(this,t)&&delete this[t],Object.defineProperty(this,t,{get(){return this.userData[t]},set(e){const r=this.userData[t];this.userData[t]=e,r!==e&&this.dispatchEvent({type:t+zu,data:{oldVal:r,newVal:e}})},enumerable:!0,configurable:!0})}computed(t,e,r){if(!this._attachedDepsListeners.get(t)){const a=e.map(u=>u+zu).join(",");this.addEventListeners(a,()=>this._clearCache(t)),e.forEach(u=>this._setProperty(u)),this._attachedDepsListeners.set(t,!0)}return this._getCache(t,r)}watch(t,e){(t||[]).forEach(r=>{this._setProperty(r),this.addEventListener(r+zu,e)})}}const Qe=new L;class qg extends Vu{isTexture=!0;isRenderTargetTexture=!1;type="Texture";name="Texture";uuid=Ou();originSize=new L;originCenter=new L;size=new L;matrix=new Nt;matrixAutoUpdate=!0;userData={};version=0;_needsUpdate=!1;image;offset=new L;repeat=new L(1,1);center=new L;rotate=0;scale=1;flipY=!0;constructor(t={}){super(t),this.setAttrs(t)}destroy(){super.destroy()}set needsUpdate(t){t&&(this.version++,this._needsUpdate=!0)}get needsUpdate(){return this._needsUpdate}updateSize(t,e,r,a){return this.originSize.copy(t),this.originCenter.copy(e),this.updateFinalSize(r,a)}updateFinalSize(t,e){t&&!L.isZero(t)&&!L.isEmpty(t)?Qe.copy(t):Qe.copy(this.originSize),Qe.maxXY(1,1);const r=Math.sqrt(Qe.x*Qe.x+Qe.y*Qe.y)/Math.sqrt(e.x*e.x+e.y*e.y);return r>1&&Qe.multiplyScalar(1/r),this.scale=Qe.length()/this.originSize.length(),this.repeat.multiplyScalar(this.originSize.length()/Qe.length()),this.size.copy(Qe),this.offset.copy(this.originSize).multiplyScalar(-.5).add(this.originCenter),this.updateMatrix(),this}reset(t,e){t&&this.originSize.copy(t),e&&this.size.copy(e),this.scale=this.size.x/this.originSize.x,this.repeat.set(1,1),this.center.set(0,0),this.rotate=0,this.offset.copy(this.originSize).multiplyScalar(.5).sub(this.originCenter).multiplyScalar(this.scale),this.updateMatrix()}updateMatrix(){this.matrix.setUvTransform(this.offset.x,this.offset.y,this.repeat.x,this.repeat.y,this.rotate,this.center.x,this.center.y)}clone(){const t=this.constructor;return new t(this.attrs).copy(this)}copy(t){return this.name=t.name,this.originSize.copy(t.originSize),this.originCenter.copy(t.originCenter),this.size.copy(t.size),this.matrix.copy(t.matrix),this.matrixAutoUpdate=t.matrixAutoUpdate,this.userData=JSON.parse(JSON.stringify(t.userData)),this.image=t.image,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.center.copy(t.center),this.rotate=t.rotate,this.scale=t.scale,this.flipY=t.flipY,this}}const $h=new L(10,10),es=new L,is=new L,Oi=new L,Tr=new L,ua=new L,rs=new L,gi=new L,Bi=new L,oa=new Tt;class Ii{static cached=new Map;static precisionOptimized=!0;static precisionOptimizeLevels=[.5,.25,1e-4];static initialized=!1;static textureMaxSize=new L;static destroy(){Object.values(this.cached).forEach(t=>{t.destroy()}),this.cached=new Map}static has(t){return this.cached.has(t)}static get(t,e){if(t)return!this.precisionOptimized||!e?this.cached.get(t):e&&e<this.precisionOptimizeLevels[2]?this.get(t+"_3"):e&&e<this.precisionOptimizeLevels[1]?this.get(t+"_2"):e&&e<this.precisionOptimizeLevels[0]?this.get(t+"_1"):this.get(t)}static set(t,e){if(!t||!e)throw new Error("error input");return this.cached.set(t,e),e}static remove(t){if(!t||!this.cached.has(t))return;const e=this.cached.get(t);if(e&&e.destroy(),this.cached.delete(t),this.precisionOptimized)for(let r=1,a=this.precisionOptimizeLevels.length;r<=a;r++){const u=t+"_"+r;let l;this.cached.has(u)&&(l=this.cached.get(u),l&&l.destroy(),this.cached.delete(u))}}static clear(){this.destroy()}static setTextureMaxSize(){this.initialized||(this.textureMaxSize.set(gt.config.width,gt.config.height).multiplyScalar(.5).round(),this.initialized=!0)}static getTextureMaxSize(){return this.initialized||this.setTextureMaxSize(),this.textureMaxSize}static getTextureByShape(t,e,r,a){var l;const u=new qg;if(this.setTextureMaxSize(),u.scale=1,u.repeat.set(1,1),u.rotate=0,u.image=void 0,u.version=0,e&&!L.isZero(e)&&!L.isEmpty(e))es.copy(e),t.alignCenter?is.copy(t.centerPoint):is.set(0,0);else{if(t.isShape&&((l=t.geometry)!=null&&l.boundingBox))oa.copy(t.geometry.boundingBox);else if(t.isGroup&&t.boundingBox)oa.copy(t.boundingBox);else throw new Error("get boundingBox error");oa.getSize(es),t.alignCenter?is.copy(t.centerPoint):oa.getCenter(is)}return r&&!L.isZero(r)&&!L.isEmpty(r)?Oi.copy(r):Oi.copy(es),(Oi.x<$h.x||Oi.y<$h.y)&&Oi.normalize().multiplyScalar(10).round(),gi.copy(this.getTextureMaxSize()),a&&(rs.set((a==null?void 0:a.shadowBlur)||0,(a==null?void 0:a.shadowBlur)||0),Oi.add(rs.clone().multiplyScalar(2)),es.multiplyScalar(3),gi.multiplyScalar(.3)),u.updateSize(es,is,Oi,gi),u}static setPrecisionOptimizeTextures(t,e,r,a,u){if(!this.precisionOptimized)return;let l;for(let c=0,f=this.precisionOptimizeLevels.length;c<f;c++){gi.copy(r.size).multiplyScalar(this.precisionOptimizeLevels[c]);const g=this.getTextureByShape(e,a,gi,u);this.renderShapeTexture(e,g,u),l=t+"_"+(c+1),g.userData.textureKey=l,Ii.set(l,g)}}static renderShapeTexture(t,e,r){r?(rs.set(r.shadowBlur||0,r.shadowBlur||0),Tr.copy(e.originSize).multiplyScalar(-.5).sub(e.originCenter).multiplyScalar(e.scale),t.alignCenter?ua.copy(e.originSize).multiplyScalar(e.scale):ua.copy(e.originSize).add(rs.clone().multiplyScalar(1)).multiplyScalar(e.scale)):Tr.copy(e.offset).negate().multiplyScalar(e.scale);const a=Mi.create(e.size.x,e.size.y),u=Mi.getContext2D(a,{alpha:!0});u.clearRect(0,0,a.width,a.height),u.translate(Tr.x,Tr.y),u.scale(e.scale,e.scale),r&&(u.shadowColor=oe.black,u.shadowOffsetX=ua.x,u.shadowOffsetY=ua.y,u.shadowBlur=rs.x),t.render(u),e.image=a}static setByShape(t,e,r,a){const u=this.getTextureByShape(e,r,a);return u.userData.textureKey=t,this.renderShapeTexture(e,u),Ii.set(t,u),this.setPrecisionOptimizeTextures(t,e,u,r),u}static setShadowByShape(t,e,r){const a=this.getTextureByShape(e,void 0,void 0,r);return a.userData.textureKey=t,this.renderShapeTexture(e,a,r),Ii.set(t,a),a}static setPointsByShape(t,e){var g,x,E,b,T;const r=[];e.isGroup?e.traverse(I=>I.isShape?r.push(...I.geometry.points):void 0):e.isShape&&e.geometry.points?r.push(...e.geometry.points):e.boundingBox&&r.push(e.boundingBox.min,e.boundingBox.max);const a=this.getTextureByShape(e),u=((g=e.material)==null?void 0:g.lineWidth)*2||3;Bi.set(1,1).multiplyScalar(u),a.size.copy(Bi).multiplyScalar(a.scale).multiplyScalar(2).add(Oi),a.offset.sub(Bi),a.updateMatrix();const l=Mi.create(a.size.x,a.size.y),c=Mi.getContext2D(l,{alpha:!0});Tr.subVectors(a.originSize.clone().multiplyScalar(.5),a.originCenter).add(Bi),c.clearRect(0,0,l.width,l.height),c.scale(a.scale,a.scale),c.translate(Tr.x,Tr.y);let f=oe.black;e.material?f=((x=e.material)==null?void 0:x.stroke)||((E=e.material)==null?void 0:E.fill):e.isGroup&&e.children.length&&e.children[0].isShape&&(f=((b=e.children[0].material)==null?void 0:b.stroke)||((T=e.children[0].material)==null?void 0:T.fill)),c.fillStyle=le.getDarken(f);for(let I=0,S=r.length||0;I<S;I++)gi.copy(r[I]),c.moveTo(gi.x,gi.y),c.arc(gi.x,gi.y,Bi.x,0,Math.PI*2);return c.fill(),a.image=l,Ii.set(t,a),a}static setWireframeByShape(t,e){var c;const r=this.getTextureByShape(e);Bi.set(1,1).multiplyScalar(((c=e.material)==null?void 0:c.lineWidth)||1),r.size.copy(Bi).multiplyScalar(r.scale).multiplyScalar(2).add(Oi),r.offset.sub(Bi),r.updateMatrix();const a=Mi.create(r.size.x,r.size.y),u=Mi.getContext2D(a,{alpha:!0}),l=Bi.x*r.scale*5;return u.clearRect(0,0,a.width,a.height),u.strokeStyle=oe.darkGray,u.lineWidth=l,u.setLineDash([l*3,l]),u.strokeRect(0,0,r.size.x,r.size.y),r.image=a,Ii.set(t,r),r}static DEBUG_DisplayCachedTexture=ct.throttle((t=80,e=.8)=>{let r=Hg();if(r||(r=Wg(t,e)),!r)throw new Error("dom not found");zg(r,this.cached)},5e3)}function Hg(){return window.document.getElementById("DEBUG_Displaycached")}function Wg(n=80,t=.8){const e=document.createElement("div");function r(){e.style.opacity="1"}function a(){e.style.opacity=t.toString()}return e.setAttribute("id","DEBUG_Displaycached"),e.style.position="absolute",e.style.width=n+"px",e.style.height="92vh",e.style.background=`rgba(0, 0, 0, ${t})`,e.style.left="20px",e.style.top="20px",e.style.overflow="auto",e.style.padding="6px",e.style.opacity=t.toString(),e.addEventListener("mouseenter",r),e.addEventListener("mouseleave",a),document.body.appendChild(e),e}function zg(n,t){t.forEach((e,r)=>{!e||!e.image||Vg(n,r,e)})}function Vg(n,t,e){let r;for(let a=0,u=n.childNodes.length;a<u;a++)if(n.childNodes[a].getAttribute("id")===t){r=n.childNodes[a];break}r?Gg(r,e):$g(n,t,e)}function $g(n,t,e){if(!e.image)return;const r=gt.document.createElement("div");r.setAttribute("id",t),r.style.display="flex",r.style.flexDirection="column";const a=Mi.createCanvas({containerId:n.id,width:e.image.width,height:e.image.height,dpr:window.devicePixelRatio});a.style.border="#000000 1px solid",a.style.maxWidth=parseInt(n.style.width)-2+"px",a.style.maxHeight=parseInt(a.style.maxWidth)/(e.image.width/e.image.height)+"px";const u=a.getContext("2d",{alpha:!0});if(!u)throw new Error("getContext error");u.save(),u.scale(window.devicePixelRatio,window.devicePixelRatio),u.drawImage(e.image,0,0),u.restore(),r.appendChild(a);const l=gt.document.createElement("p");l.innerHTML=e.image.width+" * "+e.image.height,l.innerHTML+="<br/>"+t,l.style.margin="0",l.style.padding="0",l.style.lineHeight="1.2",l.style.fontSize="12px",l.style.padding="3px 0 6px 0",r.appendChild(l),n.appendChild(r);function c(){const f=a.toDataURL("image/png",.6),g=document.createElement("a"),x=new MouseEvent("click");g.download=`thumb.${Date.now()}.png`,g.href=f,g.dispatchEvent(x)}r.addEventListener("click",c)}function Gg(n,t){if(!t.image)return;const e=n.querySelector("canvas");if(!e)return;const r=e.getContext("2d",{alpha:!0});if(!r)throw new Error("getContext error");r.clearRect(0,0,e.width,e.height),r.save(),r.scale(window.devicePixelRatio,window.devicePixelRatio),r.drawImage(t.image,0,0),r.restore()}const Xg=new Tt,Pi=new L,nn=new Nt,Gh=new Nt,$u=new Nt;class Gu extends sa{isShape=!0;type="Shape";geometry;material;usedCache=!1;showPoints=!1;wireframe=!1;selected=!1;alignCenter=!1;dynamically=!1;composeNode=!1;matrixAutoUpdate=!1;version=0;needsUpdateChangedHandler=this.handleNeedsUpdateChanged.bind(this);constructor(t={}){t.name===void 0&&(t.name="Shape"),t.stroke===void 0&&(t.stroke=oe.darkGray),super(t),t.visible===void 0&&(t.visible=!0),t.fixed!==void 0&&(this.fixed=t.fixed),t.usedCache!==void 0&&(this.usedCache=t.usedCache),t.dynamically!==void 0&&(this.dynamically=t.dynamically),t.castShadow!==void 0&&(this.castShadow=t.castShadow),t.showPoints!==void 0&&(this.showPoints=t.showPoints),t.wireframe!==void 0&&(this.wireframe=t.wireframe),t.alignCenter!==void 0&&(this.alignCenter=t.alignCenter),t.composeNode!==void 0&&(this.composeNode=t.composeNode),t.renderOrder!==void 0&&(this.renderOrder=t.renderOrder),t.id!==void 0&&(this.userData.id=t.id)}set needsUpdate(t){t&&this.version++,this.dispatchEvent({type:"needsUpdateChanged"})}destroy(){this.unbindEvents(),super.destroy()}bindEvents(){this.geometry&&!this.geometry.hasEventListener("needsUpdateChanged",this.needsUpdateChangedHandler)&&this.geometry&&this.geometry.addEventListener("needsUpdateChanged",this.needsUpdateChangedHandler),this.material&&!this.material.hasEventListener("needsUpdateChanged",this.needsUpdateChangedHandler)&&this.material&&this.material.addEventListener("needsUpdateChanged",this.needsUpdateChangedHandler)}unbindEvents(){this.geometry&&this.geometry.removeEventListener("needsUpdateChanged",this.needsUpdateChangedHandler),this.material&&this.material.removeEventListener("needsUpdateChanged",this.needsUpdateChangedHandler)}handleNeedsUpdateChanged(){this.needsUpdate=!0}bindGeoMtl(t,e){this.geometry=t,this.material=e,this.bindEvents(),this.setup()}setup(){return this.computeBoundingBox(),this.generateFeaturesKey(),this}computeBoundingBox(){if(this.centerPoint.set(0,0),this.boundingBox.copy(this.geometry.computeBoundingBox()),!this.children||!this.children.length)return this.boundingBox;const t=[];t.push(...L.getPointsApplyMatrix3(this.matrixWorld,this.geometry.getBoundingPoints()));for(let e=0,r=this.children.length;e<r;e++)if(Xg.copy(this.children[e].computeBoundingBox()),this.children[e].isShape&&this.children[e].geometry.points){if(nn.copy(this.children[e].matrixWorld),this.children[e].isText){const a=this.children[e].material.fontSize/12||1;Gh.makeScale(a,a).invert(),nn.multiply($u.copy(this.children[e].matrix).invert().premultiply(Gh))}this.children[e].alignCenter&&(Pi.copy(this.children[e].centerPoint).negate(),$u.makeTranslation(Pi.x,Pi.y),nn.multiply($u)),t.push(...L.getPointsApplyMatrix3(nn,this.children[e].geometry.getBoundingPoints()))}return this.boundingBox.setFromPoints(L.getPointsApplyMatrix3(this.matrixWorldInverse,t)),this.alignCenter&&this.boundingBox.getCenter(this.centerPoint),this.alignCenter&&this.boundingBox.translate(Pi.copy(this.centerPoint).negate()),this.boundingBox.ceil(),this.boundingBox}generateFeaturesKey(){return this.featureKey=(this.geometry.featureKey||"G")+"_"+(this.material.featureKey||"M"),this.featureKey}render(t){if(this.visible&&(this.renderFill(t),this.renderStroke(t),this.renderMaterialMap(t),this.composeNode))for(let e=0,r=this.children.length;e<r;e++)this.children[e].render(t)}renderFill(t){!this.geometry.path||!this.material.hasFill||(t.fillStyle=this.material.fill,t.fill(this.geometry.path))}renderStroke(t){!this.geometry||!this.geometry.path||this.material.hasStroke&&(t.strokeStyle=this.material.stroke,t.lineWidth=this.material.lineWidth,this.material.lineDash&&t.setLineDash(this.material.lineDash),this.material.lineCap&&(t.lineCap=this.material.lineCap),t.lineDashOffset=this.material.lineDashOffset,t.stroke(this.geometry.path))}renderMaterialMap(t){!this.material.map||!this.material.map.image||!this.geometry||!this.geometry.path||(t.save(),this.geometry.path.closePath(),t.clip(this.geometry.path),t.rotate(-this.material.map.rotate),t.scale(this.material.map.scale,this.material.map.scale),t.drawImage(this.material.map.image,this.material.map.offset.x||0,this.material.map.offset.y||0),t.restore())}raycast(t,e=[]){var r;return super.raycast(t,e),!this.selectable||!this.boundingBox||this.boundingBox.isEmpty()||!this.boundingBoxWorld.containsPoint(t.worldCoords)||(Pi.copy(t.worldCoords).applyMatrix3(nn.copy(this.matrixWorld).invert()),(r=this.geometry)!=null&&r.isPointInPath(Pi)&&e.push(this),console.warn("Shape.raycast: ",this.name,this.boundingBox.min.round().toString(),this.boundingBox.max.round().toString(),t.worldCoords.round().toString()),e.includes(this)||((!this.usedCache||!Ii.has(this.featureKey))&&Ii.setByShape(this.featureKey,this),this.isPointInPathByTexture(t)&&e.push(this))),e}isPointInPathByTexture(t){const e=Ii.get(this.featureKey);if(!e||!e.image)throw new Error("raycastByPixel error");return Pi.copy(t.worldCoords).applyMatrix3(nn.copy(this.matrixWorld).multiply(e.matrix).invert()).round(),Mi.getContext2D(e.image,{alpha:!0}).getImageData(Pi.x,Pi.y,1,1).data[3]>0}copy(t,e=!0){return super.copy(t,e),this.geometry=t.geometry,this.material=t.material,this.usedCache=t.usedCache,this.showPoints=t.showPoints,this.wireframe=t.wireframe,this.selected=t.selected,this.alignCenter=t.alignCenter,this.dynamically=t.dynamically,this.composeNode=t.composeNode,this.matrixAutoUpdate=t.matrixAutoUpdate,this}}class ce{static stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);static buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);static hexChars="0123456789abcdef";static hexOut=[];static onePassHasher=new ce;_dataLength=0;_bufferLength=0;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}static hashStr(t,e=!1){return this.onePassHasher.start().appendStr(t).end(e)}static hashAsciiStr(t,e=!1){return this.onePassHasher.start().appendAsciiStr(t).end(e)}static _hex(t){const e=ce.hexChars,r=ce.hexOut;let a,u,l,c;for(c=0;c<4;c+=1)for(u=c*8,a=t[c],l=0;l<8;l+=2)r[u+1+l]=e.charAt(a&15),a>>>=4,r[u+0+l]=e.charAt(a&15),a>>>=4;return r.join("")}static _md5cycle(t,e){let r=t[0],a=t[1],u=t[2],l=t[3];r+=(a&u|~a&l)+e[0]-680876936|0,r=(r<<7|r>>>25)+a|0,l+=(r&a|~r&u)+e[1]-389564586|0,l=(l<<12|l>>>20)+r|0,u+=(l&r|~l&a)+e[2]+606105819|0,u=(u<<17|u>>>15)+l|0,a+=(u&l|~u&r)+e[3]-1044525330|0,a=(a<<22|a>>>10)+u|0,r+=(a&u|~a&l)+e[4]-176418897|0,r=(r<<7|r>>>25)+a|0,l+=(r&a|~r&u)+e[5]+1200080426|0,l=(l<<12|l>>>20)+r|0,u+=(l&r|~l&a)+e[6]-1473231341|0,u=(u<<17|u>>>15)+l|0,a+=(u&l|~u&r)+e[7]-45705983|0,a=(a<<22|a>>>10)+u|0,r+=(a&u|~a&l)+e[8]+1770035416|0,r=(r<<7|r>>>25)+a|0,l+=(r&a|~r&u)+e[9]-1958414417|0,l=(l<<12|l>>>20)+r|0,u+=(l&r|~l&a)+e[10]-42063|0,u=(u<<17|u>>>15)+l|0,a+=(u&l|~u&r)+e[11]-1990404162|0,a=(a<<22|a>>>10)+u|0,r+=(a&u|~a&l)+e[12]+1804603682|0,r=(r<<7|r>>>25)+a|0,l+=(r&a|~r&u)+e[13]-40341101|0,l=(l<<12|l>>>20)+r|0,u+=(l&r|~l&a)+e[14]-1502002290|0,u=(u<<17|u>>>15)+l|0,a+=(u&l|~u&r)+e[15]+1236535329|0,a=(a<<22|a>>>10)+u|0,r+=(a&l|u&~l)+e[1]-165796510|0,r=(r<<5|r>>>27)+a|0,l+=(r&u|a&~u)+e[6]-1069501632|0,l=(l<<9|l>>>23)+r|0,u+=(l&a|r&~a)+e[11]+643717713|0,u=(u<<14|u>>>18)+l|0,a+=(u&r|l&~r)+e[0]-373897302|0,a=(a<<20|a>>>12)+u|0,r+=(a&l|u&~l)+e[5]-701558691|0,r=(r<<5|r>>>27)+a|0,l+=(r&u|a&~u)+e[10]+38016083|0,l=(l<<9|l>>>23)+r|0,u+=(l&a|r&~a)+e[15]-660478335|0,u=(u<<14|u>>>18)+l|0,a+=(u&r|l&~r)+e[4]-405537848|0,a=(a<<20|a>>>12)+u|0,r+=(a&l|u&~l)+e[9]+568446438|0,r=(r<<5|r>>>27)+a|0,l+=(r&u|a&~u)+e[14]-1019803690|0,l=(l<<9|l>>>23)+r|0,u+=(l&a|r&~a)+e[3]-187363961|0,u=(u<<14|u>>>18)+l|0,a+=(u&r|l&~r)+e[8]+1163531501|0,a=(a<<20|a>>>12)+u|0,r+=(a&l|u&~l)+e[13]-1444681467|0,r=(r<<5|r>>>27)+a|0,l+=(r&u|a&~u)+e[2]-51403784|0,l=(l<<9|l>>>23)+r|0,u+=(l&a|r&~a)+e[7]+1735328473|0,u=(u<<14|u>>>18)+l|0,a+=(u&r|l&~r)+e[12]-1926607734|0,a=(a<<20|a>>>12)+u|0,r+=(a^u^l)+e[5]-378558|0,r=(r<<4|r>>>28)+a|0,l+=(r^a^u)+e[8]-2022574463|0,l=(l<<11|l>>>21)+r|0,u+=(l^r^a)+e[11]+1839030562|0,u=(u<<16|u>>>16)+l|0,a+=(u^l^r)+e[14]-35309556|0,a=(a<<23|a>>>9)+u|0,r+=(a^u^l)+e[1]-1530992060|0,r=(r<<4|r>>>28)+a|0,l+=(r^a^u)+e[4]+1272893353|0,l=(l<<11|l>>>21)+r|0,u+=(l^r^a)+e[7]-155497632|0,u=(u<<16|u>>>16)+l|0,a+=(u^l^r)+e[10]-1094730640|0,a=(a<<23|a>>>9)+u|0,r+=(a^u^l)+e[13]+681279174|0,r=(r<<4|r>>>28)+a|0,l+=(r^a^u)+e[0]-358537222|0,l=(l<<11|l>>>21)+r|0,u+=(l^r^a)+e[3]-722521979|0,u=(u<<16|u>>>16)+l|0,a+=(u^l^r)+e[6]+76029189|0,a=(a<<23|a>>>9)+u|0,r+=(a^u^l)+e[9]-640364487|0,r=(r<<4|r>>>28)+a|0,l+=(r^a^u)+e[12]-421815835|0,l=(l<<11|l>>>21)+r|0,u+=(l^r^a)+e[15]+530742520|0,u=(u<<16|u>>>16)+l|0,a+=(u^l^r)+e[2]-995338651|0,a=(a<<23|a>>>9)+u|0,r+=(u^(a|~l))+e[0]-198630844|0,r=(r<<6|r>>>26)+a|0,l+=(a^(r|~u))+e[7]+1126891415|0,l=(l<<10|l>>>22)+r|0,u+=(r^(l|~a))+e[14]-1416354905|0,u=(u<<15|u>>>17)+l|0,a+=(l^(u|~r))+e[5]-57434055|0,a=(a<<21|a>>>11)+u|0,r+=(u^(a|~l))+e[12]+1700485571|0,r=(r<<6|r>>>26)+a|0,l+=(a^(r|~u))+e[3]-1894986606|0,l=(l<<10|l>>>22)+r|0,u+=(r^(l|~a))+e[10]-1051523|0,u=(u<<15|u>>>17)+l|0,a+=(l^(u|~r))+e[1]-2054922799|0,a=(a<<21|a>>>11)+u|0,r+=(u^(a|~l))+e[8]+1873313359|0,r=(r<<6|r>>>26)+a|0,l+=(a^(r|~u))+e[15]-30611744|0,l=(l<<10|l>>>22)+r|0,u+=(r^(l|~a))+e[6]-1560198380|0,u=(u<<15|u>>>17)+l|0,a+=(l^(u|~r))+e[13]+1309151649|0,a=(a<<21|a>>>11)+u|0,r+=(u^(a|~l))+e[4]-145523070|0,r=(r<<6|r>>>26)+a|0,l+=(a^(r|~u))+e[11]-1120210379|0,l=(l<<10|l>>>22)+r|0,u+=(r^(l|~a))+e[2]+718787259|0,u=(u<<15|u>>>17)+l|0,a+=(l^(u|~r))+e[9]-343485551|0,a=(a<<21|a>>>11)+u|0,t[0]=r+t[0]|0,t[1]=a+t[1]|0,t[2]=u+t[2]|0,t[3]=l+t[3]|0}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(ce.stateIdentity),this}appendStr(t){const e=this._buffer8,r=this._buffer32;let a=this._bufferLength,u,l;for(l=0;l<t.length;l+=1){if(u=t.charCodeAt(l),u<128)e[a++]=u;else if(u<2048)e[a++]=(u>>>6)+192,e[a++]=u&63|128;else if(u<55296||u>56319)e[a++]=(u>>>12)+224,e[a++]=u>>>6&63|128,e[a++]=u&63|128;else{if(u=(u-55296)*1024+(t.charCodeAt(++l)-56320)+65536,u>1114111)throw new Error("Unicode standard supports code points up to U+10FFFF");e[a++]=(u>>>18)+240,e[a++]=u>>>12&63|128,e[a++]=u>>>6&63|128,e[a++]=u&63|128}a>=64&&(this._dataLength+=64,ce._md5cycle(this._state,r),a-=64,r[0]=r[16])}return this._bufferLength=a,this}appendAsciiStr(t){const e=this._buffer8,r=this._buffer32;let a=this._bufferLength,u,l=0;for(;;){for(u=Math.min(t.length-l,64-a);u--;)e[a++]=t.charCodeAt(l++);if(a<64)break;this._dataLength+=64,ce._md5cycle(this._state,r),a=0}return this._bufferLength=a,this}appendByteArray(t){const e=this._buffer8,r=this._buffer32;let a=this._bufferLength,u,l=0;for(;;){for(u=Math.min(t.length-l,64-a);u--;)e[a++]=t[l++];if(a<64)break;this._dataLength+=64,ce._md5cycle(this._state,r),a=0}return this._bufferLength=a,this}getState(){const t=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[t[0],t[1],t[2],t[3]]}}setState(t){const e=t.buffer,r=t.state,a=this._state;let u;for(this._dataLength=t.length,this._bufferLength=t.buflen,a[0]=r[0],a[1]=r[1],a[2]=r[2],a[3]=r[3],u=0;u<e.length;u+=1)this._buffer8[u]=e.charCodeAt(u)}end(t=!1){const e=this._bufferLength,r=this._buffer8,a=this._buffer32,u=(e>>2)+1;this._dataLength+=e;const l=this._dataLength*8;if(r[e]=128,r[e+1]=r[e+2]=r[e+3]=0,a.set(ce.buffer32Identity.subarray(u),u),e>55&&(ce._md5cycle(this._state,a),a.set(ce.buffer32Identity)),l<=4294967295)a[14]=l;else{const c=l.toString(16).match(/(.*?)(.{0,8})$/);if(c===null)return;const f=parseInt(c[2],16),g=parseInt(c[1],16)||0;a[14]=f,a[15]=g}return ce._md5cycle(this._state,a),t?this._state:ce._hex(this._state)}}if(ce.hashStr("hello")!=="5d41402abc4b2a76b9719d911017c592")throw new Error("Md5 self test failed.");let Yg=0;const Xu=new L,Xh=new L,sn=new Nt,Je=new L,Pe=new L,je=new L,Yh=new L,Zh=new L,Kh=new L,Yu=["m","M","l","L","v","V","h","H","z","Z","c","C","q","Q","t","T","s","S","a","A"];class Qh extends Vu{isGeometry=!0;id=Yg++;name="Geometry2D";matrix=new Nt;boundingBox=new Tt;path;pointsPath;featureKey="";version=0;points;pointsSplits=0;lineWidth=0;padding;radius=0;position=new L;rotation=new L;scaled=new L(1,1);animations=[];constructor(t={}){super(t),this.watch(["points","lineWidth","padding","radius"],()=>this.needsUpdate=!0)}set needsUpdate(t){t&&this.version++,this.dispatchEvent({type:"needsUpdateChanged"})}destroy(){super.destroy()}applyMatrix3(t){t.decompose(Yh,Zh,Kh),this.position.add(Yh),this.rotation.add(Zh),this.scaled.add(Kh)}updateMatrix(){this.matrix.compose(this.position,this.rotation,this.scaled),this.needsUpdate=!0}translate(t,e){return sn.makeTranslation(t,e),this.applyMatrix3(sn),this}rotate(t){return sn.makeRotation(t),this.applyMatrix3(sn),this}scale(t,e){return sn.makeScale(t,e),this.applyMatrix3(sn),this}setPointsSplits(t=0){return this.pointsSplits=t,this}setPath(t){return t?(t instanceof di||(t=new di().copy(t)),this.setAttr("path",t),this.setAttr("points",t.getVertices2()),this.path=t,this.points=t.getVertices2(),this.computeBoundingBox(),this.generateFeatureKey(),this):this}setFromPoints(t,e=0){return!t||!t.length?this:(this.setAttr("points",t),this.setAttr("pointsSplits",t),this.points=t,this.pointsSplits=e,this.recomputePath(),this.computeBoundingBox(),this.generateFeatureKey(),this)}setFromSvgPath(t){if(!t||!t.length)return this;const e=new gt.window.Path2D;let r=t;r=r.replace(new RegExp(" ","g"),",");for(let E=0,b=Yu.length;E<b;E++)r=r.replace(new RegExp(Yu[E],"g"),"|"+Yu[E]);const a=r.split("|"),u=[];let l=0,c=0;const f=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/gi;let g,x="";for(let E=1,b=a.length;E<b;E++){let T=a[E],I=T.charAt(0);for(T=T.slice(1),u.length=0;g=f.exec(T);)u.push(g[0]);const S=[];for(let k=0,V=u.length;k<V;k++){if(u[k]==="00"){S.push(0,0);continue}let W=parseFloat(u[k]);isNaN(W)?S.push(0):S.push(W)}let D=[];for(;S.length>0&&!isNaN(S[0]);){let k=l,V=c,W,X,$,K,tt,Z,z,J,nt;switch(I){case"M":k=l=S.shift()||0,V=c=S.shift()||0,e.moveTo(l,c);break;case"m":let mt=S.shift()||0,It=S.shift()||0;l+=mt,c+=It,x==="z"&&(l=k+mt,c=V+It),e.moveTo(l,c);break;case"l":l+=S.shift()||0,c+=S.shift()||0,e.lineTo(l,c);break;case"L":l=S.shift()||0,c=S.shift()||0,e.lineTo(l,c);break;case"h":l+=S.shift()||0,e.lineTo(l,c);break;case"H":l=S.shift()||0,e.lineTo(l,c);break;case"v":c+=S.shift()||0,e.lineTo(l,c);break;case"V":c=S.shift()||0,e.lineTo(l,c);break;case"C":D.length=0,D.push(S.shift()||0,S.shift()||0,S.shift()||0,S.shift()||0),l=S.shift()||0,c=S.shift()||0,e.bezierCurveTo(D[0],D[1],D[2],D[3],l,c);break;case"c":D.length=0,D.push(l+(S.shift()||0),c+(S.shift()||0),l+(S.shift()||0),c+(S.shift()||0)),l+=S.shift()||0,c+=S.shift()||0,e.bezierCurveTo(D[0],D[1],D[2],D[3],l,c);break;case"S":W=l,X=c,x==="C"&&(W=l+(l-D[2]),X=c+(c-D[3])),D.length=0,D.push(W,X,S.shift()||0,S.shift()||0),l=S.shift()||0,c=S.shift()||0,e.bezierCurveTo(D[0],D[1],D[2],D[3],l,c);break;case"s":W=l,X=c,x==="C"&&(W=l+(l-D[2]),X=c+(c-D[3])),D.length=0,D.push(W,X,l+(S.shift()||0),c+(S.shift()||0)),l+=S.shift()||0,c+=S.shift()||0,e.bezierCurveTo(D[0],D[1],D[2],D[3],l,c);break;case"Q":D.length=0,D.push(S.shift()||0,S.shift()||0),l=S.shift()||0,c=S.shift()||0,e.quadraticCurveTo(D[0],D[1],l,c);break;case"q":D.length=0,D.push(l+(S.shift()||0),c+(S.shift()||0)),l+=S.shift()||0,c+=S.shift()||0,e.quadraticCurveTo(D[0],D[1],l,c);break;case"T":W=l,X=c,x==="Q"&&(W=l+(l-D[0]),X=c+(c-D[1])),l=S.shift()||0,c=S.shift()||0,e.quadraticCurveTo(W,X,l,c);break;case"t":W=l,X=c,x==="Q"&&(W=l+(l-D[0]),X=c+(c-D[1])),l+=S.shift()||0,c+=S.shift()||0,e.quadraticCurveTo(W,X,l,c);break;case"A":$=S.shift()||0,K=S.shift()||0,tt=S.shift()||0,Z=S.shift()||0,z=S.shift()||0,J=l,nt=c,l=S.shift()||0,c=S.shift()||0,D=Jh(J,nt,l,c,Z,z,$,K,tt),e.arc(D[0],D[1],D[2]>D[3]?D[2]:D[3],D[4],D[4]+D[5]);break;case"a":$=S.shift()||0,K=S.shift()||0,tt=S.shift()||0,Z=S.shift()||0,z=S.shift()||0,J=l,nt=c,l+=S.shift()||0,c+=S.shift()||0,D=Jh(J,nt,l,c,Z,z,$,K,tt),e.arc(D[0],D[1],D[2]>D[3]?D[2]:D[3],D[4],D[4]+D[5]);break;default:S.shift()}}x=I,(I==="z"||I==="Z")&&e.closePath()}return this.setPath(e)}computeBoundingBox(){return this.boundingBox||(this.boundingBox=new Tt),this.boundingBox.makeEmpty(),this.points!==void 0?this.boundingBox.setFromPoints(this.points):this.boundingBox.makeEmpty(),this.lineWidth&&this.boundingBox.expandByVector(Xu.set(this.lineWidth,+this.lineWidth)),this.boundingBox.validate()||console.error(`${this.name}.computeBoundingBox: min/max have NaN values.`),this.boundingBox}getBoundingPoints(){let t=[];return this.points&&(t=ct.cloneDeep(this.points)),this.boundingBox&&this.boundingBox.validate()&&!this.boundingBox.isEmpty()&&t.push(this.boundingBox.min,this.boundingBox.max),t}generateFeatureKey(){!this.points||!this.points.length||(this.featureKey=ce.hashStr(L.getStrings(this.points)))}recomputePointsPath(t){var e,r,a;if(!(!this.points||!this.points.length)){this.pointsPath=new gt.window.Path;for(let u=0,l=this.points.length;u<l;u++)(e=this.pointsPath)==null||e.moveTo(this.points[u].x,this.points[u].y),(r=this.pointsPath)==null||r.arc(this.points[u].x,this.points[u].y,t,0,Math.PI*2,!1);(a=this.path)==null||a.addPath(this.pointsPath)}}isPointInBoundingBox(t){return this.boundingBox?this.boundingBox.containsPoint(t):!1}isPointInPolygonByRay(t){let e=!1;if(!this.path)return e;Je.copy(t);const r=this.path.getVertices2();for(let a=0,u=r.length;a<u;a++){if(Pe.copy(r[a]),a===r.length-1?je.copy(r[0]):je.copy(r[a+1]),L.isPointOnSegment(Pe,je,Je))return!0;Ji(Pe.y-Je.y)>0!=Ji(je.y-Je.y)>0&&Ji(Je.x-(Je.y-Pe.y)*(Pe.x-je.x)/(Pe.y-je.y)-Pe.x)<0&&(e=!e)}return e}isPointInPolygonByRAngle(t){let e=0;if(!this.path)return!1;Je.copy(t);const r=this.path.getVertices2();for(let a=0,u=r.length;a<u;a++){if(Pe.copy(r[a]),a===r.length-1?je.copy(r[0]):je.copy(r[a+1]),L.isPointOnSegment(Pe,je,Je))return!0;Xu.subVectors(je,Pe),Xh.subVectors(Je,Pe);let l=Ji(Xu.cross(Xh)),c=Ji(Pe.y-Je.y),f=Ji(je.y-Je.y);l>0&&c<=0&&f>0&&e--,l<0&&c>0&&f<=0&&e++}return e!==0}clone(){const t=this.constructor,e=new t(this.userData).copy(this);return this.path&&(e.path=this.path.clone()),e}copy(t){return this.name=t.name,this.matrix.copy(t.matrix),this.boundingBox.copy(t.boundingBox),this.path=t.path,this.pointsSplits=t.pointsSplits,this.setFromPoints(this.points,this.pointsSplits),this}}function Jh(n,t,e,r,a,u,l,c,f){let g=f*(Math.PI/180),x=Math.cos(g)*(n-e)/2+Math.sin(g)*(t-r)/2,E=-1*Math.sin(g)*(n-e)/2+Math.cos(g)*(t-r)/2,b=x*x/(l*l)+E*E/(c*c);b>1&&(l*=Math.sqrt(b),c*=Math.sqrt(b));let T=Math.sqrt((l*l*(c*c)-l*l*(E*E)-c*c*(x*x))/(l*l*(E*E)+c*c*(x*x)));a===u&&(T*=-1),isNaN(T)&&(T=0);let I=T*l*E/c,S=T*-c*x/l,D=(n+e)/2+Math.cos(g)*I-Math.sin(g)*S,k=(t+r)/2+Math.sin(g)*I+Math.cos(g)*S,V=function(z){return Math.sqrt(z[0]*z[0]+z[1]*z[1])},W=function(z,J){return(z[0]*J[0]+z[1]*J[1])/(V(z)*V(J))},X=function(z,J){return(z[0]*J[1]<z[1]*J[0]?-1:1)*Math.acos(W(z,J))},$=X([1,0],[(x-I)/l,(E-S)/c]),K=[(x-I)/l,(E-S)/c],tt=[(-1*x-I)/l,(-1*E-S)/c],Z=X(K,tt);return W(K,tt)<=-1&&(Z=Math.PI),W(K,tt)>=1&&(Z=0),u===0&&Z>0&&(Z=Z-2*Math.PI),u===1&&Z<0&&(Z=Z+2*Math.PI),[D,k,l,c,$,Z,g,u]}class jh extends Qh{isPolygonGeometry2D=!0;name="PolygonGeometry2D";constructor(t={}){super(t),this.setAttrs(t),this.setFromPoints(this.points)}recomputePath(){var t,e;if(!(!this.points||!this.points.length)){this.path=new di;for(let r=0,a=this.points.length;r<a;r++)r?(e=this.path)==null||e.lineTo(this.points[r].x,this.points[r].y):(t=this.path)==null||t.moveTo(this.points[r].x,this.points[r].y);this.path.closePath()}}isPointInPath(t){return this.isPointInBoundingBox(t)?this.isPointInPolygonByRAngle(t):!1}}let Zg=0;class Zu extends Vu{isMaterial=!0;name="Material2";id=Zg++;featureKey="Material2";version=0;visible=!0;wireframe=!1;fill="";stroke="";selectedColor=new le;lineWidth=0;lineDash;lineDashOffset=0;lineCap="round";map;constructor(t={}){super(t),this.setAttrs(t),this.watch(["visible","fill","stroke","lineWidth"],()=>this.needsUpdate=!0),this.generateFeatureKey()}destroy(){this.dispatchEvent({type:"destroy"}),super.destroy()}clone(){const t=this.constructor;return new t(this.userData).copy(this)}copy(t){return this.visible=t.visible,this.wireframe=t.wireframe,this.fill=t.fill,this.stroke=t.stroke,this.lineWidth=t.lineWidth,this.lineDash=t.lineDash?ct.cloneDeep(t.lineDash):void 0,this.lineDashOffset=t.lineDashOffset,this.lineCap=t.lineCap,this.map=t.map,this}generateFeatureKey(){const t=[];t.push(this.fill||""),t.push(this.stroke||""),t.push(this.lineWidth||0),t.push(this.lineDash?this.lineDash.join(","):""),this.featureKey=t.join("_")}set needsUpdate(t){t&&this.version++,this.dispatchEvent({type:"needsUpdateChanged"})}get hasFill(){return this.computed("hasFill",["fill"],()=>!!this.fill)}get hasStroke(){return this.computed("hasStroke",["stroke","lineWidth"],()=>!!this.stroke&&!!this.lineWidth)}}const Ku=new L;class Kg extends Qh{isRectGeometry2D=!0;name="RectGeometry2D";width=0;height=0;constructor(t={}){super(t),this.setAttrs(t),this.recomputePath()}setSize(t,e){return this.width=t,this.height=e,this}recomputePath(){const t=new di;Ku.set(this.width*.5,this.height*.5).sub(this.position).negate(),t.rect(Ku.x,Ku.y,this.width,this.height),t.closePath(),this.path=t,this.points=t.getVertices2()}isPointInPath(t){return this.isPointInBoundingBox(t)}}class Qg extends Gu{isMesh=!0;type="Mesh2";geometry;material;usedCache=!1;bufferCtx;selected=!1;constructor(t=new Kg,e=new Zu){super(),this.geometry=t,this.material=e,this.setup(),this.bindEvents()}destroy(){super.destroy(),this.geometry.destroy(),this.material.destroy()}clone(t=!0){const e=this.constructor;return new e(this.geometry.clone(),this.material.clone()).copy(this,t)}copy(t,e=!0){return this.type=t.type,this.usedCache=t.usedCache,this.selected=t.selected,super.copy(t,e),this}}class tc extends Gu{isSvg=!0;matrixAutoUpdate=!1;composeNode=!0;constructor(t={}){t.name===void 0&&(t.name="Svg"),t.flipY===void 0&&(t.flipY=!0),t.alignCenter===void 0&&(t.alignCenter=!0),super(t),t.id!==void 0&&(this.userData.id=t.id),this.composeNode=!0;let e;if(t.parsedSvg?e=t.parsedSvg:t.svg&&(e=ju.parse(t.svg)),!e||!e.length)throw new Error("svg parse error");let r;for(let a=0,u=e.length;a<u;a++){r=e[a];const l={...t};r.fill!==void 0&&(l.fill=r.fill),r.stroke!==void 0&&(l.stroke=r.stroke),r.lineWidth!==void 0&&(l.lineWidth=r.lineWidth),r.id!==void 0&&(l.id=r.id);const c=new jh(l);c.name=this.name+"Geo"+a,c.setPath(r.path);const f=new Zu(l);if(f.name=this.name+"Mtl"+a,a===0)this.geometry=c,this.material=f,this.matrixAutoUpdate=!1,r.id!==void 0&&(this.name=r.id);else{const g=new Qg(c,f);g.matrixAutoUpdate=!1,r.id!==void 0?g.name=r.id:g.name=(this.userData.id||this.name)+a,g.dynamically=this.dynamically,g.usedCache=this.usedCache,g.castShadow=this.castShadow,g.showPoints=this.showPoints,g.wireframe=this.wireframe,this.add(g)}}this.computeBoundingBox(),this.generateFeaturesKey()}destroy(){super.destroy()}copy(t,e=!0){return this.matrixAutoUpdate=t.matrixAutoUpdate,this.composeNode=t.composeNode,super.copy(t,e),this}}const ec="center",Jg="top",ic="middle",ns="normal",jg="word";class t2 extends Zu{isTextMaterial2=!0;name="TextMaterial2";text;textFill;fontFamily="Arial";fontSize=12;fontStyle=ns;fontWeight=ns;fontVariant=ns;textDecoration="";textAlign=ec;verticalAlign=Jg;textBaseline=ic;lineHeight=1;letterSpacing=0;wrap=jg;ellipsis=!1;constructor(t={}){t.textFill===void 0&&(t.textFill=oe.black),t.fontFamily===void 0&&(t.fontFamily="Arial"),t.fontSize===void 0&&(t.fontSize=12),t.fontStyle===void 0&&(t.fontStyle=ns),t.fontWeight===void 0&&(t.fontWeight=ns),t.textAlign===void 0&&(t.textAlign=ec),t.textBaseline===void 0&&(t.textBaseline=ic),super(t),this.setAttrs(t),this.generateFeatureKey()}}class e2 extends Gu{isText=!0;type="Text";size=new L;constructor(t={}){if(t.name===void 0&&(t.name="Text"),t.fontSize===void 0&&(t.fontSize=12),super(t),t.fixed&&(this.fixed=!0),t.rotated!==void 0){const a=Qs(t.rotated);this.rotation.set(a,a)}const e=new jh(t),r=new t2(t);this.bindGeoMtl(e,r),this.wireframe=t.wireframe||!1}computeBoundingBox(){if(!this.material.text)return this.boundingBox;Mi.measureText(this.material.text||"",this,this.size);const t=[];return t.push({x:-this.size.x/2,y:-this.size.y/2}),t.push({x:t[0].x,y:t[0].y+this.size.y}),t.push({x:t[1].x+this.size.x,y:t[1].y}),t.push({x:t[2].x,y:t[0].y}),this.geometry.setFromPoints(t),super.computeBoundingBox()}render(t){this.visible&&this.material.text&&(t.font=`${this.material.fontWeight} ${this.material.fontSize}px ${this.material.fontFamily}`,t.fillStyle=this.material.fill||oe.black,t.textAlign=this.material.textAlign,t.textBaseline=this.material.textBaseline,t.fillText(this.material.text,0,0))}}class ti{constructor(t,e,r){this.root=t,this.name=e,this.value=r}static textBaselineMapping={baseline:"alphabetic","before-edge":"top","text-before-edge":"top",middle:"middle",central:"middle","after-edge":"bottom","text-after-edge":"bottom",ideographic:"ideographic",alphabetic:"alphabetic",hanging:"hanging",mathematical:"alphabetic"};static empty(t){return new ti(t,"EMPTY","")}getDefinition(){const t=this.toString(),e=/#([^)'"]+)/.exec(t),r=(e==null?void 0:e[1])||t;return this.root.definitions[r]}setValue(t){return this.value=t,this}getValue(t){return typeof t>"u"||this.hasValue()?this.value:t}hasValue(t){const e=this.value;return e!==null&&e!==""&&(t||e!==0)&&typeof e<"u"}split(t=" "){return this.toString().replace(/(?!\u3000)\s+/gm," ").trim().split(t).map(e=>new ti(this.root,this.name,e))}isString(t){const e=typeof this.value=="string";return!e||!t?e:t.test(this.value)}isUrlDefinition(){return this.isString(/^url\(/)}isPixels(){if(!this.hasValue())return!1;const t=this.toString();switch(!0){case t.endsWith("px"):case/^[0-9]+$/.test(t):return!0;default:return!1}}getNumber(t){if(!this.hasValue())return typeof t>"u"?0:parseFloat(t);const{value:e}=this;let r=parseFloat(e);return this.isString(/%$/)&&(r/=100),r}getPixels(t,e=!1){if(!this.hasValue())return 0;const r=typeof t=="boolean",{width:a,height:u}=gt.config;switch(!0){case this.isString(/vmin$/):return this.getNumber()/100*Math.min(a,u);case this.isString(/vmax$/):return this.getNumber()/100*Math.max(a,u);case this.isString(/vw$/):return this.getNumber()/100*a;case this.isString(/vh$/):return this.getNumber()/100*u;case this.isString(/rem$/):return this.getNumber()*this.getRem();case this.isString(/em$/):return this.getNumber()*this.getEm();case this.isString(/ex$/):return this.getNumber()*this.getEm()/2;case this.isString(/px$/):return this.getNumber();case this.isString(/pt$/):return this.getNumber()*this.getDpi()*(1/72);case this.isString(/pc$/):return this.getNumber()*15;case this.isString(/cm$/):return this.getNumber()*this.getDpi()/2.54;case this.isString(/mm$/):return this.getNumber()*this.getDpi()/25.4;case this.isString(/in$/):return this.getNumber()*this.getDpi();case(this.isString(/%$/)&&r):return this.getNumber()*this.getEm();case this.isString(/%$/):return this.getNumber()*Math.min(a,u);default:{const l=this.getNumber();return e&&l<1?l*Math.min(a,u):l}}}getDpi(){return 96}getRem(){return this.root.rootEmSize}getEm(){return this.root.emSize}getUnits(){return this.toString().replace(/[0-9.-]/g,"")}toString(t){return typeof t>"u"||this.hasValue()?typeof this.value>"u"?"":String(this.value):String(t)}}class ve{static ignoreChildTypes=["title"];type="";definitions;attributes={};styles={};stylesSpecificity={};parent=null;children=[];root;node;constructor(t,e){!e||e.nodeType!==1||(this.node=e,t===null?(this.root=this,this.definitions={}):this.root=t,this.init())}get id(){return this.getAttribute("id").toString()}init(){this.addAttributes(),this.addStyle(),this.addDefinitions(),Array.from(this.node.childNodes).forEach(t=>{t.nodeType===1&&this.add(t)})}addAttributes(){Array.from(this.node.attributes).forEach(t=>{this.attributes[t.nodeName]=new ti(this.root,t.nodeName,t.value)})}addStyle(){const{styles:t,stylesSpecificity:e}=this.root;let r;for(const a in t)if(!a.startsWith("@")&&this.matchesSelector(a)){const u=t[a],l=e[a];if(u)for(const c in u){let f=this.stylesSpecificity[c];typeof f>"u"&&(f="000"),l&&l>=f&&(r=u[c],r&&(this.styles[c]=r),this.stylesSpecificity[c]=l)}}this.getAttribute("style").hasValue()&&this.getAttribute("style").toString().split(";").map(u=>u.trim()).forEach(u=>{if(!u)return;const[l,c]=u.split(":").map(f=>f.trim());l&&(this.styles[l]=new ti(this.root,l,c))})}addDefinitions(){const t=this.getAttribute("id");t.hasValue()&&(this.root.definitions[t.toString()]||(this.root.definitions[t.toString()]=this))}getStyle(t,e=!1,r=!1){const a=this.styles[t];if(a)return a;const u=this.getAttribute(t);if(u.hasValue())return this.styles[t]=u,u;if(!r&&this.parent){const l=this.parent.getStyle(t);if(l.hasValue())return l}if(e){const l=new ti(this.root,t,"");return this.styles[t]=l,l}return ti.empty(this.root)}getAttribute(t,e=!1){const r=this.attributes[t];if(!r&&e){const a=new ti(this.root,t,"");return this.attributes[t]=a,a}return r||ti.empty(this.root)}getHrefAttribute(){let t;for(const e in this.attributes)if(e==="href"||e.endsWith(":href")){t=this.attributes[e];break}return t||ti.empty(this.root)}add(t){const e=t instanceof ve?t:this.root.createElement(t);e.parent=this,ve.ignoreChildTypes.includes(e.type)||this.children.push(e)}traverse(t){t(this);const e=this.children;for(let r=0,a=e.length;r<a;r++)e[r].traverse(t)}getById(t){if(this.getAttribute("id").toString()===t)return this;for(let e=0,r=this.children.length;e<r;e++){let a=this.children[e].getById(t);if(a)return a}}getByIds(t){let e=[];return t!=null&&t.length&&t.forEach(r=>{let a=this.getById(r);a&&e.push(a)}),e}getByType(t){if(this.type===t)return this;for(let e=0,r=this.children.length;e<r;e++){let a=this.children[e].getByType(t);if(a)return a}}getRotateRad(t,e=!1){for(;t<0;)t+=360;for(;t>360;)t-=360;return e||(t=360-t),Qs(t)}getMatrix(){const t=new Nt,e=this.getStyle("transform",!1,!0),r=this.getAttribute("x"),a=this.getAttribute("y"),u=r.hasValue()?r.getPixels("x"):0,l=a.hasValue()?a.getPixels("y"):0;if((u||l)&&t.makeTranslation(u,l),e.hasValue()){_e.identity();let c=Jd(e.toString());c.forEach(f=>{if(f==="none")return;const[g,x]=Su(f);let E=Cu(x);g==="scale"&&_e.scale(E[0],E[1])}),c.forEach(f=>{if(f==="none")return;const[g,x]=Su(f);let E=Cu(x);g==="translate"&&(mi.set(E[0],E[1]).applyMatrix3(_e),_e.getScale(i2),_e.translate(mi.x,mi.y))}),c.forEach(f=>{if(f==="none")return;const[g,x]=Su(f);let E=Cu(x);if(g==="rotate")if(E[1]||E[2]){_e.getTransition(rc),_e.getScale(nc);const b=nc.x<0?-1:1,T=this.getRotateRad(E[0],b<0);mi.set(E[1],E[2]),mi.equals(rc)||mi.applyMatrix3(_e),_e.translate(-mi.x,-mi.y),_e.rotate(T),_e.translate(mi.x,mi.y)}else _e.rotate(Qs(E[0]))}),t.premultiply(_e)}return t}matchesSelector(t){var a;const{node:e}=this;if(typeof e.matches=="function")return e.matches(t);const r=(a=e.getAttribute)==null?void 0:a.call(e,"class");return!r||r===""?!1:r.split(" ").some(u=>`.${u}`===t)}}const _e=new Nt,i2=new L,mi=new L,rc=new L,nc=new L,la={};class sc extends ve{type="unknown";constructor(t,e){super(t,e),process.env.NODE_ENV!=="production"&&(la[e.nodeName]||(la[e.nodeName]=0),la[e.nodeName]||console.error(`${e.nodeName} implemented not yet.`),la[e.nodeName]++)}}class r2 extends ve{type="defs";constructor(t,e){super(t,e)}}class n2 extends ve{type="style";constructor(t,e){super(t,e),ct.replace(Array.from(e.childNodes).map(u=>u.textContent).join("").replace(/(\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\/)|(^[\s]*\/\/.*)/gm,"").replace(/@import.*;/g,""),/(?!\u3000)\s+/gm," ").split("}").forEach(u=>{const l=ct.trim(u);if(!l)return;const c=l.split("{"),f=c[0].split(","),g=c[1].split(";");f.forEach(x=>{const E=ct.trim(x);if(!E)return;const b=this.root.styles[E]||{};g.forEach(T=>{const I=T.indexOf(":"),S=T.substr(0,I).trim(),D=T.substr(I+1,T.length-I).trim();S&&D&&(b[S]=new ti(this.root,S,D))}),this.root.styles[E]=b,this.root.stylesSpecificity[E]=Qd(E)})})}}class s2 extends ve{type="view";constructor(t,e){super(t,e)}}class a2 extends ve{type="symbol";constructor(t,e){super(t,e)}}const Wt=" ";function u2(n){let t="";Array.isArray(n)||(n=[n]);for(let e=0;e<n.length;e++){const r=n[e];if(r.type===P.CLOSE_PATH)t+="z";else if(r.type===P.HORIZ_LINE_TO)t+=(r.relative?"h":"H")+r.x;else if(r.type===P.VERT_LINE_TO)t+=(r.relative?"v":"V")+r.y;else if(r.type===P.MOVE_TO)t+=(r.relative?"m":"M")+r.x+Wt+r.y;else if(r.type===P.LINE_TO)t+=(r.relative?"l":"L")+r.x+Wt+r.y;else if(r.type===P.CURVE_TO)t+=(r.relative?"c":"C")+r.x1+Wt+r.y1+Wt+r.x2+Wt+r.y2+Wt+r.x+Wt+r.y;else if(r.type===P.SMOOTH_CURVE_TO)t+=(r.relative?"s":"S")+r.x2+Wt+r.y2+Wt+r.x+Wt+r.y;else if(r.type===P.QUAD_TO)t+=(r.relative?"q":"Q")+r.x1+Wt+r.y1+Wt+r.x+Wt+r.y;else if(r.type===P.SMOOTH_QUAD_TO)t+=(r.relative?"t":"T")+r.x+Wt+r.y;else if(r.type===P.ARC)t+=(r.relative?"a":"A")+r.rX+Wt+r.rY+Wt+r.xRot+Wt+ +r.lArcFlag+Wt+ +r.sweepFlag+Wt+r.x+Wt+r.y;else throw new Error(`Unexpected command type "${r==null?void 0:r.type}" at index ${e}.`)}return t}function Qu([n,t],e){return[n*Math.cos(e)-t*Math.sin(e),n*Math.sin(e)+t*Math.cos(e)]}function ei(...n){for(let t=0;t<n.length;t++)if(typeof n[t]!="number")throw new Error(`assertNumbers arguments[${t}] is not a number. ${typeof n[t]} == typeof ${n[t]}`);return!0}const er=Math.PI;function Ju(n,t,e){n.lArcFlag=n.lArcFlag===0?0:1,n.sweepFlag=n.sweepFlag===0?0:1;let{rX:r,rY:a}=n;const{x:u,y:l}=n;r=Math.abs(n.rX),a=Math.abs(n.rY);const[c,f]=Qu([(t-u)/2,(e-l)/2],-n.xRot/180*er),g=Math.pow(c,2)/Math.pow(r,2)+Math.pow(f,2)/Math.pow(a,2);1<g&&(r*=Math.sqrt(g),a*=Math.sqrt(g)),n.rX=r,n.rY=a;const x=Math.pow(r,2)*Math.pow(f,2)+Math.pow(a,2)*Math.pow(c,2),E=(n.lArcFlag!==n.sweepFlag?1:-1)*Math.sqrt(Math.max(0,(Math.pow(r,2)*Math.pow(a,2)-x)/x)),b=r*f/a*E,T=-a*c/r*E,I=Qu([b,T],n.xRot/180*er);n.cX=I[0]+(t+u)/2,n.cY=I[1]+(e+l)/2,n.phi1=Math.atan2((f-T)/a,(c-b)/r),n.phi2=Math.atan2((-f-T)/a,(-c-b)/r),n.sweepFlag===0&&n.phi2>n.phi1&&(n.phi2-=2*er),n.sweepFlag===1&&n.phi2<n.phi1&&(n.phi2+=2*er),n.phi1*=180/er,n.phi2*=180/er}function ac(n,t,e){ei(n,t,e);const r=n*n+t*t-e*e;if(0>r)return[];if(r===0)return[[n*e/(n*n+t*t),t*e/(n*n+t*t)]];const a=Math.sqrt(r);return[[(n*e+t*a)/(n*n+t*t),(t*e-n*a)/(n*n+t*t)],[(n*e-t*a)/(n*n+t*t),(t*e+n*a)/(n*n+t*t)]]}const Li=Math.PI/180;function uc(n,t,e){return(1-e)*n+e*t}function oc(n,t,e,r){return n+Math.cos(r/180*er)*t+Math.sin(r/180*er)*e}function lc(n,t,e,r){const u=t-n,l=e-t,c=r-e,f=3*u+3*c-6*l,g=(l-u)*6,x=3*u;return Math.abs(f)<1e-6?[-x/g]:o2(g/f,x/f,1e-6)}function hc(n,t,e,r,a){const u=1-a,l=u*u*u,c=3*u*u*a,f=3*u*a*a,g=a*a*a;return n*l+t*c+e*f+r*g}function o2(n,t,e=1e-6){const r=n*n/4-t;if(r<-e)return[];if(r<=e)return[-n/2];const a=Math.sqrt(r);return[-(n/2)-a,-(n/2)+a]}function l2(n,t,e){n.cX||Ju(n,t,e);const r=Math.min(n.phi1,n.phi2),a=Math.max(n.phi1,n.phi2),u=a-r,l=Math.ceil(u/90),c=new Array(l);let f=t,g=e;for(let x=0;x<l;x++){const E=uc(n.phi1,n.phi2,x/l),b=uc(n.phi1,n.phi2,(x+1)/l),T=b-E,I=4/3*Math.tan(T*Li/4),[S,D]=[Math.cos(E*Li)-I*Math.sin(E*Li),Math.sin(E*Li)+I*Math.cos(E*Li)],[k,V]=[Math.cos(b*Li),Math.sin(b*Li)],[W,X]=[k+I*Math.sin(b*Li),V-I*Math.cos(b*Li)],$={relative:n.relative,type:P.CURVE_TO},K=(tt,Z)=>{const[z,J]=Qu([tt*n.rX,Z*n.rY],n.xRot);return[n.cX+z,n.cY+J]};[$.x1,$.y1]=K(S,D),[$.x2,$.y2]=K(W,X),[$.x,$.y]=K(k,V),n.relative&&($.x1-=f,$.y1-=g,$.x2-=f,$.y2-=g,$.x-=f,$.y-=g),[f,g]=[$.x,$.y],c[x]=$}return c}function h2(n=1e13){ei(n);function t(e){return Math.round(e*n)/n}return function(r){return"x1"in r&&typeof r.x1<"u"&&(r.x1=t(r.x1)),"y1"in r&&typeof r.y1<"u"&&(r.y1=t(r.y1)),"x2"in r&&typeof r.x2<"u"&&(r.x2=t(r.x2)),"y2"in r&&typeof r.y2<"u"&&(r.y2=t(r.y2)),"x"in r&&typeof r.x<"u"&&(r.x=t(r.x)),"y"in r&&typeof r.y<"u"&&(r.y=t(r.y)),"rX"in r&&typeof r.rX<"u"&&(r.rX=t(r.rX)),"rY"in r&&typeof r.rY<"u"&&(r.rY=t(r.rY)),r}}function cc(){return ii((n,t,e)=>(n.relative&&(typeof n.x1<"u"&&(n.x1+=t),typeof n.y1<"u"&&(n.y1+=e),typeof n.x2<"u"&&(n.x2+=t),typeof n.y2<"u"&&(n.y2+=e),typeof n.x<"u"&&(n.x+=t),typeof n.y<"u"&&(n.y+=e),n.relative=!1),n))}function c2(){return ii((n,t,e)=>(n.relative||(typeof n.x1<"u"&&(n.x1-=t),typeof n.y1<"u"&&(n.y1-=e),typeof n.x2<"u"&&(n.x2-=t),typeof n.y2<"u"&&(n.y2-=e),typeof n.x<"u"&&(n.x-=t),typeof n.y<"u"&&(n.y-=e),n.relative=!0),n))}function f2(n=!0,t=!0,e=!0){return ii((r,a,u,l,c)=>{if(isNaN(l)&&!(r.type&P.MOVE_TO))throw new Error("path must start with moveto");return t&&r.type&P.HORIZ_LINE_TO&&(r.type=P.LINE_TO,r.y=r.relative?0:u),e&&r.type&P.VERT_LINE_TO&&(r.type=P.LINE_TO,r.x=r.relative?0:a),n&&r.type&P.CLOSE_PATH&&(r.type=P.LINE_TO,r.x=r.relative?l-a:l,r.y=r.relative?c-u:c),r.type&P.ARC&&(r.rX===0||r.rY===0)&&(r.type=P.LINE_TO,delete r.rX,delete r.rY,delete r.xRot,delete r.lArcFlag,delete r.sweepFlag),r})}function fc(){let n=NaN,t=NaN,e=NaN,r=NaN;return ii((a,u,l)=>(a.type&P.SMOOTH_CURVE_TO&&(a.type=P.CURVE_TO,n=isNaN(n)?u:n,t=isNaN(t)?l:t,a.x1=a.relative?u-n:2*u-n,a.y1=a.relative?l-t:2*l-t),a.type&P.CURVE_TO?(n=a.relative?u+a.x2:a.x2,t=a.relative?l+a.y2:a.y2):(n=NaN,t=NaN),a.type&P.SMOOTH_QUAD_TO&&(a.type=P.QUAD_TO,e=isNaN(e)?u:e,r=isNaN(r)?l:r,a.x1=a.relative?u-e:2*u-e,a.y1=a.relative?l-r:2*l-r),a.type&P.QUAD_TO?(e=a.relative?u+a.x1:a.x1,r=a.relative?l+a.y1:a.y1):(e=NaN,r=NaN),a))}function pc(){let n=NaN,t=NaN;return ii((e,r,a)=>{if(e.type&P.SMOOTH_QUAD_TO&&(e.type=P.QUAD_TO,n=isNaN(n)?r:n,t=isNaN(t)?a:t,e.x1=e.relative?r-n:2*r-n,e.y1=e.relative?a-t:2*a-t),e.type&P.QUAD_TO){n=e.relative?r+e.x1:e.x1,t=e.relative?a+e.y1:e.y1;const u=e.x1,l=e.y1;e.type=P.CURVE_TO,e.x1=((e.relative?0:r)+u*2)/3,e.y1=((e.relative?0:a)+l*2)/3,e.x2=(e.x+u*2)/3,e.y2=(e.y+l*2)/3}else n=NaN,t=NaN;return e})}function ii(n){let t=0,e=0,r=NaN,a=NaN;return function(l){if(isNaN(r)&&!(l.type&P.MOVE_TO))throw new Error("path must start with moveto");const c=n(l,t,e,r,a);return l.type&P.CLOSE_PATH&&(t=r,e=a),"x"in l&&typeof l.x<"u"&&(t=l.relative?t+l.x:l.x),"y"in l&&typeof l.y<"u"&&(e=l.relative?e+l.y:l.y),l.type&P.MOVE_TO&&(r=t,a=e),c}}function p2(n=0){ei(n);let t=NaN,e=NaN,r=NaN,a=NaN;return ii((u,l,c,f,g)=>{const x=Math.abs;let E=!1,b=0,T=0;if(u.type&P.SMOOTH_CURVE_TO&&(b=isNaN(t)?0:l-t,T=isNaN(e)?0:c-e),u.type&(P.CURVE_TO|P.SMOOTH_CURVE_TO)?(t=u.relative?l+u.x2:u.x2,e=u.relative?c+u.y2:u.y2):(t=NaN,e=NaN),u.type&P.SMOOTH_QUAD_TO?(r=isNaN(r)?l:2*l-r,a=isNaN(a)?c:2*c-a):u.type&P.QUAD_TO?(r=u.relative?l+u.x1:u.x1,a=u.relative?c+u.y1:u.y2):(r=NaN,a=NaN),u.type&P.LINE_COMMANDS||u.type&P.ARC&&(u.rX===0||u.rY===0||!u.lArcFlag)||u.type&P.CURVE_TO||u.type&P.SMOOTH_CURVE_TO||u.type&P.QUAD_TO||u.type&P.SMOOTH_QUAD_TO){const I=typeof u.x>"u"?0:u.relative?u.x:u.x-l,S=typeof u.y>"u"?0:u.relative?u.y:u.y-c;b=isNaN(r)?typeof u.x1>"u"?b:u.relative?u.x:u.x1-l:r-l,T=isNaN(a)?typeof u.y1>"u"?T:u.relative?u.y:u.y1-c:a-c;const D=typeof u.x2>"u"?0:u.relative?u.x:u.x2-l,k=typeof u.y2>"u"?0:u.relative?u.y:u.y2-c;x(I)<=n&&x(S)<=n&&x(b)<=n&&x(T)<=n&&x(D)<=n&&x(k)<=n&&(E=!0)}return u.type&P.CLOSE_PATH&&x(l-f)<=n&&x(c-g)<=n&&(E=!0),E?[]:u})}function ir(n,t,e,r,a,u){return ei(n,t,e,r,a,u),ii((l,c,f,g)=>{const x=l.x1,E=l.x2,b=l.relative&&!isNaN(g),T=typeof l.x<"u"?l.x:b?0:c,I=typeof l.y<"u"?l.y:b?0:f;l.type&P.HORIZ_LINE_TO&&t!==0&&(l.type=P.LINE_TO,l.y=l.relative?0:f),l.type&P.VERT_LINE_TO&&e!==0&&(l.type=P.LINE_TO,l.x=l.relative?0:c),typeof l.x<"u"&&(l.x=l.x*n+I*e+(b?0:a)),typeof l.y<"u"&&(l.y=T*t+l.y*r+(b?0:u)),typeof l.x1<"u"&&(l.x1=l.x1*n+l.y1*e+(b?0:a)),typeof l.y1<"u"&&(l.y1=x*t+l.y1*r+(b?0:u)),typeof l.x2<"u"&&(l.x2=l.x2*n+l.y2*e+(b?0:a)),typeof l.y2<"u"&&(l.y2=E*t+l.y2*r+(b?0:u));function S(k){return k*k}const D=n*r-t*e;if(typeof l.xRot<"u"&&(n!==1||t!==0||e!==0||r!==1))if(D===0)delete l.rX,delete l.rY,delete l.xRot,delete l.lArcFlag,delete l.sweepFlag,l.type=P.LINE_TO;else{const k=l.xRot*Math.PI/180,V=Math.sin(k),W=Math.cos(k),X=1/S(l.rX),$=1/S(l.rY),K=S(W)*X+S(V)*$,tt=2*V*W*(X-$),Z=S(V)*X+S(W)*$,z=K*r*r-tt*t*r+Z*t*t,J=tt*(n*r+t*e)-2*(K*e*r+Z*n*t),nt=K*e*e-tt*n*e+Z*n*n,mt=(Math.atan2(J,z-nt)+Math.PI)%Math.PI/2,It=Math.sin(mt),Ct=Math.cos(mt);l.rX=Math.abs(D)/Math.sqrt(z*S(Ct)+J*It*Ct+nt*S(It)),l.rY=Math.abs(D)/Math.sqrt(z*S(It)-J*It*Ct+nt*S(Ct)),l.xRot=mt*180/Math.PI}return typeof l.sweepFlag<"u"&&0>D&&(l.sweepFlag=+!l.sweepFlag),l})}function d2(n,t=0,e=0){ei(n,t,e);const r=Math.sin(n),a=Math.cos(n);return ir(a,r,-r,a,t-t*a+e*r,e-t*r-e*a)}function g2(n,t=0){return ei(n,t),ir(1,0,0,1,n,t)}function m2(n,t=n){return ei(n,t),ir(n,0,0,t,0,0)}function y2(n){return ei(n),ir(1,0,Math.atan(n),1,0,0)}function v2(n){return ei(n),ir(1,Math.atan(n),0,1,0,0)}function x2(n=0){return ei(n),ir(-1,0,0,1,n,0)}function E2(n=0){return ei(n),ir(1,0,0,-1,0,n)}function b2(){return ii((n,t,e)=>P.ARC===n.type?l2(n,n.relative?0:t,n.relative?0:e):n)}function A2(){return ii((n,t,e)=>(n.relative&&(t=0,e=0),P.ARC===n.type&&Ju(n,t,e),n))}function dc(){return n=>({...n})}function w2(){const n=dc(),t=cc(),e=pc(),r=fc(),a=ii((u,l,c)=>{const f=r(e(t(n(u))));function g(E){E>a.maxX&&(a.maxX=E),E<a.minX&&(a.minX=E)}function x(E){E>a.maxY&&(a.maxY=E),E<a.minY&&(a.minY=E)}if(f.type&P.DRAWING_COMMANDS&&(g(l),x(c)),f.type&P.HORIZ_LINE_TO&&g(f.x),f.type&P.VERT_LINE_TO&&x(f.y),f.type&P.LINE_TO&&(g(f.x),x(f.y)),f.type&P.CURVE_TO){g(f.x),x(f.y);const E=lc(l,f.x1,f.x2,f.x);for(const T of E)0<T&&1>T&&g(hc(l,f.x1,f.x2,f.x,T));const b=lc(c,f.y1,f.y2,f.y);for(const T of b)0<T&&1>T&&x(hc(c,f.y1,f.y2,f.y,T))}if(f.type&P.ARC){g(f.x),x(f.y),Ju(f,l,c);const E=f.xRot/180*Math.PI,b=Math.cos(E)*f.rX,T=Math.sin(E)*f.rX,I=-Math.sin(E)*f.rY,S=Math.cos(E)*f.rY,[D,k]=f.phi1<f.phi2?[f.phi1,f.phi2]:-180>f.phi2?[f.phi2+360,f.phi1+360]:[f.phi2,f.phi1],V=([$,K])=>{const Z=Math.atan2(K,$)*180/Math.PI;return Z<D?Z+360:Z},W=ac(I,-b,0).map(V);for(const $ of W)$>D&&$<k&&g(oc(f.cX,b,I,$));const X=ac(S,-T,0).map(V);for(const $ of X)$>D&&$<k&&x(oc(f.cY,T,S,$))}return u});return a.minX=1/0,a.maxX=-1/0,a.minY=1/0,a.maxY=-1/0,a}const Xt={ROUND:h2,TO_ABS:cc,TO_REL:c2,NORMALIZE_HVZ:f2,NORMALIZE_ST:fc,QT_TO_C:pc,INFO:ii,SANITIZE:p2,MATRIX:ir,ROTATE:d2,TRANSLATE:g2,SCALE:m2,SKEW_X:y2,SKEW_Y:v2,X_AXIS_SYMMETRY:x2,Y_AXIS_SYMMETRY:E2,A_TO_C:b2,ANNOTATE_ARCS:A2,CLONE:dc,CALCULATE_BOUNDS:w2};class gc{round(t){return this.transform(Xt.ROUND(t))}toAbs(){return this.transform(Xt.TO_ABS())}toRel(){return this.transform(Xt.TO_REL())}normalizeHVZ(t,e,r){return this.transform(Xt.NORMALIZE_HVZ(t,e,r))}normalizeST(){return this.transform(Xt.NORMALIZE_ST())}qtToC(){return this.transform(Xt.QT_TO_C())}aToC(){return this.transform(Xt.A_TO_C())}sanitize(t){return this.transform(Xt.SANITIZE(t))}translate(t,e){return this.transform(Xt.TRANSLATE(t,e))}scale(t,e){return this.transform(Xt.SCALE(t,e))}rotate(t,e,r){return this.transform(Xt.ROTATE(t,e,r))}matrix(t,e,r,a,u,l){return this.transform(Xt.MATRIX(t,e,r,a,u,l))}skewX(t){return this.transform(Xt.SKEW_X(t))}skewY(t){return this.transform(Xt.SKEW_Y(t))}xSymmetry(t){return this.transform(Xt.X_AXIS_SYMMETRY(t))}ySymmetry(t){return this.transform(Xt.Y_AXIS_SYMMETRY(t))}annotateArcs(){return this.transform(Xt.ANNOTATE_ARCS())}}const T2=n=>n===" "||n===" "||n==="\r"||n===`
39
- `,mc=n=>48<=n.charCodeAt(0)&&n.charCodeAt(0)<=57;class _2 extends gc{curNumber="";curCommandType=-1;curCommandRelative=!1;canParseCommandOrComma=!0;curNumberHasExp=!1;curNumberHasExpDigits=!1;curNumberHasDecimal=!1;curArgs=[];constructor(){super()}finish(t=[]){if(this.parse(" ",t),this.curArgs.length!==0||!this.canParseCommandOrComma)throw new SyntaxError("Unterminated command at the path end.");return t}parse(t,e=[]){const r=a=>{e.push(a),this.curArgs.length=0,this.canParseCommandOrComma=!0};for(let a=0;a<t.length;a++){const u=t[a],l=this.curCommandType===P.ARC&&(this.curArgs.length===3||this.curArgs.length===4)&&this.curNumber.length===1&&(this.curNumber==="0"||this.curNumber==="1"),c=mc(u)&&(this.curNumber==="0"&&u==="0"||l);if(mc(u)&&!c){this.curNumber+=u,this.curNumberHasExpDigits=this.curNumberHasExp;continue}if(u==="e"||u==="E"){this.curNumber+=u,this.curNumberHasExp=!0;continue}if((u==="-"||u==="+")&&this.curNumberHasExp&&!this.curNumberHasExpDigits){this.curNumber+=u;continue}if(u==="."&&!this.curNumberHasExp&&!this.curNumberHasDecimal&&!l){this.curNumber+=u,this.curNumberHasDecimal=!0;continue}if(this.curNumber&&this.curCommandType!==-1){const f=Number(this.curNumber);if(isNaN(f))throw new SyntaxError(`Invalid number ending at ${a}`);if(this.curCommandType===P.ARC){if(this.curArgs.length===0||this.curArgs.length===1){if(0>f)throw new SyntaxError(`Expected positive number, got "${f}" at index "${a}"`)}else if((this.curArgs.length===3||this.curArgs.length===4)&&this.curNumber!=="0"&&this.curNumber!=="1")throw new SyntaxError(`Expected a flag, got "${this.curNumber}" at index "${a}"`)}this.curArgs.push(f),this.curArgs.length===C2[this.curCommandType]&&(P.HORIZ_LINE_TO===this.curCommandType?r({type:P.HORIZ_LINE_TO,relative:this.curCommandRelative,x:f}):P.VERT_LINE_TO===this.curCommandType?r({type:P.VERT_LINE_TO,relative:this.curCommandRelative,y:f}):this.curCommandType===P.MOVE_TO||this.curCommandType===P.LINE_TO||this.curCommandType===P.SMOOTH_QUAD_TO?(r({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),P.MOVE_TO===this.curCommandType&&(this.curCommandType=P.LINE_TO)):this.curCommandType===P.CURVE_TO?r({type:P.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===P.SMOOTH_CURVE_TO?r({type:P.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===P.QUAD_TO?r({type:P.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===P.ARC&&r({type:P.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T2(u)){if(u===","&&this.canParseCommandOrComma){this.canParseCommandOrComma=!1;continue}if(u==="+"||u==="-"||u==="."){this.curNumber=u,this.curNumberHasDecimal=u===".";continue}if(c){this.curNumber=u,this.curNumberHasDecimal=!1;continue}if(this.curArgs.length!==0)throw new SyntaxError(`Unterminated command at index ${a}.`);if(!this.canParseCommandOrComma)throw new SyntaxError(`Unexpected character "${u}" at index ${a}. Command cannot follow comma`);if(this.canParseCommandOrComma=!1,u==="z"||u==="Z"){e.push({type:P.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1;continue}else if(u==="h"||u==="H")this.curCommandType=P.HORIZ_LINE_TO,this.curCommandRelative=u==="h";else if(u==="v"||u==="V")this.curCommandType=P.VERT_LINE_TO,this.curCommandRelative=u==="v";else if(u==="m"||u==="M")this.curCommandType=P.MOVE_TO,this.curCommandRelative=u==="m";else if(u==="l"||u==="L")this.curCommandType=P.LINE_TO,this.curCommandRelative=u==="l";else if(u==="c"||u==="C")this.curCommandType=P.CURVE_TO,this.curCommandRelative=u==="c";else if(u==="s"||u==="S")this.curCommandType=P.SMOOTH_CURVE_TO,this.curCommandRelative=u==="s";else if(u==="q"||u==="Q")this.curCommandType=P.QUAD_TO,this.curCommandRelative=u==="q";else if(u==="t"||u==="T")this.curCommandType=P.SMOOTH_QUAD_TO,this.curCommandRelative=u==="t";else if(u==="a"||u==="A")this.curCommandType=P.ARC,this.curCommandRelative=u==="a";else throw new SyntaxError(`Unexpected character "${u}" at index ${a}.`)}}return e}transform(t){return Object.create(this,{parse:{value(r,a=[]){const u=Object.getPrototypeOf(this).parse.call(this,r);for(const l of u){const c=t(l);Array.isArray(c)?a.push(...c):a.push(c)}return a}}})}}class P extends gc{commands;constructor(t){super(),typeof t=="string"?this.commands=P.parse(t):this.commands=t}encode(){return P.encode(this.commands)}getBounds(){const t=Xt.CALCULATE_BOUNDS();return this.transform(t),t}transform(t){const e=[];for(const r of this.commands){const a=t(r);Array.isArray(a)?e.push(...a):e.push(a)}return this.commands=e,this}static encode(t){return u2(t)}static parse(t){const e=new _2,r=[];return e.parse(t,r),e.finish(r),r}static CLOSE_PATH=1;static MOVE_TO=2;static HORIZ_LINE_TO=4;static VERT_LINE_TO=8;static LINE_TO=16;static CURVE_TO=32;static SMOOTH_CURVE_TO=64;static QUAD_TO=128;static SMOOTH_QUAD_TO=256;static ARC=512;static LINE_COMMANDS=P.LINE_TO|P.HORIZ_LINE_TO|P.VERT_LINE_TO;static DRAWING_COMMANDS=P.HORIZ_LINE_TO|P.VERT_LINE_TO|P.LINE_TO|P.CURVE_TO|P.SMOOTH_CURVE_TO|P.QUAD_TO|P.SMOOTH_QUAD_TO|P.ARC}const C2={[P.MOVE_TO]:2,[P.LINE_TO]:2,[P.HORIZ_LINE_TO]:1,[P.VERT_LINE_TO]:1,[P.CLOSE_PATH]:0,[P.QUAD_TO]:4,[P.SMOOTH_QUAD_TO]:2,[P.CURVE_TO]:6,[P.SMOOTH_CURVE_TO]:4,[P.ARC]:7},_r=new L,an=new L;class S2 extends ve{type="path";pathData;paths=[];_i=-1;_command;_previousCommand;_start=new L;_control=new L;_current=new L;_ps=[];_angles=[];constructor(t,e){super(t,e),this.initPaths()}initPaths(){var r,a;let t=this.getAttribute("d").toString().replace(/([+\-.])\s+/gm,"$1").replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g,"");if(this.pathData=new P(t),!((a=(r=this.pathData)==null?void 0:r.commands)!=null&&a.length))return;this._reset();const e=new di;for(;!this._isEnd();){const u=this._next();switch(u.type){case P.MOVE_TO:this.moveTo(e);break;case P.LINE_TO:this.lineTo(e);break;case P.HORIZ_LINE_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.VERT_LINE_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.CURVE_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.SMOOTH_CURVE_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.QUAD_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.SMOOTH_QUAD_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.ARC:this.arc(e);break;case P.CLOSE_PATH:this.closePath(e);break;default:console.error(`path ${u} implemented not yet.`);break}}this.paths.push(e)}moveTo(t){return _r.copy(this._getAsCurrentPoint()),this._start.copy(this._current),t.moveTo(_r.x,_r.y),this}lineTo(t){return an.copy(this._getAsCurrentPoint()),t.lineTo(an.x,an.y),this}arc(t){_r.copy(this._current),an.copy(this._getAsCurrentPoint());const e=_r.x,r=_r.y,a=an.x,u=an.y,l=this._command.lArcFlag,c=this._command.sweepFlag,f=this._command.rX,g=this._command.rY,x=this._command.xRot;let E=D2(e,r,a,u,l,c,f,g,x),b=E[2]>E[3]?E[2]:E[3];return t.arc(E[0],E[1],b,E[4],E[4]+E[5],!!(E[7]-1)),this}closePath(t){return this._current.copy(this._start),t.closePath(),this}_reset(){this._i=-1,this._command=void 0,this._previousCommand=void 0,this._start.set(0,0),this._control.set(0,0),this._current.set(0,0),this._ps.length=0,this._angles.length=0}_isEnd(){var t;return this._i>=(((t=this.pathData.commands)==null?void 0:t.length)||0)-1}_next(){const t=this.pathData.commands[++this._i];return this._previousCommand=this._command,this._command=t,this._command}_getAsCurrentPoint(t,e){return _r.copy(this._current),this._current.copy(this._getPoint(t,e)),this._current}_getPoint(t="x",e="y"){return this._makeAbsolute(new L(this._command[t],this._command[e]))}_makeAbsolute(t){return this._command.relative?t.add(this._current):t}_getAsControlPoint(t,e){return this._control.copy(this._getPoint(t,e)),this._control}_getReflectedControlPoint(){var e;const t=(e=this._previousCommand)==null?void 0:e.type;return t!==P.CURVE_TO&&t!==P.SMOOTH_CURVE_TO&&t!==P.QUAD_TO&&t!==P.SMOOTH_QUAD_TO?this._current:(this._current.set(this._command.cx,this._command.cy),this._control.set(this._command.ox,this._command.oy),new L(2*this._current.x-this._control.x,2*this._current.y-this._control.y))}}function D2(n,t,e,r,a,u,l,c,f){let g=f*(Math.PI/180),x=Math.cos(g)*(n-e)/2+Math.sin(g)*(t-r)/2,E=-1*Math.sin(g)*(n-e)/2+Math.cos(g)*(t-r)/2,b=x*x/(l*l)+E*E/(c*c);b>1&&(l*=Math.sqrt(b),c*=Math.sqrt(b));let T=Math.sqrt((l*l*(c*c)-l*l*(E*E)-c*c*(x*x))/(l*l*(E*E)+c*c*(x*x)));a===u&&(T*=-1),isNaN(T)&&(T=0);let I=T*l*E/c,S=T*-c*x/l,D=(n+e)/2+Math.cos(g)*I-Math.sin(g)*S,k=(t+r)/2+Math.sin(g)*I+Math.cos(g)*S,V=function(z){return Math.sqrt(z[0]*z[0]+z[1]*z[1])},W=function(z,J){return(z[0]*J[0]+z[1]*J[1])/(V(z)*V(J))},X=function(z,J){return(z[0]*J[1]<z[1]*J[0]?-1:1)*Math.acos(W(z,J))},$=X([1,0],[(x-I)/l,(E-S)/c]),K=[(x-I)/l,(E-S)/c],tt=[(-1*x-I)/l,(-1*E-S)/c],Z=X(K,tt);return W(K,tt)<=-1&&(Z=Math.PI),W(K,tt)>=1&&(Z=0),u===0&&Z>0&&(Z=Z-2*Math.PI),u===1&&Z<0&&(Z=Z+2*Math.PI),[D,k,l,c,$,Z,g,u]}class N2 extends ve{type="g";constructor(t,e){super(t,e)}}class M2 extends ve{type="use";symbolId;cachedElement;constructor(t,e){super(t,e),this.symbolId=ct.replace(this.getHrefAttribute().toString()||"","#",""),this.cachedElement||(this.cachedElement=this.getHrefAttribute().getDefinition())}}class O2 extends ve{type="circle";paths=[];constructor(t,e){super(t,e),this.initPath()}initPath(){this.paths.length=0;const t=new di,e=this.getAttribute("cx").getPixels("x"),r=this.getAttribute("cy").getPixels("y"),a=this.getAttribute("r").getPixels();a>0&&t.arc(e,r,a,0,Math.PI*2,!1),this.paths.push(t)}}class B2 extends ve{type="text";text;fontSize;constructor(t,e){super(t,e),this.text=this.getTextFromNode()}getTextFromNode(t){const e=t||this.node,r=Array.from(e.parentNode.childNodes),a=r.indexOf(e),u=r.length-1;let l=(e.textContent||"").replace(/(?!\u3000)\s+/gm," ");return a===0&&(l=ct.trimStart(l)),a===u&&(l=ct.trimEnd(l)),l}getFontSize(){var e;const t=(e=this.parent)==null?void 0:e.getStyle("font-size").getPixels(!0);return t?this.text==="Mechanical Room"?20:t:12}}const I2={view:s2,defs:r2,style:n2,symbol:a2,path:S2,g:N2,use:M2,circle:O2,text:B2,unknown:sc};class P2 extends ve{type="svg";definitions={};rootEmSize=yc;emSize=yc;constructor(t){super(null,t),this.definitions={}}createElement(t){const e=t.nodeName.replace(/^[^:]+:/,""),r=I2[e];return r?new r(this,t):new sc(this,t)}}const yc=16;class ju extends Mh{parsedData={};data={};constructor(t){super(t)}static parse(t,e){const r=[];return t&&(Y2(t,r),j2(r)),r}load(t,e,r,a){const u=this,l=new p0(u.manager);l.setPath(u.path),l.setRequestHeader(u.requestHeader),l.setWithCredentials(u.withCredentials),l.load(t,function(c){try{e&&e(c)}catch(f){a?a(f):console.error(f),u.manager.itemError(t)}},r,a)}parseFile(t){if(!t)return;const e=new Wh.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",parseAttributeValue:!0});return this.parsedData=e.parse(t),this.parsedData}static trans2Ro(t,e=!0){let a=new Wh.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",parseAttributeValue:!0}).parse(t),u=L2(a);return as(u,"svg",void 0,a.svg,e)}static getSvgElement(t){let e=new gt.window.DOMParser().parseFromString(t,"image/svg+xml");return new P2(e.documentElement)}selectById(t){this.data}}function L2(n){var e,r,a,u,l,c,f,g,x,E;let t={};return(e=n.svg)!=null&&e.view&&(t.view=R2((r=n.svg)==null?void 0:r.view)),(a=n.svg)!=null&&a.viewBox&&(t.viewBox=new Tt().setFromMinMaxString((u=n.svg)==null?void 0:u.viewBox)),(l=n.svg)!=null&&l.version&&(t.version=(c=n.svg)==null?void 0:c.version),(f=n.svg)!=null&&f.archibusversion&&(t.userData={version:(g=n.svg)==null?void 0:g.archibusversion}),(x=n.svg)!=null&&x.defs&&(t.defs=F2((E=n.svg)==null?void 0:E.defs)),t}function R2(n){return{id:n.id,units:n.units,viewBox:new Tt().setFromMinMaxString(n.viewBox)}}function F2(n){let t={};return t.style=U2(n==null?void 0:n.style),t.symbol=k2(n==null?void 0:n.symbol),t}const Cr={};function U2(n){const t=/\.([^\s{]+)\s*\{\s*([^}]+)\s*\}/g;let e;for(;(e=t.exec(n))!==null;){const r=e[1],a=e[2];Cr[r]={};const u=/([^:]+):\s*([^;]+);?/g;let l;for(;(l=u.exec(a))!==null;){const c=ct.camelCase(l[1].trim()),f=l[2].trim();Cr[r][c]=f}}return Cr}function k2(n){let t={};if(!(n!=null&&n.length))return t;for(let e=0,r=n.length;e<r;e++){let a=n[e];a.id&&(t[a.id]=as({defs:{symbol:t}},"symbol",void 0,n[e],!0))}return t}const ss=["use","path","circle","text"];function as(n,t,e,r,a){let u;if(typeof r!="object")return u;if(Array.isArray(r)){u=new Hu({name:e.id,userData:{id:e.id}});for(let l=0,c=r.length;l<c;l++){let f=as(n,t,e,r[l],a);f&&u.add(f)}return t==="text"&&u.children.length===1?(u=u.children[0],u.updateMatrix(),u):(u.updateMatrix(),u)}if(!t||t==="svg"||t==="g"||t==="symbol"){if(u=new Hu({name:r.id,userData:{id:r.id,tag:t}}),Ec(r,a,u),r.style=vc(n,e,r),r.g){let l=as(n,"g",r,r.g,a);l&&u.add(l)}for(let l=0,c=ss.length;l<c;l++)if(r[ss[l]]){let f=as(n,ss[l],r,r[ss[l]],a);f&&u.add(f)}return u}if(ss.includes(t)){r.style=vc(n,e,r);const l=W2(n,t,r);return l?(Ec(r,a,l),l):void 0}return u}function vc(n,t,e){let r={};return t&&(Cr[t==null?void 0:t.class]&&ct.merge(r,Cr[t.class]),xc(n,t,r)),Cr[e.class]&&ct.merge(r,Cr[e.class]),xc(n,e,r),r}function xc(n,t,e){t.style&&ct.merge(e,t.style);let r=parseFloat(ct.get(t,"stroke-width")||"")||0;return r>0&&(e.strokeWidth=H2(n,r)),e}const q2=new Tt,ha=new L;function H2(n,t){var r,a,u;if(!t)return t;if(!((r=n==null?void 0:n.view)!=null&&r.viewBox))return 1;q2.copy((a=n==null?void 0:n.view)==null?void 0:a.viewBox).getSize(ha);let e=Math.round(t/100*((ha==null?void 0:ha.length())||1));return((u=n==null?void 0:n.view)==null?void 0:u.units)==="inches"&&(e=Math.max(Math.ceil(e/25),1)),e}function W2(n,t,e){var g,x,E,b;let r,a=e.fill||((g=e.style)==null?void 0:g.fill)||void 0,u=e.fillOpacity||((x=e.style)==null?void 0:x.fillOpacity)||void 0;a&&u&&(a=new le(a).setA(u).getStyle());let l=e.strokeWidth||((E=e.style)==null?void 0:E.strokeWidth)||1,c=e.stroke||((b=e.style)==null?void 0:b.stroke)||oe.black;const f=[{name:"path",fill:a,lineWidth:l,stroke:c}];if(t==="path"){let T=Ac(e.d,!0);if(!Array.isArray(T))return f[0].path=T,bc(t,e,f);r=new Hu({name:e.id,userData:{id:e.id,tag:t}});for(let I=0,S=T.length;I<S;I++){let D=ct.cloneDeep(f);D[0].path=T[I];const k=bc(t,e,D);r.add(k),k.updateMatrix()}return r}return t==="use"?V2(n,t,e):t==="text"?$2(t,e):t==="circle"?G2(t,e,f):r}function Ec(n,t,e){if((n.selectable===!0||n.selectable==="true")&&e.setSelectable(!0),n.x!==void 0&&!isNaN(Number(n.x))&&(e.position.x=n.x),n.y!==void 0&&!isNaN(Number(n.y))&&(e.position.y=n.y*(t?-1:1)),n.transform){let r=z2(n.transform);r.tx&&(e.position.x=r.tx),r.ty&&(e.position.y=r.ty*(t?-1:1)),r.rx&&(e.position.x=r.rx),r.ry&&(e.position.y=r.ry*(t?-1:1)),r.ra&&(e.rotation.x=Qs(r.ra*(t?-1:1))),r.sx&&(e.scaled.x=r.sx),r.sy&&(e.scaled.y=r.sy)}return e.updateMatrix(),e}function z2(n){const t={},e=/(\w+)\(([^)]+)\)/g;let r;for(;(r=e.exec(n))!==null;){const[a,u,l]=r,c=l.split(",").map(Number);switch(u){case"scale":t.sx=c[0],t.sy=c.length>1?c[1]:c[0];break;case"translate":isNaN(Number(c[0]))||(t.tx=c[0]),c.length>1&&!isNaN(Number(c[1]))&&(t.ty=c[1]);break;case"rotate":t.ra=c[0],t.rx=c[1],t.ry=c[2];break}}return t}function V2(n,t,e){var u,l;let r,a=ct.get(e,"xlink:href");if(ct.startsWith(a,"#")&&(a=a.substring(1)),(u=n.defs)!=null&&u.symbol&&((l=n.defs)!=null&&l.symbol[a]))return r=n.defs.symbol[a].clone(),ct.merge(r.userData,{id:e.id,tag:t}),r}function bc(n,t,e){return new tc({name:t.id||n,parsedSvg:e,composeNode:!0,userData:{id:t.id,tag:n}})}function $2(n,t){let e=ct.get(t,"#text");if(e)return new e2({text:e,fontSize:20,fill:oe.black,wireframe:!1,flipY:!0,userData:{id:t.id,tag:n}})}function G2(n,t,e){return e[0].cx=t.cx,e[0].cy=t.cy,e[0].r=t.r,_c(e[0]),new tc({name:t.id||n,parsedSvg:e,composeNode:!0,alignCenter:!0,userData:{id:t.id,tag:n}})}const X2=["x","y","lineWidth","width","height","rx","cx","cy","r"];function Y2(n,t=[]){if(!n)throw new Error("input error");const e=n.match(/<(\w+)([^<]+)>/g);if(!e||!e.length)return t;let r="",a=[],u="";for(let l=0,c=e.length;l<c;l++)r=e[l].replace(/[<>]/g,""),a=r.split(" "),!(!a||!a.length)&&(u=a[0],!(u!=="path"&&u!=="clipPath"&&u!=="rect"&&u!=="circle"&&u!=="text"&&u!=="polygon")&&(r.indexOf("class")>=0&&(e[l]=Q2(n,e[l])),J2(e[l],t)));return t}function Z2(n){const t=/<style>([\s\S]*?)<\/style>/,e=n.match(t);if(e&&e.length>1)return e[1]}function K2(n){const t={},e=Z2(n);if(!e)return t;const r=/\.([\w-]+)\s*\{([\s\S]*?)\}/g;let a;for(;(a=r.exec(e))!==null;){const u=a[1],l=a[2];t[u]={};const c=/([\w-]+)\s*:\s*([^;]+)/g;let f;for(;(f=c.exec(l))!==null;){const g=f[1],x=f[2];t[u][g]=x.trim()}}return t}function Q2(n,t){let e=t.match(/class="([^"]+)"/);if(!e)return t;const r=e[0],a=K2(n),u=[];return Object.keys(a).forEach(l=>{Object.keys(a[l]).forEach(c=>{u.push(c+'="'+a[l][c]+'"')})}),!u||!u.length||(t=t.replaceAll(r,u.join(" "))),t}function J2(n,t=[]){const r=n.replace(/[<>]/g,"").split(" ");if(!r||!r.length)return t;const a={name:""};let u="",l=!1;for(let c=0,f=r.length;c<f;c++)if(l=r[c].indexOf("=")>=0,!c)a.name=r[c];else if(l){const g=r[c].split("=");g[0]==="stroke-width"?g[0]="lineWidth":g[0]==="stroke-linecap"&&(g[0]="strokeLinecap"),a[g[0]]=g[1].replace(/\"/g,""),u=g[0]}else l||(a[u]+=" "+r[c].replace(/\"/g,""));for(const c in a)X2.indexOf(c)>=0&&(a[c]=parseFloat(a[c]));return t.push(a),t}function j2(n=[],t){for(let e=0,r=n.length;e<r;e++)switch(n[e].name){case"path":tm(n[e]);break;case"clipPath":break;case"rect":im(n[e]);break;case"circle":_c(n[e]);break;case"text":break;case"polygon":rm(n[e]);break;default:delete n[e].path;break}return n}const un=["m","M","l","L","v","V","h","H","z","Z","c","C","q","Q","t","T","s","S","a","A"];function tm(n){!n.d||!n.d.length||(n.path=Ac(n.d,!1))}const em=100;function Ac(n,t=!1){n=ct.trim(n),n=n.replace(new RegExp(" ","g"),",").replace(new RegExp("M","g"),"|M");const e=ct.split(n,"|");if(e!=null&&e.length&&e[0]===""&&e.shift(),!t||e.length<=em*2){let l=[];for(let c=0,f=e.length;c<f;c++){let g=e[c];for(let E=0,b=un.length;E<b;E++)g=g.replace(new RegExp(un[E],"g"),"|"+un[E]);let x=g.split("|");x!=null&&x.length&&x[0]===""&&x.shift(),l=l.concat(x)}return wc(l)}let r=[];for(let l=0,c=e.length;l<c;l++){let f=/M\s*(-?\d+(\.\d+)?),\s*(-?\d+(\.\d+)?)/g.exec(e[l]);f&&(f==null?void 0:f.length)>3&&r.push({x:parseFloat(f[1]),y:parseFloat(f[3]),cms:e[l]})}r=ct.sortBy(r,l=>L.getLength({x:l.x,y:l.y}));let a=ct.chunk(r,Math.floor(r.length/10)),u=[];for(let l=0,c=a.length;l<c;l++){let f=[];for(let g=0,x=a[l].length;g<x;g++){let E=a[l][g].cms;for(let T=0,I=un.length;T<I;T++)E=E.replace(new RegExp(un[T],"g"),"|"+un[T]);let b=E.split("|");b!=null&&b.length&&b[0]===""&&b.shift(),f=f.concat(b)}u.push(wc(f))}return u}function wc(n){let t=new di;const e=[];let r=0,a=0;const u=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/gi;let l,c="";for(let f=0,g=n.length;f<g;f++){let x=n[f],E=x.charAt(0);for(x=x.slice(1),e.length=0;l=u.exec(x);)e.push(l[0]);const b=[];for(let I=0,S=e.length;I<S;I++){if(e[I]==="00"){b.push(0,0);continue}let D=parseFloat(e[I]);isNaN(D)?b.push(0):b.push(D)}let T=[];for(;b.length>0&&!isNaN(b[0]);){let I=r,S=a,D,k,V,W,X,$,K,tt,Z;switch(E){case"M":I=r=b.shift()||0,S=a=b.shift()||0,t.moveTo(r,a);break;case"m":let z=b.shift()||0,J=b.shift()||0;r+=z,a+=J,c==="z"&&(r=I+z,a=S+J),t.moveTo(r,a);break;case"l":r+=b.shift()||0,a+=b.shift()||0,t.lineTo(r,a);break;case"L":r=b.shift()||0,a=b.shift()||0,t.lineTo(r,a);break;case"h":r+=b.shift()||0,t.lineTo(r,a);break;case"H":r=b.shift()||0,t.lineTo(r,a);break;case"v":a+=b.shift()||0,t.lineTo(r,a);break;case"V":a=b.shift()||0,t.lineTo(r,a);break;case"C":T.length=0,T.push(b.shift()||0,b.shift()||0,b.shift()||0,b.shift()||0),r=b.shift()||0,a=b.shift()||0,t.bezierCurveTo(T[0],T[1],T[2],T[3],r,a);break;case"c":T.length=0,T.push(r+(b.shift()||0),a+(b.shift()||0),r+(b.shift()||0),a+(b.shift()||0)),r+=b.shift()||0,a+=b.shift()||0,t.bezierCurveTo(T[0],T[1],T[2],T[3],r,a);break;case"S":D=r,k=a,c==="C"&&(D=r+(r-T[2]),k=a+(a-T[3])),T.length=0,T.push(D,k,b.shift()||0,b.shift()||0),r=b.shift()||0,a=b.shift()||0,t.bezierCurveTo(T[0],T[1],T[2],T[3],r,a);break;case"s":D=r,k=a,c==="C"&&(D=r+(r-T[2]),k=a+(a-T[3])),T.length=0,T.push(D,k,r+(b.shift()||0),a+(b.shift()||0)),r+=b.shift()||0,a+=b.shift()||0,t.bezierCurveTo(T[0],T[1],T[2],T[3],r,a);break;case"Q":T.length=0,T.push(b.shift()||0,b.shift()||0),r=b.shift()||0,a=b.shift()||0,t.quadraticCurveTo(T[0],T[1],r,a);break;case"q":T.length=0,T.push(r+(b.shift()||0),a+(b.shift()||0)),r+=b.shift()||0,a+=b.shift()||0,t.quadraticCurveTo(T[0],T[1],r,a);break;case"T":D=r,k=a,c==="Q"&&(D=r+(r-T[0]),k=a+(a-T[1])),r=b.shift()||0,a=b.shift()||0,t.quadraticCurveTo(D,k,r,a);break;case"t":D=r,k=a,c==="Q"&&(D=r+(r-T[0]),k=a+(a-T[1])),r+=b.shift()||0,a+=b.shift()||0,t.quadraticCurveTo(D,k,r,a);break;case"A":V=b.shift()||0,W=b.shift()||0,X=b.shift()||0,$=b.shift()||0,K=b.shift()||0,tt=r,Z=a,r=b.shift()||0,a=b.shift()||0,T=Tc(tt,Z,r,a,$,K,V,W,X),t.arc(T[0],T[1],T[2]>T[3]?T[2]:T[3],T[4],T[4]+T[5],!!(T[7]-1));break;case"a":V=b.shift()||0,W=b.shift()||0,X=b.shift()||0,$=b.shift()||0,K=b.shift()||0,tt=r,Z=a,r+=b.shift()||0,a+=b.shift()||0,T=Tc(tt,Z,r,a,$,K,V,W,X),t.arc(T[0],T[1],T[2]>T[3]?T[2]:T[3],T[4],T[4]+T[5],!!(T[7]-1)),console.log("arc: ",x,tt,Z,r,a,$,K,V,W,X);break;case"z":t.closePath();break;default:b.shift()}}c=E,(E==="z"||E==="Z")&&t.closePath()}return t}function Tc(n,t,e,r,a,u,l,c,f){let g=f*(Math.PI/180),x=Math.cos(g)*(n-e)/2+Math.sin(g)*(t-r)/2,E=-1*Math.sin(g)*(n-e)/2+Math.cos(g)*(t-r)/2,b=x*x/(l*l)+E*E/(c*c);b>1&&(l*=Math.sqrt(b),c*=Math.sqrt(b));let T=Math.sqrt((l*l*(c*c)-l*l*(E*E)-c*c*(x*x))/(l*l*(E*E)+c*c*(x*x)));a===u&&(T*=-1),isNaN(T)&&(T=0);let I=T*l*E/c,S=T*-c*x/l,D=(n+e)/2+Math.cos(g)*I-Math.sin(g)*S,k=(t+r)/2+Math.sin(g)*I+Math.cos(g)*S,V=function(z){return Math.sqrt(z[0]*z[0]+z[1]*z[1])},W=function(z,J){return(z[0]*J[0]+z[1]*J[1])/(V(z)*V(J))},X=function(z,J){return(z[0]*J[1]<z[1]*J[0]?-1:1)*Math.acos(W(z,J))},$=X([1,0],[(x-I)/l,(E-S)/c]),K=[(x-I)/l,(E-S)/c],tt=[(-1*x-I)/l,(-1*E-S)/c],Z=X(K,tt);return W(K,tt)<=-1&&(Z=Math.PI),W(K,tt)>=1&&(Z=0),u===0&&Z>0&&(Z=Z-2*Math.PI),u===1&&Z<0&&(Z=Z+2*Math.PI),[D,k,l,c,$,Z,g,u]}function im(n){n.x===void 0||n.y===void 0||n.width===void 0||n.height===void 0||(n.path=new di,n.path.moveTo(n.x,n.y),n.path.lineTo(n.x+n.width,n.y),n.path.lineTo(n.x+n.width,n.y+n.height),n.path.lineTo(n.x,n.y+n.height),n.path.lineTo(n.x,n.y))}function _c(n){n.cx===void 0||n.cy===void 0||n.r===void 0||(n.path=new di,n.path.arc(n.cx,n.cy,n.r,0,Math.PI*2,!1))}function rm(n){if(n.points===void 0)return;n.path=new di;const t=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,e=n.points.match(t);if(e)for(let r=0,a=e.length;r<a;r++){const u=e[r].split(","),l=parseFloat(u[0]),c=parseFloat(u[1]);r?n.path.lineTo(l,c):n.path.moveTo(l,c)}}const ca="ae",Cc="-",fa="rm-assets",Sc="rm-labels";function nm(n){return n+Cc+ia.ASSETS}function sm(n){return n+Cc+ia.LABELS}const am={rm:["su-assets","su-labels","eq-assets","eq-labels","fn-assets","fn-labels"],su:[fa,Sc,"eq-assets","eq-labels","fn-assets","fn-labels"],eq:[fa,Sc,"su-assets","su-labels","fn-assets","fn-labels"]};class um{svg;svgRoot;layers=[];elementsMap={};boundingBoxMap={};boundingBox=new Tt;svgSkeletons=[];data;_exceptTypes=["view"];_exceptIds=["viewer","mirror"];_lvi=0;bindSvg(t){return this.svg=t,this.svgRoot=wh(this.svg),this.layers=this.getLayers(2),this.getElementsMap(this.svg,this.elementsMap),this}getLayers(t){var e;if(!this.svg)throw new Error("please bind svg first");return t===2&&((e=this.layers)!=null&&e.length)?this.layers:(this.layers=this._getSvgLayer(this.svg,t),this.layers)}_getSvgLayer(t,e=0,r=0,a=[]){var c;let u,l=t.id;if(this._exceptTypes.includes(t.tagName)||t.tagName==="defs")return this._lvi--,a;if(e&&this._lvi>e)return a;l&&!this._exceptIds.includes(l)&&(u={id:l,label:l,children:[]},a.push(u)),this._lvi++;for(let f=0,g=t.children.length;f<g;f++)u?this._getSvgLayer(t.children[f],e,this._lvi,u.children):this._getSvgLayer(t.children[f],e,this._lvi,a);return((c=u==null?void 0:u.children)==null?void 0:c.length)===0&&delete u.children,this._lvi=r,a}getElementsMap(t,e={}){return this.traverseSvg(t,r=>{r.id&&(e[r.id]=r)}),e}computeBoundingBoxMap(){return Object.keys(this.boundingBoxMap).length?this.boundingBoxMap:(this.traverseSvg(this.svg,t=>{if(!t.id)return;const e=t.getBoundingClientRect(),r=new Tt(new L(e.left,e.top),new L(e.right,e.bottom));this.boundingBoxMap[t.id]=r,this.boundingBox.expandByBox(r)}),this.boundingBoxMap)}updateLayersVisibility(t,e=!1){if(console.log("updateLayersVisibility: ",t,e,Object.keys(this.elementsMap).length),!this.elementsMap)throw new Error("please bind svg first");this._updateAllLayersVisibility(!e),t!=null&&t.length||(t=["background"]);for(let r=0,a=t.length;r<a;r++){const u=this.getElementById(t[r]);u&&this._updateLayersVisibility(u,e,!0,!0)}}_updateAllLayersVisibility(t=!1){Object.values(this.elementsMap).forEach(e=>{e.tagName==="svg"||e.tagName==="symbol"||!e.getAttribute("id")||(e.style.display=t?"block":"none")})}_updateLayersVisibility(t,e=!1,r=!1,a=!1){var u,l;if(!(!t||t.tagName==="svg"||!t.getAttribute("id"))){if(t.style.display=e?"block":"none",r&&e){let c=t.parentElement;for(;c&&c.tagName!=="svg";)c.style.display=e?"block":"none",c=c.parentElement}if(a&&((u=t.children)==null?void 0:u.length)>0)for(let c=0,f=(l=t.children)==null?void 0:l.length;c<f;c++)this._updateLayersVisibility(t.children[c],e,!1,!0)}}updateVisibilityByAssetType(t,e=!1,r){r||(r=am[t]),this.updateLayersVisibility(r,!e)}updateVisibilityByAssetTypes(t,e=!1,r){if(Array.isArray(t)||(t=[t]),!!(t!=null&&t.length))for(let a=0,u=t.length;a<u;a++)this.updateVisibilityByAssetType(t[a],e,r)}getElementById(t){if(!this.elementsMap)throw new Error("please bind svg first");return this.elementsMap[t]}getElementBoundingBox(t){return this.boundingBoxMap[t]}findSkeletonByPath(t=[]){let e=0,r;const a=Object.keys(this.elementsMap);for(let u=0,l=a.length;u<l;u++){const c=this.elementsMap[a[u]];if(!c)continue;const f=c.getAttribute("d");f&&(f.length<e||(e=f.length,r=c.id?c:c.parent))}return r&&t.push(r),t}setTextInChildren2(t,e){var a;let r;((a=t==null?void 0:t.children)==null?void 0:a.length)<2?(r=qd("text"),r.setAttribute("dy","1em"),t.appendChild(r)):r=t.children[t.children.length-1],r.innerHTML=e}traverseSvg(t,e){var r;if(!this._exceptTypes.includes(t.tagName)&&!(t.tagName!=="svg"&&t.tagName!=="defs"&&!t.id)&&!(t.tagName==="g"&&((r=t.children)==null?void 0:r.length)===0)){this._exceptIds.includes(t.id)||e(t);for(let a=0,u=t.children.length;a<u;a++)this.traverseSvg(t.children[a],e)}}traverseSvgTLayers(t,e){var r;if(Array.isArray(t)){for(let a=0,u=t.length;a<u;a++)this.traverseSvgTLayers(t[a],e);return}if(e(t),!!((r=t.children)!=null&&r.length))for(let a=0,u=t.children.length;a<u;a++)this.traverseSvgTLayers(t.children[a],e)}setElementState2selected(t,e=!1){var a;if(!t)return;if(t.tagName==="use"){const u=this._getSymbolBox(t);if(!u)return;e?(a=t.parentNode)==null||a.insertBefore(u,t):t.parentNode&&t.parentNode.contains(u)&&t.parentNode.removeChild(u);return}let r=t.getAttribute("class");r||(r=""),e?r="selected":r=ct.replace(r,"selected","").trim(),t.setAttribute("class",r)}_getSymbolBox(t){var f;if(!t)return;const e=(f=t.getAttribute("xlink:href"))==null?void 0:f.substring(1);if(!e)return;const r=t.id+"-boundingBox";let a=this.getElementById(r);if(a)return a;let u=this.getElementById(e);if(!u)return;const l=this.getElementBoundingBox(t.id);if(!l||l.isEmpty())return;a=document.createElementNS("http://www.w3.org/2000/svg","rect"),a.setAttribute("id",r),a.setAttribute("class","selected"),a.setAttribute("x",l.min.x.toString()),a.setAttribute("y",l.min.y.toString());const c=new L;return l.getSize(c),a.setAttribute("width",c.x.toString()),a.setAttribute("height",c.y.toString()),u.getAttribute("transform")&&a.setAttribute("transform",u.getAttribute("transform")||""),u.getAttribute("style")&&a.setAttribute("style",u.getAttribute("style")||""),this.elementsMap[a.id]=a,a}fontZoom(t,e=1){const r=this.getElementById(t);if(!r)return;let a=r.getAttribute("font-size");a||(a="12");const u=/(\d+)([a-zA-Z%]+)/.exec(a),l=u&&(u==null?void 0:u.length)>2?u[2]:"";let c=Math.round(parseFloat(a)*e*100)/100;r.setAttribute("font-size",c+l)}}class om{name="SvgPainter";params;chef;constructor(t={},e){this.params=t,this.chef=e}drawSocialDistanceCircles(t,e="http://www.w3.org/2000/svg"){var T,I,S;if(!t)return;const r=zd(t),a=Ah(t),u=2*r,l=(I=(T=this.params.socialDistance)==null?void 0:T.colors)!=null&&I.length?(S=this.params.socialDistance)==null?void 0:S.colors:[oe.green,oe.red],c=this.getRadius(a),f=t.querySelector(`#${fa}`),g=f==null?void 0:f.querySelectorAll("path");if(!f||!(g!=null&&g.length))return;let x,E;const b=new Array;for(let D=0,k=(g==null?void 0:g.length)||0;D<k;D++){if(x=g[D],E=x.getAttribute("id"),!E)continue;const V=this.chef.getElementBoundingBox(E);if(!V)continue;const W=new L;V.getCenter(W),b.push({id:E,cp:W})}for(let D=0,k=b.length;D<k;D++){b[D].color=l[0];for(let V=0,W=k;V<W;V++)b[D]!==b[V]&&L.getDistance(b[D].cp,b[V].cp)<c*2&&(b[D].color=l[1])}for(let D=0,k=b.length;D<k;D++){let V=this.createCircle(b[D],c,u,e);f.appendChild(V)}}clearSocialDistanceCircles(t){if(!t)return;const e=t.querySelector(`#${fa}`),r=e==null?void 0:e.querySelectorAll("circle");if(!(!e||!(r!=null&&r.length)))for(let a=0,u=(r==null?void 0:r.length)||0;a<u;a++){const l=r[a].getAttribute("id");l&&(l==null?void 0:l.indexOf("_circle"))>-1&&e.removeChild(r[a])}}getRadius(t){var r,a,u;let e=((a=(r=this.params)==null?void 0:r.socialDistance)==null?void 0:a.radius)||3;return((u=this.params)==null?void 0:u.displayUnits)==="imperial"?t==="Metres"||t==="m"?e/=3.28084:t==="cm"?e=e/3.28084*100:t==="mm"?e=e/3.28084*1e3:(t==="INCH"||t==="inches")&&(e*=12):t==="INCH"||t==="inches"?e=e*3.28084*12:t==="cm"?e*=100:t==="mm"&&(e*=1e3),e}createCircle(t,e,r,a){const u=document.createElementNS(a,"circle");return u.setAttributeNS(null,"id",t.id+"_circle"),u.setAttributeNS(null,"cx",t.cp.x),u.setAttributeNS(null,"cy",t.cp.y),u.setAttributeNS(null,"r",String(e)),u.setAttributeNS(null,"style",`pointer-events:none;fill-opacity:0.1;stroke:${t.color};stroke-width:${r}px;`),u}}class Dc extends l0{isSvgScene=!0;name="SvgScene";dynamically=!0;params;socialDistanceEnable=!1;container;svg;svgStr="";svgRoot;viewBox=new Tt;chef;defaultLayers=[];skeletonLayers=[];currentLayers=[];assetType;assetElementsMap={};legend=[];selectedList=[];painter;clickSvgElementHandler=this.handleClickSvgElement.bind(this);constructor(t={}){super(),this.params=t,this.assetType=t.assetType||"rm",this.params.socialDistanceEnable&&(this.socialDistanceEnable=!0),this.container=this.params.containerId?document.getElementById(this.params.containerId):gt.window.document.getElementsByTagName("body")[0],this.chef=new um,this.painter=new om(t,this.chef)}get isMounted(){var t;return((t=this.container.querySelectorAll("svg"))==null?void 0:t.length)>0}destroy(){var t;super.destroy(),this.unmount(),(t=this.camera)==null||t.destroy()}mount(){this.svg&&(this.container.contains(this.svg)||this.container.appendChild(this.svg),this.chef.computeBoundingBoxMap())}unmount(){this.svg&&this.svg.parentNode&&this.container.contains(this.svg)&&this.container.removeChild(this.svg)}computeBoundingBox(){return this.boundingBox.makeEmpty(),!this.chef||!this.svg?this.boundingBox:(this.chef.computeBoundingBoxMap(),this.boundingBox.copy(this.chef.boundingBox),console.warn("svgScene.computeBoundingBox: ",this.chef.boundingBox.toString()),this.boundingBox)}async load(t){return new ju().loadAsync(t)}bind(t){if(this.svgStr=t,this.svg=new DOMParser().parseFromString(t,"image/svg+xml").documentElement,console.warn("bind: ",this.name),!this.svg)throw new Error("svg load failed");let e=this.svg.getAttribute("viewBox");e&&(jd(e,this.viewBox),this.chef.bindSvg(this.svg),this.svgRoot=wh(this.svg),this.svg.setAttribute("viewBox",`0 0 ${this.params.width} ${this.params.height}`),this.appendStyleSelected(),console.log(this.name,"viewBox -> ",e,this.viewBox.toString()),this.setAssetElementsMap(this.assetType,this.assetElementsMap))}appendStyleSelected(){var r;let t=(r=this.svg)==null?void 0:r.querySelector("style");if(!t)return;let e=document.createTextNode(`.selected { stroke: ${this.params.selectedStroke}; fill: ${this.params.selectedFill}; }`);t.appendChild(e)}getLayers(t=2){return this.svg?this.chef.getLayers(t):[]}setDefaultLayers(t){t!=null&&t.length&&(this.defaultLayers=t)}setSkeletonLayers(t){t!=null&&t.length&&(this.skeletonLayers=t)}setCurrentLayers(t){t!=null&&t.length&&(this.currentLayers=t)}showDefaultLayers(t,e=!1){this.setDefaultLayers(t),this.chef.updateLayersVisibility(t,e)}updateLayersVisibility(t,e=!1){this.chef.updateLayersVisibility(t,e)}setAssetType(t,e){this.assetElementsMap={},this.assetType=t,this.setAssetElementsMap(this.assetType,this.assetElementsMap),this.updateLayersVisibility(this.defaultLayers,!0),this.chef.updateVisibilityByAssetTypes(t,!0,e)}isCurrentAssetType(t){return this.assetElementsMap.hasOwnProperty(t)}setAssetElementsMap(t,e={}){const r=nm(t),a=this.chef.getElementById(r);return a&&this.chef.getElementsMap(a,e),e}getAssetIdsByType(t){if(t===this.assetType&&this.assetElementsMap)return ct.keys(this.assetElementsMap);const e=this.setAssetElementsMap(t);return ct.keys(e)}clearFillOrStroke(t="fill"){const e=ct.keys(this.assetElementsMap);let r;for(let a=0,u=e.length;a<u;a++)r=this.assetElementsMap[e[a]],!(!r||!r.hasAttribute(t))&&(r.removeAttribute(t),t==="stroke"&&r.removeAttribute("stroke-width"));this.clearLegendBy(t)}clearFillOrStrokeByIds(t,e="fill"){const r=ct.keys(this.assetElementsMap);let a;for(let u=0,l=r.length;u<l;u++)t!=null&&t.length&&!t.includes(r[u])||(a=this.assetElementsMap[r[u]],!(!a||!a.hasAttribute(e))&&(a.removeAttribute(e),e==="stroke"&&a.removeAttribute("stroke-width")));this.clearLegendBy(e)}setFillOrStrokeByIds(t,e,r="fill"){if(!this.assetElementsMap)return;const a=ct.keys(this.assetElementsMap);let u;for(let l=0,c=a.length;l<c;l++)t.includes(a[l])&&(u=this.assetElementsMap[a[l]],u&&(u.setAttribute(r,e),r==="stroke"&&u.setAttribute("stroke-width","7"),this.addLegend(r,e,a[l])))}addLegend(t,e,r){let a=this.legend.find(u=>u.color===e);a||(a={type:t,color:e,ids:[]},this.legend.push(a)),a.ids.push(r)}clearLegendBy(t){var e;t||(this.legend.length=0);for(let r=(e=this.legend)==null?void 0:e.length;r>=0;r--)this.legend[r].type===t&&this.legend.splice(r,r)}getLegend(){return this.legend}showSkeleton(){var t;(t=this.skeletonLayers)!=null&&t.length&&(this.chef.updateLayersVisibility(this.defaultLayers,!1),this.chef.updateLayersVisibility(this.skeletonLayers,!0))}hideSkeleton(){var t;(t=this.skeletonLayers)!=null&&t.length&&(this.chef.updateLayersVisibility(this.skeletonLayers,!1),this.chef.updateLayersVisibility(this.defaultLayers,!0))}setAssetLabel(t,e){const r=this.assetElementsMap[t];if(!r||!r.hasAttribute("aid"))return;const a=r.getAttribute("aid");if(!a)return;const l=this.getAssetLabelsMap(this.assetType)[a];l&&this.chef.setTextInChildren2(l,e)}getAssetLabelsMap(t,e={}){if(!t)return e;let r=this.chef.getElementById(sm(t));return r||(r=this.chef.getElementById(t+"txt-label")),r&&this.chef.getElementsMap(r,e),e}clearAssetLabels(t){if(!t)return;const e=this.getAssetLabelsMap(t),r=ct.keys(e);if(r!=null&&r.length)for(let a=0,u=r.length;a<u;a++){const l=e[r[a]];this.chef.setTextInChildren2(l,"")}}bindAssetsEvents(t){var a;const e=(a=this.svg)==null?void 0:a.querySelector("#"+t);if(!e)return;e.querySelectorAll("[id]").forEach(u=>{u instanceof SVGElement&&u.addEventListener("click",this.clickSvgElementHandler)})}handleClickSvgElement(t){var e;typeof t.preventDefault=="function"&&t.preventDefault(),console.warn("svgScene.handleClickSvgElement: ",(e=t==null?void 0:t.target)==null?void 0:e.id,t==null?void 0:t.target),this.dispatchEvent({type:"click",data:t})}socialDistanceEnableChanged(t){this.socialDistanceEnable=!!t,t?this.painter.drawSocialDistanceCircles(this.svg):this.painter.clearSocialDistanceCircles(this.svg)}clearSelected(){var t,e;if((t=this.selectedList)!=null&&t.length)for(let r=((e=this.selectedList)==null?void 0:e.length)-1;r>=0;r--){let a=this.selectedList[r];this.selectedList.splice(r,1),this.chef.setElementState2selected(a,!1)}}clearSelectedById(t){var r,a;let e=(r=this.selectedList)==null?void 0:r.findIndex(u=>u.getAttribute("id")===t);e>-1&&(this.chef.setElementState2selected(this.selectedList[e],!1),(a=this.selectedList)==null||a.splice(e,1))}selectByIds(t,e=!1){Array.isArray(t)||(t=[t]),e||this.clearSelected();const r=ct.uniq(ct.map(this.selectedList,a=>a.getAttribute("id")||""));for(let a=t.length-1;a>=0;a--)r.includes(t[a])?(this.clearSelectedById(t[a]),t.splice(a,1)):Object.hasOwnProperty.bind(this,t[a])&&this.selectedList.push(this.assetElementsMap[t[a]]);this.selectedList.forEach(a=>{this.chef.setElementState2selected(a,!0)})}getSelectedBoundingBox(){var e;const t=new Tt;return(e=this.selectedList)!=null&&e.length?(this.selectedList.forEach(r=>{const a=this.chef.boundingBoxMap[r.id];a&&t.expandByBox(a)}),t):t.copy(this.boundingBox)}getElementsByBox(t){const e=[],r=Object.keys(this.chef.boundingBoxMap);for(let a=0,u=r.length;a<u;a++)if(this.assetElementsMap.hasOwnProperty(r[a])&&!(r[a].indexOf("-assets")>-1)&&t.intersectsBox(this.chef.boundingBoxMap[r[a]])){const l=this.assetElementsMap[r[a]];l&&e.push(l)}return e}onBeforeRender(){}fullscreen(t=1e3,e=!1){}update(){}}class lm extends Dc{name="SvgLoadingScene";constructor(t){super(t),this.bind(`<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
39
+ `,mc=n=>48<=n.charCodeAt(0)&&n.charCodeAt(0)<=57;class _2 extends gc{curNumber="";curCommandType=-1;curCommandRelative=!1;canParseCommandOrComma=!0;curNumberHasExp=!1;curNumberHasExpDigits=!1;curNumberHasDecimal=!1;curArgs=[];constructor(){super()}finish(t=[]){if(this.parse(" ",t),this.curArgs.length!==0||!this.canParseCommandOrComma)throw new SyntaxError("Unterminated command at the path end.");return t}parse(t,e=[]){const r=a=>{e.push(a),this.curArgs.length=0,this.canParseCommandOrComma=!0};for(let a=0;a<t.length;a++){const u=t[a],l=this.curCommandType===P.ARC&&(this.curArgs.length===3||this.curArgs.length===4)&&this.curNumber.length===1&&(this.curNumber==="0"||this.curNumber==="1"),c=mc(u)&&(this.curNumber==="0"&&u==="0"||l);if(mc(u)&&!c){this.curNumber+=u,this.curNumberHasExpDigits=this.curNumberHasExp;continue}if(u==="e"||u==="E"){this.curNumber+=u,this.curNumberHasExp=!0;continue}if((u==="-"||u==="+")&&this.curNumberHasExp&&!this.curNumberHasExpDigits){this.curNumber+=u;continue}if(u==="."&&!this.curNumberHasExp&&!this.curNumberHasDecimal&&!l){this.curNumber+=u,this.curNumberHasDecimal=!0;continue}if(this.curNumber&&this.curCommandType!==-1){const f=Number(this.curNumber);if(isNaN(f))throw new SyntaxError(`Invalid number ending at ${a}`);if(this.curCommandType===P.ARC){if(this.curArgs.length===0||this.curArgs.length===1){if(0>f)throw new SyntaxError(`Expected positive number, got "${f}" at index "${a}"`)}else if((this.curArgs.length===3||this.curArgs.length===4)&&this.curNumber!=="0"&&this.curNumber!=="1")throw new SyntaxError(`Expected a flag, got "${this.curNumber}" at index "${a}"`)}this.curArgs.push(f),this.curArgs.length===C2[this.curCommandType]&&(P.HORIZ_LINE_TO===this.curCommandType?r({type:P.HORIZ_LINE_TO,relative:this.curCommandRelative,x:f}):P.VERT_LINE_TO===this.curCommandType?r({type:P.VERT_LINE_TO,relative:this.curCommandRelative,y:f}):this.curCommandType===P.MOVE_TO||this.curCommandType===P.LINE_TO||this.curCommandType===P.SMOOTH_QUAD_TO?(r({type:this.curCommandType,relative:this.curCommandRelative,x:this.curArgs[0],y:this.curArgs[1]}),P.MOVE_TO===this.curCommandType&&(this.curCommandType=P.LINE_TO)):this.curCommandType===P.CURVE_TO?r({type:P.CURVE_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x2:this.curArgs[2],y2:this.curArgs[3],x:this.curArgs[4],y:this.curArgs[5]}):this.curCommandType===P.SMOOTH_CURVE_TO?r({type:P.SMOOTH_CURVE_TO,relative:this.curCommandRelative,x2:this.curArgs[0],y2:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===P.QUAD_TO?r({type:P.QUAD_TO,relative:this.curCommandRelative,x1:this.curArgs[0],y1:this.curArgs[1],x:this.curArgs[2],y:this.curArgs[3]}):this.curCommandType===P.ARC&&r({type:P.ARC,relative:this.curCommandRelative,rX:this.curArgs[0],rY:this.curArgs[1],xRot:this.curArgs[2],lArcFlag:this.curArgs[3],sweepFlag:this.curArgs[4],x:this.curArgs[5],y:this.curArgs[6]})),this.curNumber="",this.curNumberHasExpDigits=!1,this.curNumberHasExp=!1,this.curNumberHasDecimal=!1,this.canParseCommandOrComma=!0}if(!T2(u)){if(u===","&&this.canParseCommandOrComma){this.canParseCommandOrComma=!1;continue}if(u==="+"||u==="-"||u==="."){this.curNumber=u,this.curNumberHasDecimal=u===".";continue}if(c){this.curNumber=u,this.curNumberHasDecimal=!1;continue}if(this.curArgs.length!==0)throw new SyntaxError(`Unterminated command at index ${a}.`);if(!this.canParseCommandOrComma)throw new SyntaxError(`Unexpected character "${u}" at index ${a}. Command cannot follow comma`);if(this.canParseCommandOrComma=!1,u==="z"||u==="Z"){e.push({type:P.CLOSE_PATH}),this.canParseCommandOrComma=!0,this.curCommandType=-1;continue}else if(u==="h"||u==="H")this.curCommandType=P.HORIZ_LINE_TO,this.curCommandRelative=u==="h";else if(u==="v"||u==="V")this.curCommandType=P.VERT_LINE_TO,this.curCommandRelative=u==="v";else if(u==="m"||u==="M")this.curCommandType=P.MOVE_TO,this.curCommandRelative=u==="m";else if(u==="l"||u==="L")this.curCommandType=P.LINE_TO,this.curCommandRelative=u==="l";else if(u==="c"||u==="C")this.curCommandType=P.CURVE_TO,this.curCommandRelative=u==="c";else if(u==="s"||u==="S")this.curCommandType=P.SMOOTH_CURVE_TO,this.curCommandRelative=u==="s";else if(u==="q"||u==="Q")this.curCommandType=P.QUAD_TO,this.curCommandRelative=u==="q";else if(u==="t"||u==="T")this.curCommandType=P.SMOOTH_QUAD_TO,this.curCommandRelative=u==="t";else if(u==="a"||u==="A")this.curCommandType=P.ARC,this.curCommandRelative=u==="a";else throw new SyntaxError(`Unexpected character "${u}" at index ${a}.`)}}return e}transform(t){return Object.create(this,{parse:{value(r,a=[]){const u=Object.getPrototypeOf(this).parse.call(this,r);for(const l of u){const c=t(l);Array.isArray(c)?a.push(...c):a.push(c)}return a}}})}}class P extends gc{commands;constructor(t){super(),typeof t=="string"?this.commands=P.parse(t):this.commands=t}encode(){return P.encode(this.commands)}getBounds(){const t=Xt.CALCULATE_BOUNDS();return this.transform(t),t}transform(t){const e=[];for(const r of this.commands){const a=t(r);Array.isArray(a)?e.push(...a):e.push(a)}return this.commands=e,this}static encode(t){return u2(t)}static parse(t){const e=new _2,r=[];return e.parse(t,r),e.finish(r),r}static CLOSE_PATH=1;static MOVE_TO=2;static HORIZ_LINE_TO=4;static VERT_LINE_TO=8;static LINE_TO=16;static CURVE_TO=32;static SMOOTH_CURVE_TO=64;static QUAD_TO=128;static SMOOTH_QUAD_TO=256;static ARC=512;static LINE_COMMANDS=P.LINE_TO|P.HORIZ_LINE_TO|P.VERT_LINE_TO;static DRAWING_COMMANDS=P.HORIZ_LINE_TO|P.VERT_LINE_TO|P.LINE_TO|P.CURVE_TO|P.SMOOTH_CURVE_TO|P.QUAD_TO|P.SMOOTH_QUAD_TO|P.ARC}const C2={[P.MOVE_TO]:2,[P.LINE_TO]:2,[P.HORIZ_LINE_TO]:1,[P.VERT_LINE_TO]:1,[P.CLOSE_PATH]:0,[P.QUAD_TO]:4,[P.SMOOTH_QUAD_TO]:2,[P.CURVE_TO]:6,[P.SMOOTH_CURVE_TO]:4,[P.ARC]:7},_r=new L,an=new L;class S2 extends ve{type="path";pathData;paths=[];_i=-1;_command;_previousCommand;_start=new L;_control=new L;_current=new L;_ps=[];_angles=[];constructor(t,e){super(t,e),this.initPaths()}initPaths(){var r,a;let t=this.getAttribute("d").toString().replace(/([+\-.])\s+/gm,"$1").replace(/[^MmZzLlHhVvCcSsQqTtAae\d\s.,+-].*/g,"");if(this.pathData=new P(t),!((a=(r=this.pathData)==null?void 0:r.commands)!=null&&a.length))return;this._reset();const e=new di;for(;!this._isEnd();){const u=this._next();switch(u.type){case P.MOVE_TO:this.moveTo(e);break;case P.LINE_TO:this.lineTo(e);break;case P.HORIZ_LINE_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.VERT_LINE_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.CURVE_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.SMOOTH_CURVE_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.QUAD_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.SMOOTH_QUAD_TO:console.error(`path ${u.type} implemented not yet.`);break;case P.ARC:this.arc(e);break;case P.CLOSE_PATH:this.closePath(e);break;default:console.error(`path ${u} implemented not yet.`);break}}this.paths.push(e)}moveTo(t){return _r.copy(this._getAsCurrentPoint()),this._start.copy(this._current),t.moveTo(_r.x,_r.y),this}lineTo(t){return an.copy(this._getAsCurrentPoint()),t.lineTo(an.x,an.y),this}arc(t){_r.copy(this._current),an.copy(this._getAsCurrentPoint());const e=_r.x,r=_r.y,a=an.x,u=an.y,l=this._command.lArcFlag,c=this._command.sweepFlag,f=this._command.rX,g=this._command.rY,x=this._command.xRot;let E=D2(e,r,a,u,l,c,f,g,x),b=E[2]>E[3]?E[2]:E[3];return t.arc(E[0],E[1],b,E[4],E[4]+E[5],!!(E[7]-1)),this}closePath(t){return this._current.copy(this._start),t.closePath(),this}_reset(){this._i=-1,this._command=void 0,this._previousCommand=void 0,this._start.set(0,0),this._control.set(0,0),this._current.set(0,0),this._ps.length=0,this._angles.length=0}_isEnd(){var t;return this._i>=(((t=this.pathData.commands)==null?void 0:t.length)||0)-1}_next(){const t=this.pathData.commands[++this._i];return this._previousCommand=this._command,this._command=t,this._command}_getAsCurrentPoint(t,e){return _r.copy(this._current),this._current.copy(this._getPoint(t,e)),this._current}_getPoint(t="x",e="y"){return this._makeAbsolute(new L(this._command[t],this._command[e]))}_makeAbsolute(t){return this._command.relative?t.add(this._current):t}_getAsControlPoint(t,e){return this._control.copy(this._getPoint(t,e)),this._control}_getReflectedControlPoint(){var e;const t=(e=this._previousCommand)==null?void 0:e.type;return t!==P.CURVE_TO&&t!==P.SMOOTH_CURVE_TO&&t!==P.QUAD_TO&&t!==P.SMOOTH_QUAD_TO?this._current:(this._current.set(this._command.cx,this._command.cy),this._control.set(this._command.ox,this._command.oy),new L(2*this._current.x-this._control.x,2*this._current.y-this._control.y))}}function D2(n,t,e,r,a,u,l,c,f){let g=f*(Math.PI/180),x=Math.cos(g)*(n-e)/2+Math.sin(g)*(t-r)/2,E=-1*Math.sin(g)*(n-e)/2+Math.cos(g)*(t-r)/2,b=x*x/(l*l)+E*E/(c*c);b>1&&(l*=Math.sqrt(b),c*=Math.sqrt(b));let T=Math.sqrt((l*l*(c*c)-l*l*(E*E)-c*c*(x*x))/(l*l*(E*E)+c*c*(x*x)));a===u&&(T*=-1),isNaN(T)&&(T=0);let I=T*l*E/c,S=T*-c*x/l,D=(n+e)/2+Math.cos(g)*I-Math.sin(g)*S,k=(t+r)/2+Math.sin(g)*I+Math.cos(g)*S,V=function(z){return Math.sqrt(z[0]*z[0]+z[1]*z[1])},W=function(z,J){return(z[0]*J[0]+z[1]*J[1])/(V(z)*V(J))},X=function(z,J){return(z[0]*J[1]<z[1]*J[0]?-1:1)*Math.acos(W(z,J))},$=X([1,0],[(x-I)/l,(E-S)/c]),K=[(x-I)/l,(E-S)/c],tt=[(-1*x-I)/l,(-1*E-S)/c],Z=X(K,tt);return W(K,tt)<=-1&&(Z=Math.PI),W(K,tt)>=1&&(Z=0),u===0&&Z>0&&(Z=Z-2*Math.PI),u===1&&Z<0&&(Z=Z+2*Math.PI),[D,k,l,c,$,Z,g,u]}class N2 extends ve{type="g";constructor(t,e){super(t,e)}}class M2 extends ve{type="use";symbolId;cachedElement;constructor(t,e){super(t,e),this.symbolId=ct.replace(this.getHrefAttribute().toString()||"","#",""),this.cachedElement||(this.cachedElement=this.getHrefAttribute().getDefinition())}}class O2 extends ve{type="circle";paths=[];constructor(t,e){super(t,e),this.initPath()}initPath(){this.paths.length=0;const t=new di,e=this.getAttribute("cx").getPixels("x"),r=this.getAttribute("cy").getPixels("y"),a=this.getAttribute("r").getPixels();a>0&&t.arc(e,r,a,0,Math.PI*2,!1),this.paths.push(t)}}class B2 extends ve{type="text";text;fontSize;constructor(t,e){super(t,e),this.text=this.getTextFromNode()}getTextFromNode(t){const e=t||this.node,r=Array.from(e.parentNode.childNodes),a=r.indexOf(e),u=r.length-1;let l=(e.textContent||"").replace(/(?!\u3000)\s+/gm," ");return a===0&&(l=ct.trimStart(l)),a===u&&(l=ct.trimEnd(l)),l}getFontSize(){var e;const t=(e=this.parent)==null?void 0:e.getStyle("font-size").getPixels(!0);return t?this.text==="Mechanical Room"?20:t:12}}const I2={view:s2,defs:r2,style:n2,symbol:a2,path:S2,g:N2,use:M2,circle:O2,text:B2,unknown:sc};class P2 extends ve{type="svg";definitions={};rootEmSize=yc;emSize=yc;constructor(t){super(null,t),this.definitions={}}createElement(t){const e=t.nodeName.replace(/^[^:]+:/,""),r=I2[e];return r?new r(this,t):new sc(this,t)}}const yc=16;class ju extends Mh{parsedData={};data={};constructor(t){super(t)}static parse(t,e){const r=[];return t&&(Y2(t,r),j2(r)),r}load(t,e,r,a){const u=this,l=new p0(u.manager);l.setPath(u.path),l.setRequestHeader(u.requestHeader),l.setWithCredentials(u.withCredentials),l.load(t,function(c){try{e&&e(c)}catch(f){a?a(f):console.error(f),u.manager.itemError(t)}},r,a)}parseFile(t){if(!t)return;const e=new Wh.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",parseAttributeValue:!0});return this.parsedData=e.parse(t),this.parsedData}static trans2Ro(t,e=!0){let a=new Wh.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",parseAttributeValue:!0}).parse(t),u=L2(a);return as(u,"svg",void 0,a.svg,e)}static getSvgElement(t){let e=new gt.window.DOMParser().parseFromString(t,"image/svg+xml");return new P2(e.documentElement)}selectById(t){this.data}}function L2(n){var e,r,a,u,l,c,f,g,x,E;let t={};return(e=n.svg)!=null&&e.view&&(t.view=R2((r=n.svg)==null?void 0:r.view)),(a=n.svg)!=null&&a.viewBox&&(t.viewBox=new Tt().setFromMinMaxString((u=n.svg)==null?void 0:u.viewBox)),(l=n.svg)!=null&&l.version&&(t.version=(c=n.svg)==null?void 0:c.version),(f=n.svg)!=null&&f.archibusversion&&(t.userData={version:(g=n.svg)==null?void 0:g.archibusversion}),(x=n.svg)!=null&&x.defs&&(t.defs=F2((E=n.svg)==null?void 0:E.defs)),t}function R2(n){return{id:n.id,units:n.units,viewBox:new Tt().setFromMinMaxString(n.viewBox)}}function F2(n){let t={};return t.style=U2(n==null?void 0:n.style),t.symbol=k2(n==null?void 0:n.symbol),t}const Cr={};function U2(n){const t=/\.([^\s{]+)\s*\{\s*([^}]+)\s*\}/g;let e;for(;(e=t.exec(n))!==null;){const r=e[1],a=e[2];Cr[r]={};const u=/([^:]+):\s*([^;]+);?/g;let l;for(;(l=u.exec(a))!==null;){const c=ct.camelCase(l[1].trim()),f=l[2].trim();Cr[r][c]=f}}return Cr}function k2(n){let t={};if(!(n!=null&&n.length))return t;for(let e=0,r=n.length;e<r;e++){let a=n[e];a.id&&(t[a.id]=as({defs:{symbol:t}},"symbol",void 0,n[e],!0))}return t}const ss=["use","path","circle","text"];function as(n,t,e,r,a){let u;if(typeof r!="object")return u;if(Array.isArray(r)){u=new Hu({name:e.id,userData:{id:e.id}});for(let l=0,c=r.length;l<c;l++){let f=as(n,t,e,r[l],a);f&&u.add(f)}return t==="text"&&u.children.length===1?(u=u.children[0],u.updateMatrix(),u):(u.updateMatrix(),u)}if(!t||t==="svg"||t==="g"||t==="symbol"){if(u=new Hu({name:r.id,userData:{id:r.id,tag:t}}),Ec(r,a,u),r.style=vc(n,e,r),r.g){let l=as(n,"g",r,r.g,a);l&&u.add(l)}for(let l=0,c=ss.length;l<c;l++)if(r[ss[l]]){let f=as(n,ss[l],r,r[ss[l]],a);f&&u.add(f)}return u}if(ss.includes(t)){r.style=vc(n,e,r);const l=W2(n,t,r);return l?(Ec(r,a,l),l):void 0}return u}function vc(n,t,e){let r={};return t&&(Cr[t==null?void 0:t.class]&&ct.merge(r,Cr[t.class]),xc(n,t,r)),Cr[e.class]&&ct.merge(r,Cr[e.class]),xc(n,e,r),r}function xc(n,t,e){t.style&&ct.merge(e,t.style);let r=parseFloat(ct.get(t,"stroke-width")||"")||0;return r>0&&(e.strokeWidth=H2(n,r)),e}const q2=new Tt,ha=new L;function H2(n,t){var r,a,u;if(!t)return t;if(!((r=n==null?void 0:n.view)!=null&&r.viewBox))return 1;q2.copy((a=n==null?void 0:n.view)==null?void 0:a.viewBox).getSize(ha);let e=Math.round(t/100*((ha==null?void 0:ha.length())||1));return((u=n==null?void 0:n.view)==null?void 0:u.units)==="inches"&&(e=Math.max(Math.ceil(e/25),1)),e}function W2(n,t,e){var g,x,E,b;let r,a=e.fill||((g=e.style)==null?void 0:g.fill)||void 0,u=e.fillOpacity||((x=e.style)==null?void 0:x.fillOpacity)||void 0;a&&u&&(a=new le(a).setA(u).getStyle());let l=e.strokeWidth||((E=e.style)==null?void 0:E.strokeWidth)||1,c=e.stroke||((b=e.style)==null?void 0:b.stroke)||oe.black;const f=[{name:"path",fill:a,lineWidth:l,stroke:c}];if(t==="path"){let T=Ac(e.d,!0);if(!Array.isArray(T))return f[0].path=T,bc(t,e,f);r=new Hu({name:e.id,userData:{id:e.id,tag:t}});for(let I=0,S=T.length;I<S;I++){let D=ct.cloneDeep(f);D[0].path=T[I];const k=bc(t,e,D);r.add(k),k.updateMatrix()}return r}return t==="use"?V2(n,t,e):t==="text"?$2(t,e):t==="circle"?G2(t,e,f):r}function Ec(n,t,e){if((n.selectable===!0||n.selectable==="true")&&e.setSelectable(!0),n.x!==void 0&&!isNaN(Number(n.x))&&(e.position.x=n.x),n.y!==void 0&&!isNaN(Number(n.y))&&(e.position.y=n.y*(t?-1:1)),n.transform){let r=z2(n.transform);r.tx&&(e.position.x=r.tx),r.ty&&(e.position.y=r.ty*(t?-1:1)),r.rx&&(e.position.x=r.rx),r.ry&&(e.position.y=r.ry*(t?-1:1)),r.ra&&(e.rotation.x=Qs(r.ra*(t?-1:1))),r.sx&&(e.scaled.x=r.sx),r.sy&&(e.scaled.y=r.sy)}return e.updateMatrix(),e}function z2(n){const t={},e=/(\w+)\(([^)]+)\)/g;let r;for(;(r=e.exec(n))!==null;){const[a,u,l]=r,c=l.split(",").map(Number);switch(u){case"scale":t.sx=c[0],t.sy=c.length>1?c[1]:c[0];break;case"translate":isNaN(Number(c[0]))||(t.tx=c[0]),c.length>1&&!isNaN(Number(c[1]))&&(t.ty=c[1]);break;case"rotate":t.ra=c[0],t.rx=c[1],t.ry=c[2];break}}return t}function V2(n,t,e){var u,l;let r,a=ct.get(e,"xlink:href");if(ct.startsWith(a,"#")&&(a=a.substring(1)),(u=n.defs)!=null&&u.symbol&&((l=n.defs)!=null&&l.symbol[a]))return r=n.defs.symbol[a].clone(),ct.merge(r.userData,{id:e.id,tag:t}),r}function bc(n,t,e){return new tc({name:t.id||n,parsedSvg:e,composeNode:!0,userData:{id:t.id,tag:n}})}function $2(n,t){let e=ct.get(t,"#text");if(e)return new e2({text:e,fontSize:20,fill:oe.black,wireframe:!1,flipY:!0,userData:{id:t.id,tag:n}})}function G2(n,t,e){return e[0].cx=t.cx,e[0].cy=t.cy,e[0].r=t.r,_c(e[0]),new tc({name:t.id||n,parsedSvg:e,composeNode:!0,alignCenter:!0,userData:{id:t.id,tag:n}})}const X2=["x","y","lineWidth","width","height","rx","cx","cy","r"];function Y2(n,t=[]){if(!n)throw new Error("input error");const e=n.match(/<(\w+)([^<]+)>/g);if(!e||!e.length)return t;let r="",a=[],u="";for(let l=0,c=e.length;l<c;l++)r=e[l].replace(/[<>]/g,""),a=r.split(" "),!(!a||!a.length)&&(u=a[0],!(u!=="path"&&u!=="clipPath"&&u!=="rect"&&u!=="circle"&&u!=="text"&&u!=="polygon")&&(r.indexOf("class")>=0&&(e[l]=Q2(n,e[l])),J2(e[l],t)));return t}function Z2(n){const t=/<style>([\s\S]*?)<\/style>/,e=n.match(t);if(e&&e.length>1)return e[1]}function K2(n){const t={},e=Z2(n);if(!e)return t;const r=/\.([\w-]+)\s*\{([\s\S]*?)\}/g;let a;for(;(a=r.exec(e))!==null;){const u=a[1],l=a[2];t[u]={};const c=/([\w-]+)\s*:\s*([^;]+)/g;let f;for(;(f=c.exec(l))!==null;){const g=f[1],x=f[2];t[u][g]=x.trim()}}return t}function Q2(n,t){let e=t.match(/class="([^"]+)"/);if(!e)return t;const r=e[0],a=K2(n),u=[];return Object.keys(a).forEach(l=>{Object.keys(a[l]).forEach(c=>{u.push(c+'="'+a[l][c]+'"')})}),!u||!u.length||(t=t.replaceAll(r,u.join(" "))),t}function J2(n,t=[]){const r=n.replace(/[<>]/g,"").split(" ");if(!r||!r.length)return t;const a={name:""};let u="",l=!1;for(let c=0,f=r.length;c<f;c++)if(l=r[c].indexOf("=")>=0,!c)a.name=r[c];else if(l){const g=r[c].split("=");g[0]==="stroke-width"?g[0]="lineWidth":g[0]==="stroke-linecap"&&(g[0]="strokeLinecap"),a[g[0]]=g[1].replace(/\"/g,""),u=g[0]}else l||(a[u]+=" "+r[c].replace(/\"/g,""));for(const c in a)X2.indexOf(c)>=0&&(a[c]=parseFloat(a[c]));return t.push(a),t}function j2(n=[],t){for(let e=0,r=n.length;e<r;e++)switch(n[e].name){case"path":tm(n[e]);break;case"clipPath":break;case"rect":im(n[e]);break;case"circle":_c(n[e]);break;case"text":break;case"polygon":rm(n[e]);break;default:delete n[e].path;break}return n}const un=["m","M","l","L","v","V","h","H","z","Z","c","C","q","Q","t","T","s","S","a","A"];function tm(n){!n.d||!n.d.length||(n.path=Ac(n.d,!1))}const em=100;function Ac(n,t=!1){n=ct.trim(n),n=n.replace(new RegExp(" ","g"),",").replace(new RegExp("M","g"),"|M");const e=ct.split(n,"|");if(e!=null&&e.length&&e[0]===""&&e.shift(),!t||e.length<=em*2){let l=[];for(let c=0,f=e.length;c<f;c++){let g=e[c];for(let E=0,b=un.length;E<b;E++)g=g.replace(new RegExp(un[E],"g"),"|"+un[E]);let x=g.split("|");x!=null&&x.length&&x[0]===""&&x.shift(),l=l.concat(x)}return wc(l)}let r=[];for(let l=0,c=e.length;l<c;l++){let f=/M\s*(-?\d+(\.\d+)?),\s*(-?\d+(\.\d+)?)/g.exec(e[l]);f&&(f==null?void 0:f.length)>3&&r.push({x:parseFloat(f[1]),y:parseFloat(f[3]),cms:e[l]})}r=ct.sortBy(r,l=>L.getLength({x:l.x,y:l.y}));let a=ct.chunk(r,Math.floor(r.length/10)),u=[];for(let l=0,c=a.length;l<c;l++){let f=[];for(let g=0,x=a[l].length;g<x;g++){let E=a[l][g].cms;for(let T=0,I=un.length;T<I;T++)E=E.replace(new RegExp(un[T],"g"),"|"+un[T]);let b=E.split("|");b!=null&&b.length&&b[0]===""&&b.shift(),f=f.concat(b)}u.push(wc(f))}return u}function wc(n){let t=new di;const e=[];let r=0,a=0;const u=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:e[-+]?\d+)?)/gi;let l,c="";for(let f=0,g=n.length;f<g;f++){let x=n[f],E=x.charAt(0);for(x=x.slice(1),e.length=0;l=u.exec(x);)e.push(l[0]);const b=[];for(let I=0,S=e.length;I<S;I++){if(e[I]==="00"){b.push(0,0);continue}let D=parseFloat(e[I]);isNaN(D)?b.push(0):b.push(D)}let T=[];for(;b.length>0&&!isNaN(b[0]);){let I=r,S=a,D,k,V,W,X,$,K,tt,Z;switch(E){case"M":I=r=b.shift()||0,S=a=b.shift()||0,t.moveTo(r,a);break;case"m":let z=b.shift()||0,J=b.shift()||0;r+=z,a+=J,c==="z"&&(r=I+z,a=S+J),t.moveTo(r,a);break;case"l":r+=b.shift()||0,a+=b.shift()||0,t.lineTo(r,a);break;case"L":r=b.shift()||0,a=b.shift()||0,t.lineTo(r,a);break;case"h":r+=b.shift()||0,t.lineTo(r,a);break;case"H":r=b.shift()||0,t.lineTo(r,a);break;case"v":a+=b.shift()||0,t.lineTo(r,a);break;case"V":a=b.shift()||0,t.lineTo(r,a);break;case"C":T.length=0,T.push(b.shift()||0,b.shift()||0,b.shift()||0,b.shift()||0),r=b.shift()||0,a=b.shift()||0,t.bezierCurveTo(T[0],T[1],T[2],T[3],r,a);break;case"c":T.length=0,T.push(r+(b.shift()||0),a+(b.shift()||0),r+(b.shift()||0),a+(b.shift()||0)),r+=b.shift()||0,a+=b.shift()||0,t.bezierCurveTo(T[0],T[1],T[2],T[3],r,a);break;case"S":D=r,k=a,c==="C"&&(D=r+(r-T[2]),k=a+(a-T[3])),T.length=0,T.push(D,k,b.shift()||0,b.shift()||0),r=b.shift()||0,a=b.shift()||0,t.bezierCurveTo(T[0],T[1],T[2],T[3],r,a);break;case"s":D=r,k=a,c==="C"&&(D=r+(r-T[2]),k=a+(a-T[3])),T.length=0,T.push(D,k,r+(b.shift()||0),a+(b.shift()||0)),r+=b.shift()||0,a+=b.shift()||0,t.bezierCurveTo(T[0],T[1],T[2],T[3],r,a);break;case"Q":T.length=0,T.push(b.shift()||0,b.shift()||0),r=b.shift()||0,a=b.shift()||0,t.quadraticCurveTo(T[0],T[1],r,a);break;case"q":T.length=0,T.push(r+(b.shift()||0),a+(b.shift()||0)),r+=b.shift()||0,a+=b.shift()||0,t.quadraticCurveTo(T[0],T[1],r,a);break;case"T":D=r,k=a,c==="Q"&&(D=r+(r-T[0]),k=a+(a-T[1])),r=b.shift()||0,a=b.shift()||0,t.quadraticCurveTo(D,k,r,a);break;case"t":D=r,k=a,c==="Q"&&(D=r+(r-T[0]),k=a+(a-T[1])),r+=b.shift()||0,a+=b.shift()||0,t.quadraticCurveTo(D,k,r,a);break;case"A":V=b.shift()||0,W=b.shift()||0,X=b.shift()||0,$=b.shift()||0,K=b.shift()||0,tt=r,Z=a,r=b.shift()||0,a=b.shift()||0,T=Tc(tt,Z,r,a,$,K,V,W,X),t.arc(T[0],T[1],T[2]>T[3]?T[2]:T[3],T[4],T[4]+T[5],!!(T[7]-1));break;case"a":V=b.shift()||0,W=b.shift()||0,X=b.shift()||0,$=b.shift()||0,K=b.shift()||0,tt=r,Z=a,r+=b.shift()||0,a+=b.shift()||0,T=Tc(tt,Z,r,a,$,K,V,W,X),t.arc(T[0],T[1],T[2]>T[3]?T[2]:T[3],T[4],T[4]+T[5],!!(T[7]-1)),console.log("arc: ",x,tt,Z,r,a,$,K,V,W,X);break;case"z":t.closePath();break;default:b.shift()}}c=E,(E==="z"||E==="Z")&&t.closePath()}return t}function Tc(n,t,e,r,a,u,l,c,f){let g=f*(Math.PI/180),x=Math.cos(g)*(n-e)/2+Math.sin(g)*(t-r)/2,E=-1*Math.sin(g)*(n-e)/2+Math.cos(g)*(t-r)/2,b=x*x/(l*l)+E*E/(c*c);b>1&&(l*=Math.sqrt(b),c*=Math.sqrt(b));let T=Math.sqrt((l*l*(c*c)-l*l*(E*E)-c*c*(x*x))/(l*l*(E*E)+c*c*(x*x)));a===u&&(T*=-1),isNaN(T)&&(T=0);let I=T*l*E/c,S=T*-c*x/l,D=(n+e)/2+Math.cos(g)*I-Math.sin(g)*S,k=(t+r)/2+Math.sin(g)*I+Math.cos(g)*S,V=function(z){return Math.sqrt(z[0]*z[0]+z[1]*z[1])},W=function(z,J){return(z[0]*J[0]+z[1]*J[1])/(V(z)*V(J))},X=function(z,J){return(z[0]*J[1]<z[1]*J[0]?-1:1)*Math.acos(W(z,J))},$=X([1,0],[(x-I)/l,(E-S)/c]),K=[(x-I)/l,(E-S)/c],tt=[(-1*x-I)/l,(-1*E-S)/c],Z=X(K,tt);return W(K,tt)<=-1&&(Z=Math.PI),W(K,tt)>=1&&(Z=0),u===0&&Z>0&&(Z=Z-2*Math.PI),u===1&&Z<0&&(Z=Z+2*Math.PI),[D,k,l,c,$,Z,g,u]}function im(n){n.x===void 0||n.y===void 0||n.width===void 0||n.height===void 0||(n.path=new di,n.path.moveTo(n.x,n.y),n.path.lineTo(n.x+n.width,n.y),n.path.lineTo(n.x+n.width,n.y+n.height),n.path.lineTo(n.x,n.y+n.height),n.path.lineTo(n.x,n.y))}function _c(n){n.cx===void 0||n.cy===void 0||n.r===void 0||(n.path=new di,n.path.arc(n.cx,n.cy,n.r,0,Math.PI*2,!1))}function rm(n){if(n.points===void 0)return;n.path=new di;const t=/([+-]?\d*\.?\d+(?:e[+-]?\d+)?)(?:,|\s)([+-]?\d*\.?\d+(?:e[+-]?\d+)?)/g,e=n.points.match(t);if(e)for(let r=0,a=e.length;r<a;r++){const u=e[r].split(","),l=parseFloat(u[0]),c=parseFloat(u[1]);r?n.path.lineTo(l,c):n.path.moveTo(l,c)}}const ca="ae",Cc="-",fa="rm-assets",Sc="rm-labels";function nm(n){return n+Cc+ia.ASSETS}function sm(n){return n+Cc+ia.LABELS}const am={rm:["su-assets","su-labels","eq-assets","eq-labels","fn-assets","fn-labels"],su:[fa,Sc,"eq-assets","eq-labels","fn-assets","fn-labels"],eq:[fa,Sc,"su-assets","su-labels","fn-assets","fn-labels"]};class um{svg;svgRoot;layers=[];elementsMap={};boundingBoxMap={};boundingBox=new Tt;svgSkeletons=[];data;_exceptTypes=["view"];_exceptIds=["viewer","mirror"];_lvi=0;bindSvg(t){return this.svg=t,this.svgRoot=wh(this.svg),this.layers=this.getLayers(2),this.getElementsMap(this.svg,this.elementsMap),this}getLayers(t){var e;if(!this.svg)throw new Error("please bind svg first");return t===2&&((e=this.layers)!=null&&e.length)?this.layers:(this.layers=this._getSvgLayer(this.svg,t),this.layers)}_getSvgLayer(t,e=0,r=0,a=[]){var c;let u,l=t.id;if(this._exceptTypes.includes(t.tagName)||t.tagName==="defs")return this._lvi--,a;if(e&&this._lvi>e)return a;l&&!this._exceptIds.includes(l)&&(u={id:l,label:l,children:[]},a.push(u)),this._lvi++;for(let f=0,g=t.children.length;f<g;f++)u?this._getSvgLayer(t.children[f],e,this._lvi,u.children):this._getSvgLayer(t.children[f],e,this._lvi,a);return((c=u==null?void 0:u.children)==null?void 0:c.length)===0&&delete u.children,this._lvi=r,a}getElementsMap(t,e={}){return this.traverseSvg(t,r=>{r.id&&(e[r.id]=r)}),e}computeBoundingBoxMap(){return Object.keys(this.boundingBoxMap).length?this.boundingBoxMap:(this.traverseSvg(this.svg,t=>{if(!t.id)return;const e=t.getBoundingClientRect(),r=new Tt(new L(e.left,e.top),new L(e.right,e.bottom));this.boundingBoxMap[t.id]=r,this.boundingBox.expandByBox(r)}),this.boundingBoxMap)}updateLayersVisibility(t,e=!1){if(console.log("updateLayersVisibility: ",t,e,Object.keys(this.elementsMap).length),!this.elementsMap)throw new Error("please bind svg first");this._updateAllLayersVisibility(!e),t!=null&&t.length||(t=["background"]);for(let r=0,a=t.length;r<a;r++){const u=this.getElementById(t[r]);u&&this._updateLayersVisibility(u,e,!0,!0)}}_updateAllLayersVisibility(t=!1){Object.values(this.elementsMap).forEach(e=>{e.tagName==="svg"||e.tagName==="symbol"||!e.getAttribute("id")||(e.style.display=t?"block":"none")})}_updateLayersVisibility(t,e=!1,r=!1,a=!1){var u,l;if(!(!t||t.tagName==="svg"||!t.getAttribute("id"))){if(t.style.display=e?"block":"none",r&&e){let c=t.parentElement;for(;c&&c.tagName!=="svg";)c.style.display=e?"block":"none",c=c.parentElement}if(a&&((u=t.children)==null?void 0:u.length)>0)for(let c=0,f=(l=t.children)==null?void 0:l.length;c<f;c++)this._updateLayersVisibility(t.children[c],e,!1,!0)}}updateVisibilityByAssetType(t,e=!1,r){r||(r=am[t]),this.updateLayersVisibility(r,!e)}updateVisibilityByAssetTypes(t,e=!1,r){if(Array.isArray(t)||(t=[t]),!!(t!=null&&t.length))for(let a=0,u=t.length;a<u;a++)this.updateVisibilityByAssetType(t[a],e,r)}getElementById(t){if(!this.elementsMap)throw new Error("please bind svg first");return this.elementsMap[t]}getElementBoundingBox(t){return this.boundingBoxMap[t]}findSkeletonByPath(t=[]){let e=0,r;const a=Object.keys(this.elementsMap);for(let u=0,l=a.length;u<l;u++){const c=this.elementsMap[a[u]];if(!c)continue;const f=c.getAttribute("d");f&&(f.length<e||(e=f.length,r=c.id?c:c.parent))}return r&&t.push(r),t}setTextInChildren2(t,e){var a;let r;((a=t==null?void 0:t.children)==null?void 0:a.length)<2?(r=qd("text"),r.setAttribute("dy","1em"),t.appendChild(r)):r=t.children[t.children.length-1],r.innerHTML=e}traverseSvg(t,e){var r;if(!this._exceptTypes.includes(t.tagName)&&!(t.tagName!=="svg"&&t.tagName!=="defs"&&!t.id)&&!(t.tagName==="g"&&((r=t.children)==null?void 0:r.length)===0)){this._exceptIds.includes(t.id)||e(t);for(let a=0,u=t.children.length;a<u;a++)this.traverseSvg(t.children[a],e)}}traverseSvgTLayers(t,e){var r;if(Array.isArray(t)){for(let a=0,u=t.length;a<u;a++)this.traverseSvgTLayers(t[a],e);return}if(e(t),!!((r=t.children)!=null&&r.length))for(let a=0,u=t.children.length;a<u;a++)this.traverseSvgTLayers(t.children[a],e)}setElementState2selected(t,e=!1){var a;if(!t)return;if(t.tagName==="use"){const u=this._getSymbolBox(t);if(!u)return;e?(a=t.parentNode)==null||a.insertBefore(u,t):t.parentNode&&t.parentNode.contains(u)&&t.parentNode.removeChild(u);return}let r=t.getAttribute("class");r||(r=""),e?r="selected":r=ct.replace(r,"selected","").trim(),t.setAttribute("class",r)}_getSymbolBox(t){var f;if(!t)return;const e=(f=t.getAttribute("xlink:href"))==null?void 0:f.substring(1);if(!e)return;const r=t.id+"-boundingBox";let a=this.getElementById(r);if(a)return a;let u=this.getElementById(e);if(!u)return;const l=this.getElementBoundingBox(t.id);if(!l||l.isEmpty())return;a=document.createElementNS("http://www.w3.org/2000/svg","rect"),a.setAttribute("id",r),a.setAttribute("class","selected"),a.setAttribute("x",l.min.x.toString()),a.setAttribute("y",l.min.y.toString());const c=new L;return l.getSize(c),a.setAttribute("width",c.x.toString()),a.setAttribute("height",c.y.toString()),u.getAttribute("transform")&&a.setAttribute("transform",u.getAttribute("transform")||""),u.getAttribute("style")&&a.setAttribute("style",u.getAttribute("style")||""),this.elementsMap[a.id]=a,a}fontZoom(t,e=1){const r=this.getElementById(t);if(!r)return;let a=r.getAttribute("font-size");a||(a="12");const u=/(\d+)([a-zA-Z%]+)/.exec(a),l=u&&(u==null?void 0:u.length)>2?u[2]:"";let c=Math.round(parseFloat(a)*e*100)/100;r.setAttribute("font-size",c+l)}}class om{name="SvgPainter";params;chef;constructor(t={},e){this.params=t,this.chef=e}drawSocialDistanceCircles(t,e="http://www.w3.org/2000/svg"){var T,I,S;if(!t)return;const r=zd(t),a=Ah(t),u=2*r,l=(I=(T=this.params.socialDistance)==null?void 0:T.colors)!=null&&I.length?(S=this.params.socialDistance)==null?void 0:S.colors:[oe.green,oe.red],c=this.getRadius(a),f=t.querySelector(`#${fa}`),g=f==null?void 0:f.querySelectorAll("path");if(!f||!(g!=null&&g.length))return;let x,E;const b=new Array;for(let D=0,k=(g==null?void 0:g.length)||0;D<k;D++){if(x=g[D],E=x.getAttribute("id"),!E)continue;const V=this.chef.getElementBoundingBox(E);if(!V)continue;const W=new L;V.getCenter(W),b.push({id:E,cp:W})}for(let D=0,k=b.length;D<k;D++){b[D].color=l[0];for(let V=0,W=k;V<W;V++)b[D]!==b[V]&&L.getDistance(b[D].cp,b[V].cp)<c*2&&(b[D].color=l[1])}for(let D=0,k=b.length;D<k;D++){let V=this.createCircle(b[D],c,u,e);f.appendChild(V)}}clearSocialDistanceCircles(t){if(!t)return;const e=t.querySelector(`#${fa}`),r=e==null?void 0:e.querySelectorAll("circle");if(!(!e||!(r!=null&&r.length)))for(let a=0,u=(r==null?void 0:r.length)||0;a<u;a++){const l=r[a].getAttribute("id");l&&(l==null?void 0:l.indexOf("_circle"))>-1&&e.removeChild(r[a])}}getRadius(t){var r,a,u;let e=((a=(r=this.params)==null?void 0:r.socialDistance)==null?void 0:a.radius)||3;return((u=this.params)==null?void 0:u.displayUnits)==="imperial"?t==="Metres"||t==="m"?e/=3.28084:t==="cm"?e=e/3.28084*100:t==="mm"?e=e/3.28084*1e3:(t==="INCH"||t==="inches")&&(e*=12):t==="INCH"||t==="inches"?e=e*3.28084*12:t==="cm"?e*=100:t==="mm"&&(e*=1e3),e}createCircle(t,e,r,a){const u=document.createElementNS(a,"circle");return u.setAttributeNS(null,"id",t.id+"_circle"),u.setAttributeNS(null,"cx",t.cp.x),u.setAttributeNS(null,"cy",t.cp.y),u.setAttributeNS(null,"r",String(e)),u.setAttributeNS(null,"style",`pointer-events:none;fill-opacity:0.1;stroke:${t.color};stroke-width:${r}px;`),u}}class Dc extends l0{isSvgScene=!0;name="SvgScene";dynamically=!0;params;socialDistanceEnable=!1;container;svg;svgStr="";svgRoot;viewBox=new Tt;chef;defaultLayers=[];skeletonLayers=[];currentLayers=[];assetType;assetElementsMap={};legend=[];selectedList=[];painter;clickSvgElementHandler=this.handleClickSvgElement.bind(this);constructor(t={}){super(),this.params=t,this.assetType=t.assetType||"rm",this.params.socialDistanceEnable&&(this.socialDistanceEnable=!0),this.container=this.params.containerId?document.getElementById(this.params.containerId):gt.window.document.getElementsByTagName("body")[0],this.chef=new um,this.painter=new om(t,this.chef)}get isMounted(){var t;return((t=this.container.querySelectorAll("svg"))==null?void 0:t.length)>0}destroy(){var t;super.destroy(),this.unmount(),(t=this.camera)==null||t.destroy()}mount(){this.svg&&(this.container.contains(this.svg)||this.container.appendChild(this.svg),this.chef.computeBoundingBoxMap())}unmount(){this.svg&&this.svg.parentNode&&this.container.contains(this.svg)&&this.container.removeChild(this.svg)}computeBoundingBox(){return this.boundingBox.makeEmpty(),!this.chef||!this.svg?this.boundingBox:(this.chef.computeBoundingBoxMap(),this.boundingBox.copy(this.chef.boundingBox),console.warn("svgScene.computeBoundingBox: ",this.chef.boundingBox.toString()),this.boundingBox)}async load(t){return new ju().loadAsync(t)}bind(t){if(this.svgStr=t,this.svg=new DOMParser().parseFromString(t,"image/svg+xml").documentElement,console.warn("bind: ",this.name),!this.svg)throw new Error("svg load failed");let e=this.svg.getAttribute("viewBox");e&&(jd(e,this.viewBox),this.chef.bindSvg(this.svg),this.svgRoot=wh(this.svg),this.svg.setAttribute("viewBox",`0 0 ${this.params.width} ${this.params.height}`),this.appendStyleSelected(),console.log(this.name,"viewBox -> ",e,this.viewBox.toString()),this.setAssetElementsMap(this.assetType,this.assetElementsMap))}appendStyleSelected(){var r;let t=(r=this.svg)==null?void 0:r.querySelector("style");if(!t)return;let e=document.createTextNode(`.selected { stroke: ${this.params.selectedStroke}; fill: ${this.params.selectedFill}; }`);t.appendChild(e)}getLayers(t=2){return this.svg?this.chef.getLayers(t):[]}setDefaultLayers(t){t!=null&&t.length&&(this.defaultLayers=t)}setSkeletonLayers(t){t!=null&&t.length&&(this.skeletonLayers=t)}setCurrentLayers(t){t!=null&&t.length&&(this.currentLayers=t)}showDefaultLayers(t,e=!1){this.setDefaultLayers(t),this.chef.updateLayersVisibility(t,e)}updateLayersVisibility(t,e=!1){this.chef.updateLayersVisibility(t,e)}setAssetType(t,e){this.assetElementsMap={},this.assetType=t,this.setAssetElementsMap(this.assetType,this.assetElementsMap),this.updateLayersVisibility(this.defaultLayers,!0),this.chef.updateVisibilityByAssetTypes(t,!0,e)}isCurrentAssetType(t){return this.assetElementsMap.hasOwnProperty(t)}setAssetElementsMap(t,e={}){const r=nm(t),a=this.chef.getElementById(r);return a&&this.chef.getElementsMap(a,e),e}getAssetIdsByType(t){if(t===this.assetType&&this.assetElementsMap)return ct.keys(this.assetElementsMap);const e=this.setAssetElementsMap(t);return ct.keys(e)}clearFillOrStroke(t="fill"){const e=ct.keys(this.assetElementsMap);let r;for(let a=0,u=e.length;a<u;a++)r=this.assetElementsMap[e[a]],!(!r||!r.hasAttribute(t))&&(r.removeAttribute(t),t==="stroke"&&r.removeAttribute("stroke-width"));this.clearLegendBy(t)}clearFillOrStrokeByIds(t,e="fill"){const r=ct.keys(this.assetElementsMap);let a;for(let u=0,l=r.length;u<l;u++)t!=null&&t.length&&!t.includes(r[u])||(a=this.assetElementsMap[r[u]],!(!a||!a.hasAttribute(e))&&(a.removeAttribute(e),e==="stroke"&&a.removeAttribute("stroke-width")));this.clearLegendBy(e)}setFillOrStrokeByIds(t,e,r="fill"){if(!this.assetElementsMap)return;const a=ct.keys(this.assetElementsMap);let u;for(let l=0,c=a.length;l<c;l++)t.includes(a[l])&&(u=this.assetElementsMap[a[l]],u&&(u.setAttribute(r,e),r==="stroke"&&u.setAttribute("stroke-width","7"),this.addLegend(r,e,a[l])))}addLegend(t,e,r){let a=this.legend.find(u=>u.color===e);a||(a={type:t,color:e,ids:[]},this.legend.push(a)),a.ids.push(r)}clearLegendBy(t){var e;t||(this.legend.length=0);for(let r=((e=this.legend)==null?void 0:e.length)-1;r>=0;r--)this.legend[r].type===t&&this.legend.splice(r,r)}getLegend(){return this.legend}showSkeleton(){var t;(t=this.skeletonLayers)!=null&&t.length&&(this.chef.updateLayersVisibility(this.defaultLayers,!1),this.chef.updateLayersVisibility(this.skeletonLayers,!0))}hideSkeleton(){var t;(t=this.skeletonLayers)!=null&&t.length&&(this.chef.updateLayersVisibility(this.skeletonLayers,!1),this.chef.updateLayersVisibility(this.defaultLayers,!0))}setAssetLabel(t,e){const r=this.assetElementsMap[t];if(!r||!r.hasAttribute("aid"))return;const a=r.getAttribute("aid");if(!a)return;const l=this.getAssetLabelsMap(this.assetType)[a];l&&this.chef.setTextInChildren2(l,e)}getAssetLabelsMap(t,e={}){if(!t)return e;let r=this.chef.getElementById(sm(t));return r||(r=this.chef.getElementById(t+"txt-label")),r&&this.chef.getElementsMap(r,e),e}clearAssetLabels(t){if(!t)return;const e=this.getAssetLabelsMap(t),r=ct.keys(e);if(r!=null&&r.length)for(let a=0,u=r.length;a<u;a++){const l=e[r[a]];this.chef.setTextInChildren2(l,"")}}bindAssetsEvents(t){var a;const e=(a=this.svg)==null?void 0:a.querySelector("#"+t);if(!e)return;e.querySelectorAll("[id]").forEach(u=>{u instanceof SVGElement&&u.addEventListener("click",this.clickSvgElementHandler)})}handleClickSvgElement(t){var e;typeof t.preventDefault=="function"&&t.preventDefault(),console.warn("svgScene.handleClickSvgElement: ",(e=t==null?void 0:t.target)==null?void 0:e.id,t==null?void 0:t.target),this.dispatchEvent({type:"click",data:t})}socialDistanceEnableChanged(t){this.socialDistanceEnable=!!t,t?this.painter.drawSocialDistanceCircles(this.svg):this.painter.clearSocialDistanceCircles(this.svg)}clearSelected(){var t,e;if((t=this.selectedList)!=null&&t.length)for(let r=((e=this.selectedList)==null?void 0:e.length)-1;r>=0;r--){let a=this.selectedList[r];this.selectedList.splice(r,1),this.chef.setElementState2selected(a,!1)}}clearSelectedById(t){var r,a;let e=(r=this.selectedList)==null?void 0:r.findIndex(u=>u.getAttribute("id")===t);e>-1&&(this.chef.setElementState2selected(this.selectedList[e],!1),(a=this.selectedList)==null||a.splice(e,1))}selectByIds(t,e=!1){Array.isArray(t)||(t=[t]),e||this.clearSelected();const r=ct.uniq(ct.map(this.selectedList,a=>a.getAttribute("id")||""));for(let a=t.length-1;a>=0;a--)r.includes(t[a])?(this.clearSelectedById(t[a]),t.splice(a,1)):Object.hasOwnProperty.bind(this,t[a])&&this.selectedList.push(this.assetElementsMap[t[a]]);this.selectedList.forEach(a=>{this.chef.setElementState2selected(a,!0)})}getSelectedBoundingBox(){var e;const t=new Tt;return(e=this.selectedList)!=null&&e.length?(this.selectedList.forEach(r=>{const a=this.chef.boundingBoxMap[r.id];a&&t.expandByBox(a)}),t):t.copy(this.boundingBox)}getElementsByBox(t){const e=[],r=Object.keys(this.chef.boundingBoxMap);for(let a=0,u=r.length;a<u;a++)if(this.assetElementsMap.hasOwnProperty(r[a])&&!(r[a].indexOf("-assets")>-1)&&t.intersectsBox(this.chef.boundingBoxMap[r[a]])){const l=this.assetElementsMap[r[a]];l&&e.push(l)}return e}onBeforeRender(){}fullscreen(t=1e3,e=!1){}update(){}}class lm extends Dc{name="SvgLoadingScene";constructor(t){super(t),this.bind(`<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 100 100">
40
40
  <view id="defaultView" viewBox="0 0 100 100" />
41
41
  <style> #svg-loading-fast circle {animation: svg-loading-fast 2s ease infinite;}
42
42
  @keyframes svg-loading-fast {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "archgine",
3
- "version": "1.0.19",
3
+ "version": "1.0.20",
4
4
  "description": "A simple rendering engine developed by archbds.",
5
5
  "author": "diozhu@163.com",
6
6
  "license": "ISC",