archgine 1.0.49 → 1.0.51
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.
|
@@ -3997,7 +3997,7 @@ Fu.__DOMHandler = Eu;
|
|
|
3997
3997
|
Fu.normalizeLineEndings = Le;
|
|
3998
3998
|
Fu.DOMParser = Ie;
|
|
3999
3999
|
var gr = Fu.DOMParser;
|
|
4000
|
-
const Er = "1.0.
|
|
4000
|
+
const Er = "1.0.51";
|
|
4001
4001
|
function vr() {
|
|
4002
4002
|
return typeof window < "u" && ({}.toString.call(window) === "[object Window]" || {}.toString.call(window) === "[object global]");
|
|
4003
4003
|
}
|
|
@@ -15,6 +15,7 @@ export interface IApp {
|
|
|
15
15
|
setAssetType(assetType: string, showLayers?: string[]): void;
|
|
16
16
|
updateLayersVisibility(ids: string[], visible?: boolean): void;
|
|
17
17
|
selectByIds(ids: string | string[]): void;
|
|
18
|
+
clearSelectedByIds(ids: string | string[]): void;
|
|
18
19
|
getSelectedIds(): string[] | undefined;
|
|
19
20
|
targetByIds(id: string | string[]): void;
|
|
20
21
|
linkAssetsByTree(o: ITree): void;
|
package/lib/extras/svg-app.d.ts
CHANGED
|
@@ -50,7 +50,7 @@ export declare class SvgApp<Config extends ISvgAppConfig> extends EventDispatche
|
|
|
50
50
|
getLayers(lv?: number): ITree[] | undefined;
|
|
51
51
|
updateLayersVisibility(ids: string[], visible?: boolean): void;
|
|
52
52
|
selectByIds(ids: string | string[]): void;
|
|
53
|
-
|
|
53
|
+
clearSelectedByIds(ids: string | string[]): void;
|
|
54
54
|
clearSelected(): void;
|
|
55
55
|
getSelectedIds(): string[] | undefined;
|
|
56
56
|
targetByIds(ids: string | string[]): Promise<void>;
|
package/lib/index.mjs
CHANGED
|
@@ -3997,7 +3997,7 @@ $u.__DOMHandler = Ta;
|
|
|
3997
3997
|
$u.normalizeLineEndings = rd;
|
|
3998
3998
|
$u.DOMParser = id;
|
|
3999
3999
|
var wx = $u.DOMParser;
|
|
4000
|
-
const Tx = "1.0.
|
|
4000
|
+
const Tx = "1.0.51";
|
|
4001
4001
|
function _x() {
|
|
4002
4002
|
return typeof window < "u" && ({}.toString.call(window) === "[object Window]" || {}.toString.call(window) === "[object global]");
|
|
4003
4003
|
}
|
|
@@ -17261,7 +17261,7 @@ class aw extends Wr {
|
|
|
17261
17261
|
var e;
|
|
17262
17262
|
(e = this.scene) == null || e.selectByIds(t, this.multiSelectEnable);
|
|
17263
17263
|
}
|
|
17264
|
-
|
|
17264
|
+
clearSelectedByIds(t) {
|
|
17265
17265
|
var e;
|
|
17266
17266
|
Array.isArray(t) ? t.forEach((n) => {
|
|
17267
17267
|
var a;
|
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:""}),r.entityMap=r.HTML_ENTITIES})(Gh);var ho={},Ls=hi.NAMESPACE,co=/[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]/,Yh=new RegExp("[\\-\\.0-9"+co.source.slice(1,-1)+"\\u00B7\\u0300-\\u036F\\u203F-\\u2040]"),Xh=new RegExp("^"+co.source+Yh.source+"*(?::"+co.source+Yh.source+"*)?$"),Ps=0,Fi=1,$n=2,Fs=3,zn=4,Gn=5,ks=6,ka=7;function Yn(r,t){this.message=r,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,Yn)}Yn.prototype=new Error,Yn.prototype.name=Yn.name;function Zh(){}Zh.prototype={parse:function(r,t,e){var n=this.domBuilder;n.startDocument(),Kh(t,t={}),vg(r,t,e,n,this.errorHandler),n.endDocument()}};function vg(r,t,e,n,a){function u(O){if(O>65535){O-=65536;var yt=55296+(O>>10),Bt=56320+(O&1023);return String.fromCharCode(yt,Bt)}else return String.fromCharCode(O)}function l(O){var yt=O.slice(1,-1);return Object.hasOwnProperty.call(e,yt)?e[yt]:yt.charAt(0)==="#"?u(parseInt(yt.substr(1).replace("x","0x"))):(a.error("entity not found:"+O),O)}function c(O){if(O>N){var yt=r.substring(N,O).replace(/&#?\w+;/g,l);_&&f(N),n.characters(yt,0,O-N),N=O}}function f(O,yt){for(;O>=y&&(yt=A.exec(r));)d=yt.index,y=d+yt[0].length,_.lineNumber++;_.columnNumber=O-d+1}for(var d=0,y=0,A=/.*(?:\r\n?|\n)|.*$/g,_=n.locator,C=[{currentNSMap:t}],F={},N=0;;){try{var M=r.indexOf("<",N);if(M<0){if(!r.substr(N).match(/^\s*$/)){var R=n.doc,q=R.createTextNode(r.substr(N));R.appendChild(q),n.currentElement=q}return}switch(M>N&&c(M),r.charAt(M+1)){case"/":var J=r.indexOf(">",M+3),z=r.substring(M+2,J).replace(/[ \t\n\r]+$/g,""),w=C.pop();J<0?(z=r.substring(M+2).replace(/[\s<].*/,""),a.error("end tag name: "+z+" is not complete:"+w.tagName),J=M+1+z.length):z.match(/\s</)&&(z=z.replace(/[\s<].*/,""),a.error("end tag name: "+z+" maybe not complete"),J=M+1+z.length);var L=w.localNSMap,U=w.tagName==z,j=U||w.tagName&&w.tagName.toLowerCase()==z.toLowerCase();if(j){if(n.endElement(w.uri,w.localName,z),L)for(var tt in L)Object.prototype.hasOwnProperty.call(L,tt)&&n.endPrefixMapping(tt);U||a.fatalError("end tag name: "+z+" is not match the current start tagName:"+w.tagName)}else C.push(w);J++;break;case"?":_&&f(M),J=bg(r,M,n);break;case"!":_&&f(M),J=Ag(r,M,n,a);break;default:_&&f(M);var Z=new Jh,rt=C[C.length-1].currentNSMap,J=mg(r,M,Z,rt,l,a),st=Z.length;if(!Z.closed&&Eg(r,J,Z.tagName,F)&&(Z.closed=!0,e.nbsp||a.warning("unclosed xml attribute")),_&&st){for(var ht=Qh(_,{}),ct=0;ct<st;ct++){var ft=Z[ct];f(ft.offset),ft.locator=Qh(_,{})}n.locator=ht,jh(Z,n,rt)&&C.push(Z),n.locator=_}else jh(Z,n,rt)&&C.push(Z);Ls.isHTML(Z.uri)&&!Z.closed?J=xg(r,J,Z.tagName,l,n):J++}}catch(O){if(O instanceof Yn)throw O;a.error("element parse error: "+O),J=-1}J>N?N=J:c(Math.max(M,N)+1)}}function Qh(r,t){return t.lineNumber=r.lineNumber,t.columnNumber=r.columnNumber,t}function mg(r,t,e,n,a,u){function l(_,C,F){e.attributeNames.hasOwnProperty(_)&&u.fatalError("Attribute "+_+" redefined"),e.addValue(_,C.replace(/[\t\n\r]/g," ").replace(/&#?\w+;/g,a),F)}for(var c,f,d=++t,y=Ps;;){var A=r.charAt(d);switch(A){case"=":if(y===Fi)c=r.slice(t,d),y=Fs;else if(y===$n)y=Fs;else throw new Error("attribute equal must after attrName");break;case"'":case'"':if(y===Fs||y===Fi)if(y===Fi&&(u.warning('attribute value must after "="'),c=r.slice(t,d)),t=d+1,d=r.indexOf(A,t),d>0)f=r.slice(t,d),l(c,f,t-1),y=Gn;else throw new Error("attribute value no end '"+A+"' match");else if(y==zn)f=r.slice(t,d),l(c,f,t),u.warning('attribute "'+c+'" missed start quot('+A+")!!"),t=d+1,y=Gn;else throw new Error('attribute value must after "="');break;case"/":switch(y){case Ps:e.setTagName(r.slice(t,d));case Gn:case ks:case ka:y=ka,e.closed=!0;case zn:case Fi:break;case $n:e.closed=!0;break;default:throw new Error("attribute invalid close char('/')")}break;case"":return u.error("unexpected end of input"),y==Ps&&e.setTagName(r.slice(t,d)),d;case">":switch(y){case Ps:e.setTagName(r.slice(t,d));case Gn:case ks:case ka:break;case zn:case Fi:f=r.slice(t,d),f.slice(-1)==="/"&&(e.closed=!0,f=f.slice(0,-1));case $n:y===$n&&(f=c),y==zn?(u.warning('attribute "'+f+'" missed quot(")!'),l(c,f,t)):((!Ls.isHTML(n[""])||!f.match(/^(?:disabled|checked|selected)$/i))&&u.warning('attribute "'+f+'" missed value!! "'+f+'" instead!!'),l(f,f,t));break;case Fs:throw new Error("attribute value missed!!")}return d;case"":A=" ";default:if(A<=" ")switch(y){case Ps:e.setTagName(r.slice(t,d)),y=ks;break;case Fi:c=r.slice(t,d),y=$n;break;case zn:var f=r.slice(t,d);u.warning('attribute "'+f+'" missed quot(")!!'),l(c,f,t);case Gn:y=ks;break}else switch(y){case $n:e.tagName,(!Ls.isHTML(n[""])||!c.match(/^(?:disabled|checked|selected)$/i))&&u.warning('attribute "'+c+'" missed value!! "'+c+'" instead2!!'),l(c,c,t),t=d,y=Fi;break;case Gn:u.warning('attribute space is required"'+c+'"!!');case ks:y=Fi,t=d;break;case Fs:y=zn,t=d;break;case ka:throw new Error("elements closed character '/' and '>' must be connected to")}}d++}}function jh(r,t,e){for(var n=r.tagName,a=null,A=r.length;A--;){var u=r[A],l=u.qName,c=u.value,_=l.indexOf(":");if(_>0)var f=u.prefix=l.slice(0,_),d=l.slice(_+1),y=f==="xmlns"&&d;else d=l,f=null,y=l==="xmlns"&&"";u.localName=d,y!==!1&&(a==null&&(a={},Kh(e,e={})),e[y]=a[y]=c,u.uri=Ls.XMLNS,t.startPrefixMapping(y,c))}for(var A=r.length;A--;){u=r[A];var f=u.prefix;f&&(f==="xml"&&(u.uri=Ls.XML),f!=="xmlns"&&(u.uri=e[f||""]))}var _=n.indexOf(":");_>0?(f=r.prefix=n.slice(0,_),d=r.localName=n.slice(_+1)):(f=null,d=r.localName=n);var C=r.uri=e[f||""];if(t.startElement(C,d,n,r),r.closed){if(t.endElement(C,d,n),a)for(f in a)Object.prototype.hasOwnProperty.call(a,f)&&t.endPrefixMapping(f)}else return r.currentNSMap=e,r.localNSMap=a,!0}function xg(r,t,e,n,a){if(/^(?:script|textarea)$/i.test(e)){var u=r.indexOf("</"+e+">",t),l=r.substring(t+1,u);if(/[&<]/.test(l))return/^script$/i.test(e)?(a.characters(l,0,l.length),u):(l=l.replace(/&#?\w+;/g,n),a.characters(l,0,l.length),u)}return t+1}function Eg(r,t,e,n){var a=n[e];return a==null&&(a=r.lastIndexOf("</"+e+">"),a<t&&(a=r.lastIndexOf("</"+e)),n[e]=a),a<t}function Kh(r,t){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])}function Ag(r,t,e,n){var a=r.charAt(t+2);switch(a){case"-":if(r.charAt(t+3)==="-"){var u=r.indexOf("-->",t+4);return u>t?(e.comment(r,t+4,u-t-4),u+3):(n.error("Unclosed comment"),-1)}else return-1;default:if(r.substr(t+3,6)=="CDATA["){var u=r.indexOf("]]>",t+9);return e.startCDATA(),e.characters(r,t+9,u-t-9),e.endCDATA(),u+3}var l=wg(r,t),c=l.length;if(c>1&&/!doctype/i.test(l[0][0])){var f=l[1][0],d=!1,y=!1;c>3&&(/^public$/i.test(l[2][0])?(d=l[3][0],y=c>4&&l[4][0]):/^system$/i.test(l[2][0])&&(y=l[3][0]));var A=l[c-1];return e.startDTD(f,d,y),e.endDTD(),A.index+A[0].length}}return-1}function bg(r,t,e){var n=r.indexOf("?>",t);if(n){var a=r.substring(t,n).match(/^<\?(\S*)\s*([\s\S]*?)\s*$/);return a?(a[0].length,e.processingInstruction(a[1],a[2]),n+2):-1}return-1}function Jh(){this.attributeNames={}}Jh.prototype={setTagName:function(r){if(!Xh.test(r))throw new Error("invalid tagName:"+r);this.tagName=r},addValue:function(r,t,e){if(!Xh.test(r))throw new Error("invalid attribute:"+r);this.attributeNames[r]=this.length,this[this.length++]={qName:r,value:t,offset:e}},length:0,getLocalName:function(r){return this[r].localName},getLocator:function(r){return this[r].locator},getQName:function(r){return this[r].qName},getURI:function(r){return this[r].uri},getValue:function(r){return this[r].value}};function wg(r,t){var e,n=[],a=/'[^']+'|"[^"]+"|[^\s<>\/=]+=?|(\/?\s*>|<)/g;for(a.lastIndex=t,a.exec(r);e=a.exec(r);)if(n.push(e),e[1])return n}ho.XMLReader=Zh,ho.ParseError=Yn;var Tg=hi,_g=Pi,tc=Gh,ec=ho,Cg=_g.DOMImplementation,rc=Tg.NAMESPACE,Dg=ec.ParseError,Sg=ec.XMLReader;function ic(r){return r.replace(/\r[\n\u0085]/g,`
|
|
3
3
|
`).replace(/[\r\u0085\u2028]/g,`
|
|
4
4
|
`)}function nc(r){this.options=r||{locator:{}}}nc.prototype.parseFromString=function(r,t){var e=this.options,n=new Sg,a=e.domBuilder||new Us,u=e.errorHandler,l=e.locator,c=e.xmlns||{},f=/\/x?html?$/.test(t),d=f?tc.HTML_ENTITIES:tc.XML_ENTITIES;l&&a.setDocumentLocator(l),n.errorHandler=Og(u,a,l),n.domBuilder=e.domBuilder||a,f&&(c[""]=rc.HTML),c.xml=c.xml||rc.XML;var y=e.normalizeLineEndings||ic;return r&&typeof r=="string"?n.parse(y(r),c,d):n.errorHandler.error("invalid doc source"),a.doc};function Og(r,t,e){if(!r){if(t instanceof Us)return t;r=t}var n={},a=r instanceof Function;e=e||{};function u(l){var c=r[l];!c&&a&&(c=r.length==2?function(f){r(l,f)}:r),n[l]=c&&function(f){c("[xmldom "+l+"] "+f+fo(e))}||function(){}}return u("warning"),u("error"),u("fatalError"),n}function Us(){this.cdata=!1}function Xn(r,t){t.lineNumber=r.lineNumber,t.columnNumber=r.columnNumber}Us.prototype={startDocument:function(){this.doc=new Cg().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(r,t,e,n){var a=this.doc,u=a.createElementNS(r,e||t),l=n.length;Ua(this,u),this.currentElement=u,this.locator&&Xn(this.locator,u);for(var c=0;c<l;c++){var r=n.getURI(c),f=n.getValue(c),e=n.getQName(c),d=a.createAttributeNS(r,e);this.locator&&Xn(n.getLocator(c),d),d.value=d.nodeValue=f,u.setAttributeNode(d)}},endElement:function(r,t,e){var n=this.currentElement;n.tagName,this.currentElement=n.parentNode},startPrefixMapping:function(r,t){},endPrefixMapping:function(r){},processingInstruction:function(r,t){var e=this.doc.createProcessingInstruction(r,t);this.locator&&Xn(this.locator,e),Ua(this,e)},ignorableWhitespace:function(r,t,e){},characters:function(r,t,e){if(r=sc.apply(this,arguments),r){if(this.cdata)var n=this.doc.createCDATASection(r);else var n=this.doc.createTextNode(r);this.currentElement?this.currentElement.appendChild(n):/^\s*$/.test(r)&&this.doc.appendChild(n),this.locator&&Xn(this.locator,n)}},skippedEntity:function(r){},endDocument:function(){this.doc.normalize()},setDocumentLocator:function(r){(this.locator=r)&&(r.lineNumber=0)},comment:function(r,t,e){r=sc.apply(this,arguments);var n=this.doc.createComment(r);this.locator&&Xn(this.locator,n),Ua(this,n)},startCDATA:function(){this.cdata=!0},endCDATA:function(){this.cdata=!1},startDTD:function(r,t,e){var n=this.doc.implementation;if(n&&n.createDocumentType){var a=n.createDocumentType(r,t,e);this.locator&&Xn(this.locator,a),Ua(this,a),this.doc.doctype=a}},warning:function(r){console.warn("[xmldom warning] "+r,fo(this.locator))},error:function(r){console.error("[xmldom error] "+r,fo(this.locator))},fatalError:function(r){throw new Dg(r,this.locator)}};function fo(r){if(r)return`
|
|
5
|
-
@`+(r.systemId||"")+"#[line:"+r.lineNumber+",col:"+r.columnNumber+"]"}function sc(r,t,e){return typeof r=="string"?r.substr(t,e):r.length>=t+e||t?new java.lang.String(r,t,e)+"":r}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(r){Us.prototype[r]=function(){return null}});function Ua(r,t){r.currentElement?r.currentElement.appendChild(t):r.doc.appendChild(t)}Fa.__DOMHandler=Us,Fa.normalizeLineEndings=ic,Fa.DOMParser=nc;var Ng=Fa.DOMParser;const Mg="1.0.49";function Bg(){return typeof window<"u"&&({}.toString.call(window)==="[object Window]"||{}.toString.call(window)==="[object global]")}const Zn=typeof window<"u"?window:typeof WorkerGlobalScope<"u"?self:{document:void 0,tinyEngine:void 0};Zn.Path2D||Kd(Zn),Zn.DOMParser||(Zn.DOMParser=Ng);const Zt={window:Zn,version:Mg,isBrowser:Bg(),dpr:typeof window<"u"&&window.devicePixelRatio||1,document:Zn.document,time:0,deltaTime:0,config:Un},Hs=(r,t,e)=>Math.max(t,Math.min(e,r)),ac=(r,t=1e-6)=>Math.abs(r)<t?0:r<0?-1:1,uc=r=>r*(Math.PI/180),Ig=(r,t)=>(r%t+t)%t,po=(r,t,e)=>(1-e)*r+e*t,Rg=r=>{let t=r*(180/Math.PI);return t<0&&(t+=360),t>360&&(t-=360),t},he={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)"},Lg={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},Mr={h:0,s:0,l:0},Ha={h:0,s:0,l:0};function go(r,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?r+(t-r)*6*e:e<1/2?t:e<2/3?r+(t-r)*6*(2/3-e):r}const Pg=/^#([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 Wt{isColor=!0;r=1;g=1;b=1;a=1;constructor(t,e,n,a){return e===void 0&&n===void 0?this.set(t):this.setRGBA(t,e,n,a)}static isColor(t){return typeof t=="string"?Pg.test(t):typeof t=="number"?t>=0&&t<=16777215:!1}static getRandomStyle(){return di.random().getStyle()}static getDarken(t,e=.8){return di.set(t).getHSL(qa),di.setHSL(qa.h,qa.s,qa.l*e).getStyle()}static getLighten(t,e=1.2){return this.getDarken(t,e)}static getContrast(t){return di.set(t),di.getContrastString()}static getArray(t){return di.set(t).toArray()}static getComplementary(t){return di.set(t),di.getComplementaryString()}static getMoreTransparent(t,e){return di.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,n){return this.setRGBA(t,e,n,this.a)}setRGBA(t,e,n,a=1){return this.r=t,this.g=e,this.b=n,this.a=a,this}setHSL(t,e,n,a=1){if(t=Ig(t,1),e=Hs(e,0,1),n=Hs(n,0,1),e===0)this.r=this.g=this.b=n;else{const u=n<=.5?n*(1+e):n+e-n*e,l=2*n-u;this.r=go(l,u,t+1/3),this.g=go(l,u,t),this.b=go(l,u,t-1/3)}return this.a=a,this}setStyle(t){let e;if(e=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let n;const a=e[1],u=e[2];switch(a){case"rgb":case"rgba":if(n=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,this.a=Math.max(Math.min(1,n[4]!==void 0?parseFloat(n[4]):1),0),this;if(n=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,this.a=Math.max(Math.min(1,n[4]!==void 0?parseFloat(n[4]):1),0),this;break;case"hsl":case"hsla":if(n=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u)){const l=parseFloat(n[1])/360,c=parseInt(n[2],10)/100,f=parseInt(n[3],10)/100,d=Math.max(Math.min(1,n[4]!==void 0?parseFloat(n[4]):1),0);return this.setHSL(l,c,f,d)}break}}else if(e=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=e[1],a=n.length;if(a===3)return this.r=parseInt(n.charAt(0)+n.charAt(0),16)/255,this.g=parseInt(n.charAt(1)+n.charAt(1),16)/255,this.b=parseInt(n.charAt(2)+n.charAt(2),16)/255,this.a=1,this;if(a===6)return this.r=parseInt(n.charAt(0)+n.charAt(1),16)/255,this.g=parseInt(n.charAt(2)+n.charAt(3),16)/255,this.b=parseInt(n.charAt(4)+n.charAt(5),16)/255,this.a=1,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Lg[t.toLowerCase()];return e!==void 0?this.setHex(e):console.warn("Color: Unknown color "+t),this}clone(){return new Wt(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 Wt){return t.setRGB(this.r,this.g,this.b)}getRGBByBg(t=new Wt){const e=this.a,n=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 Wt(n,a,u)}getHex(){return Hs(this.r*255,0,255)<<16^Hs(this.g*255,0,255)<<8^Hs(this.b*255,0,255)<<0}getHSL(t){const e=this.r,n=this.g,a=this.b,u=Math.max(e,n,a),l=Math.min(e,n,a);let c=0,f;const d=(l+u)/2;if(l===u)c=0,f=0;else{const y=u-l;switch(f=d<=.5?y/(u+l):y/(2-u-l),u){case e:c=(n-a)/y+(n<a?6:0);break;case n:c=(a-e)/y+2;break;case a:c=(e-n)/y+4;break}c/=6}return t.h=c,t.s=f,t.l=d,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 Wt){const e=this.toArray(),n=[0,0,0,1];for(let a=0;a<e.length;a++)if(a<3)n[a]=1-e[a];else if(a===3)e[a]>1||e[a]<=0?n[a]=1:n[a]=Math.max(Math.min(parseFloat(e[a].toFixed(2)),1),0);else continue;return t.setRGBA(n[0],n[1],n[2],parseFloat(n[3].toFixed(2)))}getComplementaryString(){return this.getComplementary().getStyle()}getLightenOrDarken(t){if(typeof t>"u"||t>=1)return this.getHexString();const e=this.getRGBByBg(),n=e.r*t+(1-t),a=e.g*t+(1-t),u=e.b*t+(1-t);return new Wt(n,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,n){return this.getHSL(Mr),Mr.h+=t,Mr.s+=e,Mr.l+=n,this.setHSL(Mr.h,Mr.s,Mr.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,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(Mr),t.getHSL(Ha);const n=po(Mr.h,Ha.h,e),a=po(Mr.s,Ha.s,e),u=po(Mr.l,Ha.l,e);return this.setHSL(n,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 di=new Wt,qa={h:0,s:0,l:0};class Y{isVector2=!0;x=0;y=0;z;constructor(t=0,e=0,n){this.x=t,this.y=e,this.z=n||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,n=!0){return n?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 n=new ArrayBuffer(t.length*e*4),a=new Int32Array(n);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 n=new ArrayBuffer(t.length*e*8),a=new Float64Array(n);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 n=0,a=t.length;n<a;n++)e.push(new Y(t[n].x,t[n].y));return e}static getStrings(t){const e=[];if(!t||!t.length)return"";for(let n=0,a=t.length;n<a;n++)e.push(Y.getString(t[n]));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.x+t.y*e.y}static cross(t,e){return t.x*e.y-t.y*e.x}static sub(t,e){return new Y().subVectors(t,e)}static isPointOnSegment(t,e,n){return ac(this.sub(t,n).cross(this.sub(e,n)))===0&&ac(this.sub(t,n).dot(this.sub(e,n)))<=0}static angle(t,e,n){return n?Math.atan2(t.y-e.y,t.x-e.x):Rg(Math.atan2(t.y-e.y,t.x-e.x))}static getSamplingPoints(t,e=100){let n=this.getClothoidPoints(t,e),a=0;for(let u=0,l=n.length;u<l;u++){let c=Math.max(0,u-1);u>0?a+=this.getDistance(n[c],n[c+1]):a=0,n[u].l=Math.round(a);let f=this.angle(n[c+1],n[c]);n[u].a=Math.round(f*100)/100}return n}static getClothoidPoints(t,e=100){let n=[],a=t.concat([]);if(!a||a.length<2)return n;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 Y(a[u].x,a[u].y),c=new Y(a[u+1].x,a[u+1].y),f=new Y(a[u+2].x,a[u+2].y),d=new Y(a[u+3].x,a[u+3].y),y=0;y+=l.distanceTo(c),y+=c.distanceTo(f),y+=f.distanceTo(d);let A=Math.min(.5,1/(y/e));for(let _=A;_<1;_+=A){let C=3*(c.x-l.x),F=3*(f.x-c.x)-C,N=d.x-l.x-C-F,M=3*(c.y-l.y),R=3*(f.y-c.y)-M,q=d.y-l.y-M-R,z=N*Math.pow(_,3)+F*Math.pow(_,2)+C*_+l.x,w=q*Math.pow(_,3)+R*Math.pow(_,2)+M*_+l.y;n.push({x:Math.round(z),y:Math.round(w),a:0,l:0})}}return n.unshift({x:a[0].x,y:a[0].y,a:0,l:0}),n.push({x:a[a.length-1].x,y:a[a.length-1].y,a:0,l:0}),n}static getClothoidLength(t){let e=0;if(t.length>2)for(let n=0;n<t.length;n++){let a=Math.max(0,n-1);n>0&&(e+=this.getDistance(t[a],t[a+1]))}return e}static getCircleCenterByChord(t,e,n,a=!0,u=new Y){const l=this.getDistance(t,e);if(l===0)return u.x=1/0,u.y=1/0,u;yo.set((t.x+e.x)/2,(t.y+e.y)/2);const c=Math.sqrt(n*n-l*l/4),f=a?-1:1;return u.x=yo.x+f*c*(e.y-t.y)/l,u.y=yo.y-f*c*(e.x-t.x)/l,u}static isPointInCircle(t,e,n){return this.getDistance(n,t)<e}static isPointInPolygonByRay(t,e){let n=0;const a=new Y().copy(t),u=new Y,l=new Y;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((d,y)=>d-y);f[0]<a.y&&f[1]>a.y&&(u.x<a.x||l.x<a.x)&&n++}return n%2===1}static whichSideOfSegment(t,e,n){return(e.x-t.x)*(n.y-t.y)-(n.x-t.x)*(e.y-t.y)}static getIntersectionOfSegments(t,e,n,a,u=!1,l=new Y){const c=(a.y-n.y)*(e.x-t.x)-(a.x-n.x)*(e.y-t.y);if(c===0)return l.makeEmpty();const f=(a.x-n.x)*(t.y-n.y)-(a.y-n.y)*(t.x-n.x),d=(e.x-t.x)*(t.y-n.y)-(e.y-t.y)*(t.x-n.x),y=f/c,A=d/c;return u&&(y<0||y>1||A<0||A>1)?l.makeEmpty():(l.x=t.x+y*(e.x-t.x),l.y=t.y+y*(e.y-t.y),l)}static getConvexHullByGrahamScan(t,e=!1,n=[]){if(!t||!t.length)return n;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{n.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&&n.push(t[u]),n}static getPointsWithMatrix3(t,e){const n=[];if(!t)return n;for(let a=0,u=t.length;a<u;a++)n.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 n}static getPointsApplyMatrix3(t,e=[]){for(let n=0,a=e.length;n<a;n++){const u=t.elements[0]*e[n].x+t.elements[3]*e[n].y+t.elements[6],l=t.elements[1]*e[n].x+t.elements[4]*e[n].y+t.elements[7];e[n].x=u,e[n].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,n=this.y,a=t.elements;return this.x=a[0]*e+a[3]*n+a[6],this.y=a[1]*e+a[4]*n+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 n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}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 Y(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,n=this.y-t.y;return e*e+n*n}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.dot(this))}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,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.min(this.x,t),this.y=Math.min(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),n=Math.sin(t),a=this.x,u=this.y;return this.x=a*e-u*n,this.y=a*n+u*e,this}rotateAround(t,e){const n=Math.cos(e),a=Math.sin(e),u=this.x-t.x,l=this.y-t.y;return this.x=u*n-l*a+t.x,this.y=u*a+l*n+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 yo=new Y,Fg=Object.freeze(Object.defineProperty({__proto__:null,default:Y},Symbol.toStringTag,{value:"Module"}));var Wa={exports:{}};/**
|
|
5
|
+
@`+(r.systemId||"")+"#[line:"+r.lineNumber+",col:"+r.columnNumber+"]"}function sc(r,t,e){return typeof r=="string"?r.substr(t,e):r.length>=t+e||t?new java.lang.String(r,t,e)+"":r}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\w+/g,function(r){Us.prototype[r]=function(){return null}});function Ua(r,t){r.currentElement?r.currentElement.appendChild(t):r.doc.appendChild(t)}Fa.__DOMHandler=Us,Fa.normalizeLineEndings=ic,Fa.DOMParser=nc;var Ng=Fa.DOMParser;const Mg="1.0.51";function Bg(){return typeof window<"u"&&({}.toString.call(window)==="[object Window]"||{}.toString.call(window)==="[object global]")}const Zn=typeof window<"u"?window:typeof WorkerGlobalScope<"u"?self:{document:void 0,tinyEngine:void 0};Zn.Path2D||Kd(Zn),Zn.DOMParser||(Zn.DOMParser=Ng);const Zt={window:Zn,version:Mg,isBrowser:Bg(),dpr:typeof window<"u"&&window.devicePixelRatio||1,document:Zn.document,time:0,deltaTime:0,config:Un},Hs=(r,t,e)=>Math.max(t,Math.min(e,r)),ac=(r,t=1e-6)=>Math.abs(r)<t?0:r<0?-1:1,uc=r=>r*(Math.PI/180),Ig=(r,t)=>(r%t+t)%t,po=(r,t,e)=>(1-e)*r+e*t,Rg=r=>{let t=r*(180/Math.PI);return t<0&&(t+=360),t>360&&(t-=360),t},he={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)"},Lg={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},Mr={h:0,s:0,l:0},Ha={h:0,s:0,l:0};function go(r,t,e){return e<0&&(e+=1),e>1&&(e-=1),e<1/6?r+(t-r)*6*e:e<1/2?t:e<2/3?r+(t-r)*6*(2/3-e):r}const Pg=/^#([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 Wt{isColor=!0;r=1;g=1;b=1;a=1;constructor(t,e,n,a){return e===void 0&&n===void 0?this.set(t):this.setRGBA(t,e,n,a)}static isColor(t){return typeof t=="string"?Pg.test(t):typeof t=="number"?t>=0&&t<=16777215:!1}static getRandomStyle(){return di.random().getStyle()}static getDarken(t,e=.8){return di.set(t).getHSL(qa),di.setHSL(qa.h,qa.s,qa.l*e).getStyle()}static getLighten(t,e=1.2){return this.getDarken(t,e)}static getContrast(t){return di.set(t),di.getContrastString()}static getArray(t){return di.set(t).toArray()}static getComplementary(t){return di.set(t),di.getComplementaryString()}static getMoreTransparent(t,e){return di.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,n){return this.setRGBA(t,e,n,this.a)}setRGBA(t,e,n,a=1){return this.r=t,this.g=e,this.b=n,this.a=a,this}setHSL(t,e,n,a=1){if(t=Ig(t,1),e=Hs(e,0,1),n=Hs(n,0,1),e===0)this.r=this.g=this.b=n;else{const u=n<=.5?n*(1+e):n+e-n*e,l=2*n-u;this.r=go(l,u,t+1/3),this.g=go(l,u,t),this.b=go(l,u,t-1/3)}return this.a=a,this}setStyle(t){let e;if(e=/^((?:rgb|hsl)a?)\(([^\)]*)\)/.exec(t)){let n;const a=e[1],u=e[2];switch(a){case"rgb":case"rgba":if(n=/^\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,this.a=Math.max(Math.min(1,n[4]!==void 0?parseFloat(n[4]):1),0),this;if(n=/^\s*(\d+)\%\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,this.a=Math.max(Math.min(1,n[4]!==void 0?parseFloat(n[4]):1),0),this;break;case"hsl":case"hsla":if(n=/^\s*(\d*\.?\d+)\s*,\s*(\d+)\%\s*,\s*(\d+)\%\s*(?:,\s*(\d*\.?\d+)\s*)?$/.exec(u)){const l=parseFloat(n[1])/360,c=parseInt(n[2],10)/100,f=parseInt(n[3],10)/100,d=Math.max(Math.min(1,n[4]!==void 0?parseFloat(n[4]):1),0);return this.setHSL(l,c,f,d)}break}}else if(e=/^\#([A-Fa-f\d]+)$/.exec(t)){const n=e[1],a=n.length;if(a===3)return this.r=parseInt(n.charAt(0)+n.charAt(0),16)/255,this.g=parseInt(n.charAt(1)+n.charAt(1),16)/255,this.b=parseInt(n.charAt(2)+n.charAt(2),16)/255,this.a=1,this;if(a===6)return this.r=parseInt(n.charAt(0)+n.charAt(1),16)/255,this.g=parseInt(n.charAt(2)+n.charAt(3),16)/255,this.b=parseInt(n.charAt(4)+n.charAt(5),16)/255,this.a=1,this}return t&&t.length>0?this.setColorName(t):this}setColorName(t){const e=Lg[t.toLowerCase()];return e!==void 0?this.setHex(e):console.warn("Color: Unknown color "+t),this}clone(){return new Wt(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 Wt){return t.setRGB(this.r,this.g,this.b)}getRGBByBg(t=new Wt){const e=this.a,n=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 Wt(n,a,u)}getHex(){return Hs(this.r*255,0,255)<<16^Hs(this.g*255,0,255)<<8^Hs(this.b*255,0,255)<<0}getHSL(t){const e=this.r,n=this.g,a=this.b,u=Math.max(e,n,a),l=Math.min(e,n,a);let c=0,f;const d=(l+u)/2;if(l===u)c=0,f=0;else{const y=u-l;switch(f=d<=.5?y/(u+l):y/(2-u-l),u){case e:c=(n-a)/y+(n<a?6:0);break;case n:c=(a-e)/y+2;break;case a:c=(e-n)/y+4;break}c/=6}return t.h=c,t.s=f,t.l=d,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 Wt){const e=this.toArray(),n=[0,0,0,1];for(let a=0;a<e.length;a++)if(a<3)n[a]=1-e[a];else if(a===3)e[a]>1||e[a]<=0?n[a]=1:n[a]=Math.max(Math.min(parseFloat(e[a].toFixed(2)),1),0);else continue;return t.setRGBA(n[0],n[1],n[2],parseFloat(n[3].toFixed(2)))}getComplementaryString(){return this.getComplementary().getStyle()}getLightenOrDarken(t){if(typeof t>"u"||t>=1)return this.getHexString();const e=this.getRGBByBg(),n=e.r*t+(1-t),a=e.g*t+(1-t),u=e.b*t+(1-t);return new Wt(n,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,n){return this.getHSL(Mr),Mr.h+=t,Mr.s+=e,Mr.l+=n,this.setHSL(Mr.h,Mr.s,Mr.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,n){return this.r=t.r+(e.r-t.r)*n,this.g=t.g+(e.g-t.g)*n,this.b=t.b+(e.b-t.b)*n,this}lerpHSL(t,e){this.getHSL(Mr),t.getHSL(Ha);const n=po(Mr.h,Ha.h,e),a=po(Mr.s,Ha.s,e),u=po(Mr.l,Ha.l,e);return this.setHSL(n,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 di=new Wt,qa={h:0,s:0,l:0};class Y{isVector2=!0;x=0;y=0;z;constructor(t=0,e=0,n){this.x=t,this.y=e,this.z=n||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,n=!0){return n?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 n=new ArrayBuffer(t.length*e*4),a=new Int32Array(n);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 n=new ArrayBuffer(t.length*e*8),a=new Float64Array(n);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 n=0,a=t.length;n<a;n++)e.push(new Y(t[n].x,t[n].y));return e}static getStrings(t){const e=[];if(!t||!t.length)return"";for(let n=0,a=t.length;n<a;n++)e.push(Y.getString(t[n]));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.x+t.y*e.y}static cross(t,e){return t.x*e.y-t.y*e.x}static sub(t,e){return new Y().subVectors(t,e)}static isPointOnSegment(t,e,n){return ac(this.sub(t,n).cross(this.sub(e,n)))===0&&ac(this.sub(t,n).dot(this.sub(e,n)))<=0}static angle(t,e,n){return n?Math.atan2(t.y-e.y,t.x-e.x):Rg(Math.atan2(t.y-e.y,t.x-e.x))}static getSamplingPoints(t,e=100){let n=this.getClothoidPoints(t,e),a=0;for(let u=0,l=n.length;u<l;u++){let c=Math.max(0,u-1);u>0?a+=this.getDistance(n[c],n[c+1]):a=0,n[u].l=Math.round(a);let f=this.angle(n[c+1],n[c]);n[u].a=Math.round(f*100)/100}return n}static getClothoidPoints(t,e=100){let n=[],a=t.concat([]);if(!a||a.length<2)return n;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 Y(a[u].x,a[u].y),c=new Y(a[u+1].x,a[u+1].y),f=new Y(a[u+2].x,a[u+2].y),d=new Y(a[u+3].x,a[u+3].y),y=0;y+=l.distanceTo(c),y+=c.distanceTo(f),y+=f.distanceTo(d);let A=Math.min(.5,1/(y/e));for(let _=A;_<1;_+=A){let C=3*(c.x-l.x),F=3*(f.x-c.x)-C,N=d.x-l.x-C-F,M=3*(c.y-l.y),R=3*(f.y-c.y)-M,q=d.y-l.y-M-R,z=N*Math.pow(_,3)+F*Math.pow(_,2)+C*_+l.x,w=q*Math.pow(_,3)+R*Math.pow(_,2)+M*_+l.y;n.push({x:Math.round(z),y:Math.round(w),a:0,l:0})}}return n.unshift({x:a[0].x,y:a[0].y,a:0,l:0}),n.push({x:a[a.length-1].x,y:a[a.length-1].y,a:0,l:0}),n}static getClothoidLength(t){let e=0;if(t.length>2)for(let n=0;n<t.length;n++){let a=Math.max(0,n-1);n>0&&(e+=this.getDistance(t[a],t[a+1]))}return e}static getCircleCenterByChord(t,e,n,a=!0,u=new Y){const l=this.getDistance(t,e);if(l===0)return u.x=1/0,u.y=1/0,u;yo.set((t.x+e.x)/2,(t.y+e.y)/2);const c=Math.sqrt(n*n-l*l/4),f=a?-1:1;return u.x=yo.x+f*c*(e.y-t.y)/l,u.y=yo.y-f*c*(e.x-t.x)/l,u}static isPointInCircle(t,e,n){return this.getDistance(n,t)<e}static isPointInPolygonByRay(t,e){let n=0;const a=new Y().copy(t),u=new Y,l=new Y;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((d,y)=>d-y);f[0]<a.y&&f[1]>a.y&&(u.x<a.x||l.x<a.x)&&n++}return n%2===1}static whichSideOfSegment(t,e,n){return(e.x-t.x)*(n.y-t.y)-(n.x-t.x)*(e.y-t.y)}static getIntersectionOfSegments(t,e,n,a,u=!1,l=new Y){const c=(a.y-n.y)*(e.x-t.x)-(a.x-n.x)*(e.y-t.y);if(c===0)return l.makeEmpty();const f=(a.x-n.x)*(t.y-n.y)-(a.y-n.y)*(t.x-n.x),d=(e.x-t.x)*(t.y-n.y)-(e.y-t.y)*(t.x-n.x),y=f/c,A=d/c;return u&&(y<0||y>1||A<0||A>1)?l.makeEmpty():(l.x=t.x+y*(e.x-t.x),l.y=t.y+y*(e.y-t.y),l)}static getConvexHullByGrahamScan(t,e=!1,n=[]){if(!t||!t.length)return n;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{n.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&&n.push(t[u]),n}static getPointsWithMatrix3(t,e){const n=[];if(!t)return n;for(let a=0,u=t.length;a<u;a++)n.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 n}static getPointsApplyMatrix3(t,e=[]){for(let n=0,a=e.length;n<a;n++){const u=t.elements[0]*e[n].x+t.elements[3]*e[n].y+t.elements[6],l=t.elements[1]*e[n].x+t.elements[4]*e[n].y+t.elements[7];e[n].x=u,e[n].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,n=this.y,a=t.elements;return this.x=a[0]*e+a[3]*n+a[6],this.y=a[1]*e+a[4]*n+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 n=this.length();return this.divideScalar(n||1).multiplyScalar(Math.max(t,Math.min(e,n)))}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 Y(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,n=this.y-t.y;return e*e+n*n}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.dot(this))}lerp(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this}lerpVectors(t,e,n){return this.x=t.x+(e.x-t.x)*n,this.y=t.y+(e.y-t.y)*n,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.min(this.x,t),this.y=Math.min(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),n=Math.sin(t),a=this.x,u=this.y;return this.x=a*e-u*n,this.y=a*n+u*e,this}rotateAround(t,e){const n=Math.cos(e),a=Math.sin(e),u=this.x-t.x,l=this.y-t.y;return this.x=u*n-l*a+t.x,this.y=u*a+l*n+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 yo=new Y,Fg=Object.freeze(Object.defineProperty({__proto__:null,default:Y},Symbol.toStringTag,{value:"Module"}));var Wa={exports:{}};/**
|
|
6
6
|
* @license
|
|
7
7
|
* Lodash <https://lodash.com/>
|
|
8
8
|
* Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
@@ -69,4 +69,4 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
69
69
|
`,"Instead, pass the .innerHTML of the element, or use a function that","returns a cloned version of the element instead.",`
|
|
70
70
|
|
|
71
71
|
`,`1) content: element.innerHTML
|
|
72
|
-
`,"2) content: () => element.cloneNode(true)"].join(" "))}var c=a.reduce(function(f,d){var y=d&&Wy(d,n);return y&&f.push(y),f},[]);return sa(r)?c[0]:c}ua.defaultProps=ir,ua.setDefaultProps=ky,ua.currentInput=ti,Object.assign({},nf,{effect:function(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow)}}),ua.setDefaultProps({render:Hf});let Vy=0;const $i=ua(document.body,{theme:"translucent",animation:"scale",inertia:!0,delay:[200,100],content:"",allowHTML:!0,placement:"left-start",trigger:"manual",arrow:!0});class Xo{constructor(t,e){this.container=t,this.text=e,t?this.container=t:this.container=document.getElementsByTagName("body")[0],this.text=e}name="Label";id="Label"+Vy++;el;position=new Y;get isMounted(){return $i.state.isMounted}get isShown(){return $i.state.isShown}destroy(){this.text="",this.position.identity()}setHtml(t=""){return this.text=t,this}update(t){t&&(this.position.copy(t),$i.show())}async show(t){if(t)return await this.hide(),this.position.copy(t),$i.setContent(this.text),$i.setProps({getReferenceClientRect:()=>({width:0,height:0,right:this.position.x,left:this.position.x,bottom:this.position.y,top:this.position.y,x:this.position.x,y:this.position.y,toJSON(){}})}),$i.clearDelayTimeouts(),$i.show(),new Promise(e=>{Mt.delay(function(){e()},300)})}async hide(){return $i.hide(),new Promise(t=>{Mt.delay(function(){t()},100)})}}let $y=0;class zy extends Ir{name="DummyPoint";id="dummyPoint"+$y++;container;offset=new Y;el;label;radius=10;position=new Y;worldPosition=new Y;userData;constructor(t,e){var a,u;super(),t?this.container=t:this.container=document.getElementsByTagName("body")[0];let n=this.container.getBoundingClientRect();this.offset.set(n.left,n.top),this.userData=e,(a=this.userData)!=null&&a.type||Mt.set(this,"userData.type",gn.DEFAULT),this.initDom(),this.setType((u=this.userData)==null?void 0:u.type),this.mount(),this.initLabel()}destroy(){var t;super.destroy(),this.unmount(),(t=this.label)==null||t.destroy()}get isMounted(){var t;return!!((t=this.el)!=null&&t.parentNode)}mount(){var t;this.el&&((t=this.el)!=null&&t.parentNode||this.container.appendChild(this.el))}unmount(){var t,e,n,a;(e=(t=this.el)==null?void 0:t.parentNode)==null||e.removeChild(this.el),(n=this.el)==null||n.remove(),(a=this.label)==null||a.hide()}setText(t=""){return this.el?(this.el.innerText=t,this):this}initDom(){var t;this.el=document.createElement("div"),this.el.setAttribute("id",this.id),this.el.setAttribute("class","dummy-point"),this.el.setAttribute(Kn+"-id",(t=this.userData)==null?void 0:t.value)}initLabel(){var t;(t=this.userData)!=null&&t.label&&(this.label=new Xo(this.container,this.userData.label))}setActive(t){return t?(Xs(this.el,"active"),this.showLabel()):(Zs(this.el,"active"),this.hideLabel()),this}showLabel(){var t;(t=this.label)==null||t.show(Gy.copy(this.position).add(this.offset).subScalar(this.radius))}hideLabel(){var t;(t=this.label)==null||t.hide()}setType(t){var n;if(!this.userData)return this;const e=(n=this.userData)==null?void 0:n.type;return t||(t=gn.DEFAULT),e&&Za(this.el,e)&&Zs(this.el,e),this.userData.type=t,Xs(this.el,this.userData.type),this}update(t,e=!1){!t||!this.isMounted||(e||t.subScalar(this.radius).round(),this.position.copy(t),this.el.style.transform=`translate3D(${this.position.x}px, ${this.position.y}px, 0)`)}}const Gy=new Y;let Yy=0;class Xy extends Ir{name="DummyRect";id="dummyRect"+Yy++;container;offset=new Y;el;radius=10;position=new Y;worldPosition=new Y;label;userData;constructor(t,e){super(),t?this.container=t:this.container=document.getElementsByTagName("body")[0];let n=this.container.getBoundingClientRect();this.offset.set(n.left,n.top),this.userData=e,this.initDom(),this.mount(),this.initLabel()}destroy(){var t;super.destroy(),this.unmount(),(t=this.label)==null||t.destroy()}get isMounted(){var t;return!!((t=this.el)!=null&&t.parentNode)}mount(){this.container.appendChild(this.el)}unmount(){var t,e,n,a;this.setText(""),(e=(t=this.el)==null?void 0:t.parentNode)==null||e.removeChild(this.el),(n=this.el)==null||n.remove(),(a=this.label)==null||a.hide()}initDom(){var t;this.el=document.createElement("div"),this.el.setAttribute("id",this.id),this.el.setAttribute("class","dummy-rect"),this.el.setAttribute(Kn+"-id",((t=this.userData)==null?void 0:t.rmId)||"undefined")}initLabel(){this.label=new Xo(this.container,"")}setText(t=""){return this.el.innerText=t,this}setActive(t){return t?Xs(this.el,"active"):Zs(this.el,"active"),this}showLabel(){var t;(t=this.label)==null||t.show(Zy.copy(this.position).add(this.offset).subScalar(this.radius))}hideLabel(){var t;(t=this.label)==null||t.hide()}setType(t){var n;if(!this.userData)return this;const e=(n=this.userData)==null?void 0:n.type;return t=gn.DEFAULT,e&&Za(this.el,e)&&Zs(this.el,e),this.userData.type=t,Xs(this.el,this.userData.type),this}update(t,e=!1){!t||!this.isMounted||(e||t.subScalar(this.radius).round(),this.position.copy(t),this.el.style.transform=`translate3D(${this.position.x}px, ${this.position.y}px, 0)`)}}const Zy=new Y;class Qy extends Ir{name="Dummies";container;controller;scene;viewMatrix=new re;dummies=[];rmMap=new Map;mergedMap=new Map;cameraUpdateHandler=this.handleCameraUpdate.bind(this);controllerTapHandler=this.handleControllerTap.bind(this);constructor(t,e){super(),this.container=t,this.controller=e,this.bindEvents()}destroy(){this.unbindEvents(),super.destroy(),this.clearDummies()}bindEvents(){this.controller.camera.addEventListener(Qa.UPDATE,this.cameraUpdateHandler),this.controller.addEventListener(_t.TAP,this.controllerTapHandler)}unbindEvents(){this.controller.camera.removeEventListener(Qa.UPDATE,this.cameraUpdateHandler),this.controller.removeEventListener(_t.TAP,this.controllerTapHandler)}bindScene(t){this.scene=t}update(t){var e,n,a;if(t){this.viewMatrix.copy(t);for(let u=0,l=(this.dummies||[]).length;u<l;u++){const c=this.dummies[u],f=(n=this.scene)==null?void 0:n.getElementById((e=c.userData)==null?void 0:e.rmId);if(f){const d=(a=this.scene)==null?void 0:a.chef.getElementBoundingBox(f.id);d==null||d.getCenter(zi),zi.applyMatrix3(this.viewMatrix).round(),c.position.copy(zi)}else zi.copy(c.worldPosition).applyMatrix3(this.viewMatrix).round(),c.update(zi)}this.mergeDummies()}}setDummies(t){this.clearDummies();for(let e=0,n=(t||[]).length;e<n;e++)this.addDummy(t[e])}addDummy(t){var a,u;const e=new zy(this.container,t);this.dummies.push(e);const n=(a=e.userData)==null?void 0:a.rmId;return n&&(this.rmMap.has(n)||this.rmMap.set(n,[]),(u=this.rmMap.get(n))==null||u.push(e)),e}removeDummy(t){var a;const e=this.dummies.indexOf(t);e>-1&&this.dummies.splice(e,1);const n=(a=t.userData)==null?void 0:a.rmId;if(n){const u=this.mergedMap.get(n);u==null||u.destroy(),this.mergedMap.delete(n);const l=this.rmMap.get(n);if(!l)return;if(l.length===1)this.rmMap.delete(n);else{const c=l.indexOf(t);c>-1&&(l.splice(c,1),this.rmMap.set(n,l))}}t.destroy()}clearDummies(t){var e,n,a;for(let u=(((e=this.dummies)==null?void 0:e.length)||0)-1;u>=0;u--){const l=this.dummies[u];(!t||(n=l==null?void 0:l.userData)!=null&&n.type&&(t!=null&&t.includes((a=l.userData)==null?void 0:a.type)))&&this.removeDummy(l)}t||(this.dummies.length=0,this.mergedMap.clear(),this.rmMap.clear())}mergeDummies(){this.rmMap.forEach((t,e)=>{var a,u,l,c;if((a=this.scene)==null?void 0:a.getElementById(e)){const f=(u=this.scene)==null?void 0:u.chef.getElementBoundingBox(e);if(!f)return;Zo.copy(f).applyMatrix3(this.viewMatrix).round(),Zo.getSize(zi);const d=t[0].radius,y=Zo.centralArrange(t.length,d*2,d*2);if(zi.x<d*3||zi.y<d*3){t.forEach(_=>_.unmount());const A=this.mergedMap.get(e);A==null||A.unmount()}else if(Array.isArray(y))this.mergedMap.has(e)&&((l=this.mergedMap.get(e))==null||l.unmount()),t.forEach((A,_)=>{A.isMounted||A.mount(),A.update(y[_])});else{t.forEach(C=>C.unmount());let A=this.mergedMap.get(e);if(A)A.isMounted||A.mount();else{const C=Mt.cloneDeep(t[0].userData)||{},F=Mt.reduce(t,(M,R)=>{var q,z;return(q=R.userData)!=null&&q.label&&M.push((z=R.userData)==null?void 0:z.label),M},[]);C.label=F.join(", ");const N=Mt.reduce(t,(M,R)=>{var q,z;return(q=R.userData)!=null&&q.value&&M.push((z=R.userData)==null?void 0:z.value),M},[]);C.value=N.join(","),C.rmId=e,A=new Xy(this.container,C),this.mergedMap.set(e,A)}A.setText(t.length.toString());const _=Mt.reduce(t,(C,F)=>{var N,M;return(N=F.userData)!=null&&N.label&&C.push((M=F.userData)==null?void 0:M.label),C},[]);(c=A.label)==null||c.setHtml(_.join(", <br />")),A.update(t[0].position)}}})}getDummyById(t){return this.dummies.find(e=>{var n;return((n=e.userData)==null?void 0:n.value)===t})}setActiveByIds(t){var e,n;if(this.resetActives(),!!t&&(Array.isArray(t)||(t=[t]),!!(t!=null&&t.length)))for(let a=0,u=t.length;a<u;a++){const l=this.getDummyById(t[a]);if(l&&l.setActive(!0),l&&((e=l.userData)!=null&&e.rmId)){const c=this.mergedMap.get((n=l.userData)==null?void 0:n.rmId);c&&c.setActive(!0)}}}resetActives(){this.dummies.forEach(t=>t.setActive(!1)),this.mergedMap.forEach(t=>t.setActive(!1))}showDummyLabel(t){if(!t)return;const e=this.getDummyById(t);e&&e.showLabel();const n=this.mergedMap.get(t);n&&n.showLabel()}async hideDummyLabel(){this.dummies.forEach(t=>t.hideLabel()),this.mergedMap.forEach(t=>t.hideLabel())}handleCameraUpdate(){this.update(this.controller.camera.viewMatrix)}handleControllerTap(t){var a,u,l,c,f;if((t==null?void 0:t.type)!==_t.TAP)return;const e=((a=t==null?void 0:t.e)==null?void 0:a.target)||((l=(u=t==null?void 0:t.e)==null?void 0:u.srcEvent)==null?void 0:l.target)||((f=(c=t==null?void 0:t.e)==null?void 0:c.srcEvent)==null?void 0:f.srcElement),n=e==null?void 0:e.getAttribute(Kn+"-id");n&&console.warn("【TODO】handleControllerTap: ",n)}}const zi=new Y,Zo=new St;(function(){return window[Wi.prefixed(window,"requestAnimationFrame")]||function(r){window.setTimeout(r,1e3/60)}})();class jy extends Ir{name="DragController";dragFake=!1;container;offset=new Y;controller;scene;raycaster;dummies;_els=[];_hms=new Map;_vos=new Map;_elMap=new Map;_panType=gn.SUCCESS;onPanHandler=this.handleOnPan.bind(this);panEndHandler=Mt.debounce(this.handlePanEnd.bind(this),500);constructor(t,e,n=!0){super(),this.container=t;let a=this.container.getBoundingClientRect();this.offset.set(a.left,a.top),this.controller=e,this.dummies=new Qy(t,e),this.raycaster=new l2,this.dragFake=n}destroy(){var t;super.destroy();for(let e=(((t=this._els)==null?void 0:t.length)||0)-1;e>=0;e--)this.drop(this._els[e]);this.dummies.destroy()}bindScene(t){var e;this.scene=t,(e=this.dummies)==null||e.bindScene(t)}drag(t,e){t&&(this._els.includes(t)||(this.bindEvent(t),this._els.push(t),this._vos.set(t,e)))}drop(t){if(!t)return;this.unbindEvent(t),this._vos.delete(t),this._elMap.delete(t);const e=this._els.findIndex(n=>n===t);e>-1&&this._els.splice(e,1)}bindEvent(t){if(!t)return;const e=new Wi.Manager(t,{domEvents:!0});e.add(new Wi.Pan({threshold:0,pointers:0})),e.on(["panstart","panmove","panend"].join(" "),this.onPanHandler),this._hms.set(t,e)}unbindEvent(t){if(!t)return;const e=this._hms.get(t);e&&(e.off(["panstart","panmove","panend"].join(" "),this.onPanHandler),e.destroy(),this._hms.delete(t))}handleOnPan(t){if(typeof t.preventDefault=="function"&&t.preventDefault(),typeof t.srcEvent.stopPropagation=="function"&&t.srcEvent.stopPropagation(),typeof t.srcEvent.stopImmediatePropagation=="function"&&t.srcEvent.stopImmediatePropagation(),!this.controller)return;t.type==="panstart"||t.isFirst?this.controller.enablePan=!1:t.type==="panmove"||t.type==="panend"&&(this.controller.enablePan=!0);const e=this._vos.get(t.target);if(!e)return;const n=Mt.cloneDeep(e);n.type=this._panType;const a=this._getDummy(t.target,n);oa.set(t.center.x,t.center.y).sub(this.offset),a.worldPosition.copy(oa).unproject(this.controller.camera),a.update(oa),this.panEndHandler({type:"panend",e:t})}handlePanEnd(t){if((t==null?void 0:t.type)!=="panend")return;const e=this.getDummies(!0);this.dispatchEvent({type:"panend",data:e})}getDummies(t=!0){const e=[];return this._els.forEach(n=>{var u;let a=this._vos.get(n);if(!(!a||a.type!==gn.SUCCESS)){if(t){const l=this._elMap.get(n);if(!l||!this.controller.camera)return;oa.copy(l.position),this.raycaster.setFromCamera(oa,this.controller.camera);const c=[];if((u=this.scene)==null||u.getIntersectObjects(this.raycaster,er.RM,c),!(c!=null&&c.length))return;a=Mt.cloneDeep(a),a.rmId=c[0].id}e.push(a)}}),e}setDummiesByVos(t){var e,n;for(let a=0,u=(t||[]).length;a<u;a++){const l=(e=this.dummies)==null?void 0:e.addDummy(t[a]);if(!l)continue;const c=Mt.cloneDeep(t[a]);delete c.rmId,delete c.wsId,this.drag(l.el,c)}(n=this.dummies)==null||n.update(this.controller.camera.viewMatrix)}clearDummies(t){var e,n;for(let a=(((e=this._els)==null?void 0:e.length)||0)-1;a>=0;a--){const u=this._vos.get(this._els[a]);(!t||t&&(u!=null&&u.type)&&t.includes(u.type))&&this.drop(this._els[a])}(n=this.dummies)==null||n.clearDummies(t)}getDummyById(t){return this.dummies.getDummyById(t)}highlightDummies(t){var e;(e=this.dummies)==null||e.setActiveByIds(t)}resetHighlightDummies(){var t;(t=this.dummies)==null||t.resetActives()}showDummyLabel(t){var e;(e=this.dummies)==null||e.showDummyLabel(t)}start(){}_getDummy(t,e){let n=this._elMap.get(t);if(n||(n=this.dummies.addDummy(e).setType(gn.SUCCESS),this._elMap.set(t,n)),n.isMounted||n.mount(),this.dummies.dummies.includes(n)||this.dummies.dummies.push(n),!this._elMap.get(n.el)){this._elMap.set(n.el,n);const u=Mt.cloneDeep(e);delete u.rmId,delete u.wsId,this.drag(n.el,u)}return n}}const oa=new Y;var ss=Object.freeze({Linear:Object.freeze({None:function(r){return r},In:function(r){return r},Out:function(r){return r},InOut:function(r){return r}}),Quadratic:Object.freeze({In:function(r){return r*r},Out:function(r){return r*(2-r)},InOut:function(r){return(r*=2)<1?.5*r*r:-.5*(--r*(r-2)-1)}}),Cubic:Object.freeze({In:function(r){return r*r*r},Out:function(r){return--r*r*r+1},InOut:function(r){return(r*=2)<1?.5*r*r*r:.5*((r-=2)*r*r+2)}}),Quartic:Object.freeze({In:function(r){return r*r*r*r},Out:function(r){return 1- --r*r*r*r},InOut:function(r){return(r*=2)<1?.5*r*r*r*r:-.5*((r-=2)*r*r*r-2)}}),Quintic:Object.freeze({In:function(r){return r*r*r*r*r},Out:function(r){return--r*r*r*r*r+1},InOut:function(r){return(r*=2)<1?.5*r*r*r*r*r:.5*((r-=2)*r*r*r*r+2)}}),Sinusoidal:Object.freeze({In:function(r){return 1-Math.sin((1-r)*Math.PI/2)},Out:function(r){return Math.sin(r*Math.PI/2)},InOut:function(r){return .5*(1-Math.sin(Math.PI*(.5-r)))}}),Exponential:Object.freeze({In:function(r){return r===0?0:Math.pow(1024,r-1)},Out:function(r){return r===1?1:1-Math.pow(2,-10*r)},InOut:function(r){return r===0?0:r===1?1:(r*=2)<1?.5*Math.pow(1024,r-1):.5*(-Math.pow(2,-10*(r-1))+2)}}),Circular:Object.freeze({In:function(r){return 1-Math.sqrt(1-r*r)},Out:function(r){return Math.sqrt(1- --r*r)},InOut:function(r){return(r*=2)<1?-.5*(Math.sqrt(1-r*r)-1):.5*(Math.sqrt(1-(r-=2)*r)+1)}}),Elastic:Object.freeze({In:function(r){return r===0?0:r===1?1:-Math.pow(2,10*(r-1))*Math.sin((r-1.1)*5*Math.PI)},Out:function(r){return r===0?0:r===1?1:Math.pow(2,-10*r)*Math.sin((r-.1)*5*Math.PI)+1},InOut:function(r){return r===0?0:r===1?1:(r*=2,r<1?-.5*Math.pow(2,10*(r-1))*Math.sin((r-1.1)*5*Math.PI):.5*Math.pow(2,-10*(r-1))*Math.sin((r-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(r){var t=1.70158;return r===1?1:r*r*((t+1)*r-t)},Out:function(r){var t=1.70158;return r===0?0:--r*r*((t+1)*r+t)+1},InOut:function(r){var t=2.5949095;return(r*=2)<1?.5*(r*r*((t+1)*r-t)):.5*((r-=2)*r*((t+1)*r+t)+2)}}),Bounce:Object.freeze({In:function(r){return 1-ss.Bounce.Out(1-r)},Out:function(r){return r<1/2.75?7.5625*r*r:r<2/2.75?7.5625*(r-=1.5/2.75)*r+.75:r<2.5/2.75?7.5625*(r-=2.25/2.75)*r+.9375:7.5625*(r-=2.625/2.75)*r+.984375},InOut:function(r){return r<.5?ss.Bounce.In(r*2)*.5:ss.Bounce.Out(r*2-1)*.5+.5}}),generatePow:function(r){return r===void 0&&(r=4),r=r<Number.EPSILON?Number.EPSILON:r,r=r>1e4?1e4:r,{In:function(t){return Math.pow(t,r)},Out:function(t){return 1-Math.pow(1-t,r)},InOut:function(t){return t<.5?Math.pow(t*2,r)/2:(1-Math.pow(2-t*2,r))/2+.5}}}}),as=function(){return performance.now()},qf=function(){function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,t)}return r.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(e){return t._tweens[e]})},r.prototype.removeAll=function(){this._tweens={}},r.prototype.add=function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];for(var a=0,u=e;a<u.length;a++){var l=u[a];(t=l._group)===null||t===void 0||t.remove(l),l._group=this,this._tweens[l.getId()]=l,this._tweensAddedDuringUpdate[l.getId()]=l}},r.prototype.remove=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,a=t;n<a.length;n++){var u=a[n];u._group=void 0,delete this._tweens[u.getId()],delete this._tweensAddedDuringUpdate[u.getId()]}},r.prototype.allStopped=function(){return this.getAll().every(function(t){return!t.isPlaying()})},r.prototype.update=function(t,e){t===void 0&&(t=as()),e===void 0&&(e=!0);var n=Object.keys(this._tweens);if(n.length!==0)for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var a=0;a<n.length;a++){var u=this._tweens[n[a]],l=!e;u&&u.update(t,l)===!1&&!e&&this.remove(u)}n=Object.keys(this._tweensAddedDuringUpdate)}},r}(),xn={Linear:function(r,t){var e=r.length-1,n=e*t,a=Math.floor(n),u=xn.Utils.Linear;return t<0?u(r[0],r[1],n):t>1?u(r[e],r[e-1],e-n):u(r[a],r[a+1>e?e:a+1],n-a)},Bezier:function(r,t){for(var e=0,n=r.length-1,a=Math.pow,u=xn.Utils.Bernstein,l=0;l<=n;l++)e+=a(1-t,n-l)*a(t,l)*r[l]*u(n,l);return e},CatmullRom:function(r,t){var e=r.length-1,n=e*t,a=Math.floor(n),u=xn.Utils.CatmullRom;return r[0]===r[e]?(t<0&&(a=Math.floor(n=e*(1+t))),u(r[(a-1+e)%e],r[a],r[(a+1)%e],r[(a+2)%e],n-a)):t<0?r[0]-(u(r[0],r[0],r[1],r[1],-n)-r[0]):t>1?r[e]-(u(r[e],r[e],r[e-1],r[e-1],n-e)-r[e]):u(r[a?a-1:0],r[a],r[e<a+1?e:a+1],r[e<a+2?e:a+2],n-a)},Utils:{Linear:function(r,t,e){return(t-r)*e+r},Bernstein:function(r,t){var e=xn.Utils.Factorial;return e(r)/e(t)/e(r-t)},Factorial:function(){var r=[1];return function(t){var e=1;if(r[t])return r[t];for(var n=t;n>1;n--)e*=n;return r[t]=e,e}}(),CatmullRom:function(r,t,e,n,a){var u=(e-r)*.5,l=(n-t)*.5,c=a*a,f=a*c;return(2*t-2*e+u+l)*f+(-3*t+3*e-2*u-l)*c+u*a+t}}},Qo=function(){function r(){}return r.nextId=function(){return r._nextId++},r._nextId=0,r}(),jo=new qf,Ky=function(){function r(t,e){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=ss.Linear.None,this._interpolationFunction=xn.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Qo.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,typeof e=="object"?(this._group=e,e.add(this)):e===!0&&(this._group=jo,jo.add(this))}return r.prototype.getId=function(){return this._id},r.prototype.isPlaying=function(){return this._isPlaying},r.prototype.isPaused=function(){return this._isPaused},r.prototype.getDuration=function(){return this._duration},r.prototype.to=function(t,e){if(e===void 0&&(e=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=e<0?0:e,this},r.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t<0?0:t,this},r.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},r.prototype.start=function(t,e){if(t===void 0&&(t=as()),e===void 0&&(e=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var n in this._valuesStartRepeat)this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||e){if(this._propertiesAreSetUp=!0,!this._isDynamic){var a={};for(var u in this._valuesEnd)a[u]=this._valuesEnd[u];this._valuesEnd=a}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,e)}return this},r.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},r.prototype._setupProperties=function(t,e,n,a,u){for(var l in n){var c=t[l],f=Array.isArray(c),d=f?"array":typeof c,y=!f&&Array.isArray(n[l]);if(!(d==="undefined"||d==="function")){if(y){var A=n[l];if(A.length===0)continue;for(var _=[c],C=0,F=A.length;C<F;C+=1){var N=this._handleRelativeValue(c,A[C]);if(isNaN(N)){y=!1,console.warn("Found invalid interpolation list. Skipping.");break}_.push(N)}y&&(n[l]=_)}if((d==="object"||f)&&c&&!y){e[l]=f?[]:{};var M=c;for(var R in M)e[l][R]=M[R];a[l]=f?[]:{};var A=n[l];if(!this._isDynamic){var q={};for(var R in A)q[R]=A[R];n[l]=A=q}this._setupProperties(M,e[l],A,a[l],u)}else(typeof e[l]>"u"||u)&&(e[l]=c),f||(e[l]*=1),y?a[l]=n[l].slice().reverse():a[l]=e[l]||0}}},r.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},r.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},r.prototype.pause=function(t){return t===void 0&&(t=as()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this)},r.prototype.resume=function(t){return t===void 0&&(t=as()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this)},r.prototype.stopChainedTweens=function(){for(var t=0,e=this._chainedTweens.length;t<e;t++)this._chainedTweens[t].stop();return this},r.prototype.group=function(t){return t?(t.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},r.prototype.remove=function(){var t;return(t=this._group)===null||t===void 0||t.remove(this),this},r.prototype.delay=function(t){return t===void 0&&(t=0),this._delayTime=t,this},r.prototype.repeat=function(t){return t===void 0&&(t=0),this._initialRepeat=t,this._repeat=t,this},r.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},r.prototype.yoyo=function(t){return t===void 0&&(t=!1),this._yoyo=t,this},r.prototype.easing=function(t){return t===void 0&&(t=ss.Linear.None),this._easingFunction=t,this},r.prototype.interpolation=function(t){return t===void 0&&(t=xn.Linear),this._interpolationFunction=t,this},r.prototype.chain=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this._chainedTweens=t,this},r.prototype.onStart=function(t){return this._onStartCallback=t,this},r.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},r.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},r.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},r.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},r.prototype.onStop=function(t){return this._onStopCallback=t,this},r.prototype.update=function(t,e){var n=this,a;if(t===void 0&&(t=as()),e===void 0&&(e=r.autoStartOnUpdate),this._isPaused)return!0;var u;if(!this._goToEnd&&!this._isPlaying)if(e)this.start(t,!0);else return!1;if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var l=t-this._startTime,c=this._duration+((a=this._repeatDelayTime)!==null&&a!==void 0?a:this._delayTime),f=this._duration+this._repeat*c,d=function(){if(n._duration===0||l>f)return 1;var N=Math.trunc(l/c),M=l-N*c,R=Math.min(M/n._duration,1);return R===0&&l===n._duration?1:R},y=d(),A=this._easingFunction(y);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,A),this._onUpdateCallback&&this._onUpdateCallback(this._object,y),this._duration===0||l>=this._duration)if(this._repeat>0){var _=Math.min(Math.trunc((l-this._duration)/c)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=_);for(u in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[u]=="string"&&(this._valuesStartRepeat[u]=this._valuesStartRepeat[u]+parseFloat(this._valuesEnd[u])),this._yoyo&&this._swapEndStartRepeatValues(u),this._valuesStart[u]=this._valuesStartRepeat[u];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=c*_,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var C=0,F=this._chainedTweens.length;C<F;C++)this._chainedTweens[C].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},r.prototype._updateProperties=function(t,e,n,a){for(var u in n)if(e[u]!==void 0){var l=e[u]||0,c=n[u],f=Array.isArray(t[u]),d=Array.isArray(c),y=!f&&d;y?t[u]=this._interpolationFunction(c,a):typeof c=="object"&&c?this._updateProperties(t[u],l,c,a):(c=this._handleRelativeValue(l,c),typeof c=="number"&&(t[u]=l+(c-l)*a))}},r.prototype._handleRelativeValue=function(t,e){return typeof e!="string"?e:e.charAt(0)==="+"||e.charAt(0)==="-"?t+parseFloat(e):parseFloat(e)},r.prototype._swapEndStartRepeatValues=function(t){var e=this._valuesStartRepeat[t],n=this._valuesEnd[t];typeof n=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(n):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=e},r.autoStartOnUpdate=!1,r}(),Jy="25.0.0",tv=Qo.nextId,ei=jo,ev=ei.getAll.bind(ei),rv=ei.removeAll.bind(ei),iv=ei.add.bind(ei),nv=ei.remove.bind(ei),sv=ei.update.bind(ei),iu={Easing:ss,Group:qf,Interpolation:xn,now:as,Sequence:Qo,nextId:tv,Tween:Ky,VERSION:Jy,getAll:ev,removeAll:rv,add:iv,remove:nv,update:sv};class av{name="View";params;visible=!0;cvs;scene;scenes=[];camera;controller;tween;animateDuration;constructor(t={}){this.params=t,this.animateDuration=this.params.animateDuration||300,this.cvs=t.cvs,this.camera=new jc(t.camera||{})}destroy(){this.controller&&this.controller.destroy(),this.camera&&this.camera.destroy(),this.scene&&this.scene.destroy(),this.scenes.forEach(t=>t.destroy()),this.scenes.length=0}bindScene(t){this.scenes.push(t),this.reset(),this.scene=t,t.isStatic}saveCameraPosition(t){us.copy(this.camera.boundingBoxWorld);const e=t?vr+t:vr;sessionStorage.setItem(e,JSON.stringify(us))}clearCameraPosition(t){const e=t?vr+t:vr;sessionStorage.setItem(e,"")}restoreCameraPosition(t){const e=t?vr+t:vr,n=sessionStorage.getItem(e);n&&(us.copy(JSON.parse(n)),this.resetCameraByBoundingBox(us,!0))}fullscreen(t=10,e=!1){this.scene&&(this.scene.boundingBox.isEmpty()&&this.scene.computeBoundingBox(),us.copy(this.scene.boundingBox).expandByVector(nu.set(t,t)),this.resetCameraByBoundingBox(us,e))}handleCameraChanged(t){console.warn("handleCameraChanged: ",t.target.camera.position.z,t.target.camera.scaled.x)}reset(){}async resetCameraByBoundingBox(t,e=!1){if(!this.camera)return;if(!t||t.isEmpty())throw new Error("BoundingBox empty");if(!e)return this.camera.setByBox(t),Promise.resolve();const n=this.camera.getCameraPosition();t.getCenter(nu),t.getSize(Ko);const a=Math.max(Ko.x/this.camera.width,Ko.y/this.camera.height),u={x:nu.x,y:nu.y,z:0,s:a,r:0};await this.animateCamera(n,u)}async animateCamera(t,e){return this.controller&&(this.controller.enabled=!1),this.tween&&this.tween.stop(),new Promise(n=>{this.tween=new iu.Tween(t).to(e,this.animateDuration).easing(iu.Easing.Exponential.Out).onUpdate(a=>{this.camera.position.set(a.x,a.y),this.camera.scaled.set(a.s,a.s),this.camera.rotation.set(a.r,a.r),this.camera.update()}).onComplete(()=>{this.controller&&(this.controller.enabled=!0),n()}).start()})}computeBoundingBox(t,e=new St){return!t||!t.length||(e.makeEmpty(),t.forEach(n=>e.union(n.computeBoundingBox()))),e}expandScenesBoundingBox(t,e=new St){t.forEach(n=>n.boundingBox.union(e))}update(t){this.tween&&this.tween.update(t)}}const vr="camera_position_",nu=new Y,Ko=new Y,us=new St;class uv extends Ir{name="SvgView";params;container;offset=new Y;camera;controller;scene;p1=new Y;p2=new Y;graph;multiSelector;dummiesController;zoomToSelectEnable=!1;zoomBox=new St;selectEnable=!1;multiSelectEnable=!1;tween;animateDuration;label;controllerPanStartHandler=this.handlePanStart.bind(this);controllerPanEndHandler=this.handlePanEnd.bind(this);controllerWheelStartHandler=this.handlePanStart.bind(this);controllerWheelEndHandler=this.handlePanEnd.bind(this);controllerPanMoveHandler=this.handleControllerPanMove.bind(this);controllerPointerOverHandler=this.handleControllerPointerOver.bind(this);multiSelectorSelectedHandler=this.handleMultiSelectorSelected.bind(this);_currentAssetId;constructor(t={}){super(),this.params=t,this.params.zoomToSelectEnable&&(this.zoomToSelectEnable=!0),this.params.selectEnable&&(this.selectEnable=!0),this.params.multiSelectEnable&&(this.multiSelectEnable=!0),this.params.camera||(this.params.camera={}),this.params.camera.flipY=!0,this.animateDuration=this.params.animateDuration||300,this.camera=new jc(this.params.camera),this.container=this.params.containerId?document.getElementById(this.params.containerId):Zt.window.document.getElementsByTagName("body")[0];let e=this.container.getBoundingClientRect();this.offset.set(e.left,e.top),this.controller=new Qc(this.container,this.camera,!0),this.graph=new Kc(this.container),this.multiSelector=new o2(this.container,this.controller),this.dummiesController=new jy(this.container,this.controller),this.bindControllerEvents(),this.initLabel()}destroy(){var t;this.unbindControllerEvents(),super.destroy(),(t=this.label)==null||t.destroy()}initLabel(){this.label=new Xo(this.container,"")}showAssetsLabel(t,e,n){var u,l,c,f,d;if(!e)return;t||(t=(u=this.scene)==null?void 0:u.assetType);const a=(l=this.scene)==null?void 0:l.chef.getElementBoundingBox(e);a&&!a.isEmpty()&&(n||(n=(c=this.scene)==null?void 0:c.getAssetLabelById(t,e),n||(n=e)),(f=this.label)==null||f.setHtml(n),En.copy(a.min).applyMatrix3(this.camera.viewMatrix).add(this.offset).round(),(d=this.label)==null||d.show(En))}async hideAssetsLabel(){var t;return(t=this.label)==null?void 0:t.hide()}bindScene(t){var e;this.scene=t,this.multiSelector.bindScene(this.scene),(e=this.dummiesController)==null||e.bindScene(this.scene)}resize(){var t;(t=this.camera)==null||t.resize(),console.log("【svgView】resize: ",this.params.width,this.params.height)}async setByBox(t,e=!0){await this.resetCameraByBoundingBox(t,e)}zoomIn(){this.controller.scaled=this.camera.scaled.x*.9,this.controller.update()}zoomOut(){this.controller.scaled=this.camera.scaled.x*1.1,this.controller.update()}zoomToSelectEnableChanged(t){console.log("TODO: zoomToSelectEnableChanged: ",t),this.zoomToSelectEnable=t,this.controller.enablePan=!this.zoomToSelectEnable}selectEnableChanged(t){this.selectEnable=!!t,this.multiSelector.selectEnableChanged(t)}multiSelectEnableChanged(t){this.multiSelectEnable=!!t,this.multiSelector.multiSelectEnableChanged(t)}getIntersectObjects(t,e,n=[]){return this.scene?this.scene.getIntersectObjects(t,e,n):n}async focusAt(t,e=500){return this.camera?(zt.setFromCenterAndSize(t,En.set(e*2,e*2)),this.resetCameraByBoundingBox(zt,!0)):Promise.resolve()}async focusAtById(t,e=500){var a;const n=(a=this.scene)==null?void 0:a.getBoundingBoxById(t);if(console.log("focusAtById: ",t,n==null?void 0:n.toString()),n){n.expandByScalar(e),zt.copy(this.camera.boundingBoxWorld),zt.containsBox(n)||await this.resetCameraByBoundingBox(n,!0);return}}async focusAtDummy(t,e=500){var u,l;const n=this.dummiesController.getDummyById(t),a=(u=n==null?void 0:n.userData)==null?void 0:u.rmId;if(a){const c=(l=this.scene)==null?void 0:l.getBoundingBoxById(a);if(c){c.expandByScalar(e),zt.copy(this.camera.boundingBoxWorld),zt.containsBox(c)||await this.resetCameraByBoundingBox(c,!0);return}}if(n!=null&&n.position&&!(n!=null&&n.position.isEmpty())){zt.setFromCenterAndSize(n.worldPosition,En.set(e*2,e*2)),this.camera.boundingBoxWorld.containsBox(zt)||await this.resetCameraByBoundingBox(zt,!0);return}}async resetCameraByBoundingBox(t,e=!1){if(!this.camera)return Promise.resolve();if(!t||t.isEmpty())throw new Error("BoundingBox empty");if(!e)return this.camera.setByBox(t),Promise.resolve();const n=this.camera.getCameraPosition();t.getCenter(En),t.getSize(Jo);const a=Math.max(Jo.x/this.camera.width,Jo.y/this.camera.height),u={x:En.x,y:En.y,z:0,s:a,r:0};await this.animateCamera(n,u)}async animateCamera(t,e){return this.controller&&(this.controller.enabled=!1),this.tween&&this.tween.stop(),new Promise(n=>{this.tween=new iu.Tween(t).to(e,this.animateDuration).easing(iu.Easing.Exponential.Out).onUpdate(a=>{this.camera.position.set(a.x,a.y),this.camera.scaled.set(a.s,a.s),this.camera.rotation.set(a.r,a.r),this.camera.update()}).onComplete(()=>{this.controller&&(this.controller.enabled=!0),n()}).start()})}fullscreen(){this.scene&&(this.scene&&!this.scene.viewBox.isEmpty()?zt.copy(this.scene.viewBox):(this.scene.updateMatrixWorld(!0),this.scene.computeBoundingBox(),zt.copy(this.scene.boundingBox)),this.resetCameraByBoundingBox(zt,!0))}saveCameraPosition(t){zt.copy(this.camera.boundingBoxWorld);const e=t?vr+t:vr;sessionStorage.setItem(e,JSON.stringify(zt))}restoreCameraPosition(t){const e=t?vr+t:vr,n=sessionStorage.getItem(e);if(!n)return this.fullscreen();zt.copy(JSON.parse(n)),this.resetCameraByBoundingBox(zt,!0)}clearCameraPosition(t){const e=t?vr+t:vr;sessionStorage.setItem(e,"")}bindControllerEvents(){this.controller.addEventListener(_t.PAN_START,this.controllerPanStartHandler),this.controller.addEventListener(_t.PAN_END,this.controllerPanEndHandler),this.controller.addEventListener(_t.WHEEL_START,this.controllerWheelStartHandler),this.controller.addEventListener(_t.WHEEL_END,this.controllerWheelEndHandler),this.controller.addEventListener(_t.PAN_MOVE,this.controllerPanMoveHandler),this.controller.addEventListener(_t.POINTEROVER,this.controllerPointerOverHandler),this.multiSelector.addEventListener(No.SELECTED,this.multiSelectorSelectedHandler)}unbindControllerEvents(){this.controller.removeEventListener(_t.PAN_START,this.controllerPanStartHandler),this.controller.removeEventListener(_t.PAN_END,this.controllerPanEndHandler),this.controller.removeEventListener(_t.WHEEL_START,this.controllerWheelStartHandler),this.controller.removeEventListener(_t.WHEEL_END,this.controllerWheelEndHandler),this.controller.removeEventListener(_t.PAN_MOVE,this.controllerPanMoveHandler),this.controller.removeEventListener(_t.POINTEROVER,this.controllerPointerOverHandler),this.multiSelector.removeEventListener(No.SELECTED,this.multiSelectorSelectedHandler)}handlePanStart(t){if(!((t==null?void 0:t.type)!==_t.PAN_START&&(t==null?void 0:t.type)!==_t.WHEEL_START)&&this.zoomToSelectEnable){this.p1.copy(t.data.screenCoords),zt.makeEmpty().expandByPoint(this.p1),this.graph.draw(zt);return}}handlePanEnd(t){if(!((t==null?void 0:t.type)!==_t.PAN_END&&(t==null?void 0:t.type)!==_t.WHEEL_END)&&this.zoomToSelectEnable){this.p2.copy(t.data.screenCoords),zt.makeEmpty().expandByPoint(this.p1).expandByPoint(this.p2).unproject(this.controller.camera),this.setByBox(zt),this.graph.hide(),zt.makeEmpty();return}}handleControllerPanMove(t){(t==null?void 0:t.type)===_t.PAN_MOVE&&this.zoomToSelectEnable&&(this.p2.copy(t.data.screenCoords),zt.makeEmpty().expandByPoint(this.p1).expandByPoint(this.p2),this.graph.draw(zt))}handleControllerPointerOver(t){var a,u,l,c,f;const e=((a=t==null?void 0:t.e)==null?void 0:a.target)||((l=(u=t==null?void 0:t.e)==null?void 0:u.srcEvent)==null?void 0:l.target);let n=e==null?void 0:e.id;(n==null?void 0:n.indexOf("dummy"))>-1?(n=e.getAttribute(Kn+"-id"),n&&this._currentAssetId!==n&&this.dispatchEvent({type:"POINTEROVER",data:{id:n,assetType:"dummy"},e:t.e})):n&&((c=this.scene)!=null&&c.isBelongsToAssetType(n,er.WS))?this._currentAssetId!==n&&this.dispatchEvent({type:"POINTEROVER",data:{id:n,assetType:er.WS},e:t.e}):n&&((f=this.scene)!=null&&f.isBelongsToAssetType(n,er.RM))?this._currentAssetId!==n&&this.dispatchEvent({type:"POINTEROVER",data:{id:n,assetType:er.RM},e:t.e}):(this._currentAssetId=void 0,this.dispatchEvent({type:"POINTERLEAVE",e:t.e})),this._currentAssetId=n}handleMultiSelectorSelected(t){console.warn("handleMultiSelectorSelected:",t.data),this.dispatchEvent({type:"SELECTED",data:t.data})}setDummies(t){this.dummiesController.setDummiesByVos(t)}clearDummies(t){this.dummiesController.clearDummies(t)}update(t){this.tween&&this.tween.update(t)}}const zt=new St,En=new Y,Jo=new Y;var An=(r=>(r.SELECTED="SELECTED",r.POINTEROVER="POINTEROVER",r.POINTERLEAVE="POINTERLEAVE",r))(An||{});class ov extends Ir{name="SvgApp";params;renderer;view;scene;loadingScene;mainScene;zoomToSelectEnable=!1;zoomBox=new St;selectEnable=!1;multiSelectEnable=!1;runningHandler=this.running.bind(this);pointerOverHandler=this.handlePointerOver.bind(this);pointerLeaveHandler=this.handlePointerLeave.bind(this);multiSelectorSelectedHandler=this.handleMultiSelectorSelected.bind(this);dragEndHandler=this.handleDragEnd.bind(this);constructor(t={}){super(),this.params=t,this.params.zoomToSelectEnable&&(this.zoomToSelectEnable=!0),this.params.selectEnable&&(this.selectEnable=!0),this.params.multiSelectEnable&&(this.multiSelectEnable=!0),this.params.defaultFill||(this.params.defaultFill=Wt.getMoreTransparent(he.white,.3)),this.params.defaultStroke||(this.params.defaultStroke=Wt.getMoreTransparent(he.darkWhite,.8)),this.params.infoFill||(this.params.infoFill=Wt.getMoreTransparent(he.gray,.3)),this.params.infoStroke||(this.params.infoStroke=Wt.getMoreTransparent(he.darkGray,.8)),this.params.primaryFill||(this.params.primaryFill=Wt.getMoreTransparent(he.blue,.3)),this.params.primaryStroke||(this.params.primaryStroke=Wt.getMoreTransparent(he.darkBlue,.8)),this.params.successFill||(this.params.successFill=Wt.getMoreTransparent(he.green,.3)),this.params.successStroke||(this.params.successStroke=Wt.getMoreTransparent(he.darkGreen,.8)),this.params.warningFill||(this.params.warningFill=Wt.getMoreTransparent(he.yellow,.3)),this.params.warningStroke||(this.params.warningStroke=Wt.getMoreTransparent(he.darkYellow,.8)),this.params.dangerFill||(this.params.dangerFill=Wt.getMoreTransparent(he.red,.3)),this.params.dangerStroke||(this.params.dangerStroke=Wt.getMoreTransparent(he.darkRed,.8)),this.params.activeFill||(this.params.activeFill=Wt.getMoreTransparent(he.brown,.3)),this.params.activeStroke||(this.params.activeStroke=Wt.getMoreTransparent(he.darkBrown,.8)),this.renderer=new e0(t),this.view=new uv(t),this.trans2LoadingScene()}get isLoadingScene(){var t;return((t=this.scene)==null?void 0:t.name)==="SvgLoadingScene"}destroy(){var t,e;this.unbindAssetsEvents(),super.destroy(),(t=this.view)==null||t.destroy(),(e=this.renderer)==null||e.destroy()}resize(){var t,e;(t=this.renderer)==null||t.resize(),(e=this.view)==null||e.resize()}isScene(t){var e;return((e=this.scene)==null?void 0:e.uuid)===t.uuid}removeScene(t){this.scene=void 0,t==null||t.destroy()}trans2MainScene(){var t,e;(t=this.scene)==null||t.unmount(),this.scene=this.mainScene,this.scene.isMounted||this.scene.mount(),this.view.bindScene(this.scene),(e=this.loadingScene)==null||e.destroy()}trans2LoadingScene(){var e,n;console.log("trans2LoadingScene: ",this.params),this.loadingScene=new a2(this.params),(e=this.scene)==null||e.unmount(),this.scene=this.loadingScene,this.scene.isMounted||this.scene.mount();const t=new St().copy(this.loadingScene.viewBox).expandByVector(new Y(1,1).multiplyScalar(360));this.view.setByBox(t,!1),(n=this.mainScene)==null||n.destroy()}start(){requestAnimationFrame(this.runningHandler)}running(t){this.scene&&(this.scene.update(),this.renderer.render(this.scene,this.view.camera),this.view.update(t),requestAnimationFrame(this.runningHandler))}async load(t,e,n=2,a){this.isLoadingScene||this.trans2LoadingScene(),await lc(this.params.syncDelay);const u=await new Ac().loadAsync(t);return this.loadByString(u,e,n)}loadByString(t,e,n=2){this.mainScene=new Yc(this.params),this.mainScene.bind(t),this.view.setByBox(this.mainScene.viewBox);const a=this.mainScene.getLayers(n);return e!=null&&e.length||(e=Mt.map(a,"label")),this.mainScene.showDefaultLayers(e,!0),this.trans2MainScene(),this.bindAssetsEvents(),console.log("svgApp.loadByString: ",a),a}setSkeletons(t){var e;(e=this.scene)==null||e.setSkeletonLayers(t)}getLayers(t=2){var e;return(e=this.scene)==null?void 0:e.getLayers(t)}updateLayersVisibility(t,e=!1){var n;(n=this.scene)==null||n.updateLayersVisibility(t,e)}selectByIds(t){var e;(e=this.scene)==null||e.selectByIds(t,this.multiSelectEnable)}clearSelectedById(t){var e;Array.isArray(t)?t.forEach(n=>{var a;return(a=this.scene)==null?void 0:a.clearSelectedById(n)}):(e=this.scene)==null||e.clearSelectedById(t)}clearSelected(){var t;(t=this.scene)==null||t.clearSelected()}getSelectedIds(){var t;return(t=this.scene)==null?void 0:t.getSelectedIds()}async targetByIds(t){var e;this.scene&&((e=this.scene)==null||e.selectByIds(t,!1),tl.copy(this.scene.getSelectedBoundingBox()).expandByVector(new Y(1,1).multiplyScalar(100)),await lc(100),tl.isEmpty()||await this.view.setByBox(tl))}linkAssetsByTree(t){var e;(e=this.scene)==null||e.linkAssetsByTree(t)}setViewAreaLimit(t){this.renderer.viewAreaLimit=t}setAssetType(t,e){var n;(n=this.scene)==null||n.setAssetType(t,e)}getAssetIdsByType(t){var e;return(e=this.scene)==null?void 0:e.getAssetIdsByType(t)}clearFill(){var t;(t=this.scene)==null||t.clearFillOrStroke("fill")}clearFillByIds(t){var e;(e=this.scene)==null||e.clearFillOrStrokeByIds(t,"fill")}setFillByIds(t,e){var n;(n=this.scene)==null||n.setFillOrStrokeByIds(t,e,"fill")}clearStroke(){var t;(t=this.scene)==null||t.clearFillOrStroke("stroke")}clearStrokeByIds(t){var e;(e=this.scene)==null||e.clearFillOrStrokeByIds(t,"stroke")}setStrokeByIds(t,e){var n;(n=this.scene)==null||n.setFillOrStrokeByIds(t,e,"stroke")}getLegend(){var t;return(t=this.scene)==null?void 0:t.getLegend()}setAssetLabels(t,e){var n;(n=this.scene)==null||n.setAssetLabels(t,e)}clearAssetLabels(){var t;(t=this.scene)==null||t.clearAssetLabels()}fullscreen(){this.view.fullscreen()}saveCameraPosition(t){this.view.saveCameraPosition(t)}restoreCameraPosition(t){this.view.restoreCameraPosition(t)}clearCameraPosition(t){this.view.clearCameraPosition(t)}zoomIn(){this.view.zoomIn()}zoomOut(){this.view.zoomOut()}focusAt(t,e=1e3){var n;(n=this.view)==null||n.focusAt(t,e)}async focusAtById(t,e=1e3){var n;return(n=this.view)==null?void 0:n.focusAtById(t,e)}async focusAtDummy(t,e=1e3){var n;return(n=this.view)==null?void 0:n.focusAtDummy(t,e)}showAssetsLabel(t,e,n){var a,u,l,c;e?t==="dummy"?(l=(u=(a=this.view)==null?void 0:a.dummiesController)==null?void 0:u.dummies)==null||l.showDummyLabel(e):(c=this.view)==null||c.showAssetsLabel(t,e,n):this.hideAssetsLabel()}hideAssetsLabel(){var t,e,n,a;(n=(e=(t=this.view)==null?void 0:t.dummiesController)==null?void 0:e.dummies)==null||n.hideDummyLabel(),(a=this.view)==null||a.hideAssetsLabel()}highlightAssets(t,e){var n;(n=this.scene)==null||n.highlightAssets(t,e)}resetHighlightAssets(t){var e;(e=this.scene)==null||e.resetHighlightAssets(t)}fontZoomIn(){var t;(t=this.scene)==null||t.chef.fontZoom("asset-labels",1.1)}fontZoomOut(){var t;(t=this.scene)==null||t.chef.fontZoom("asset-labels",.9)}zoomToSelectEnableChanged(t){this.view.zoomToSelectEnableChanged(t)}selectEnableChanged(t){this.selectEnable=!!t,this.view.selectEnableChanged(t)}multiSelectEnableChanged(t){this.multiSelectEnable=!!t,this.view.multiSelectEnableChanged(t)}socialDistanceEnableChanged(t){var e;(e=this.scene)==null||e.socialDistanceEnableChanged(t)}getBoundingBoxById(t,e=!0){var a;if(!t)return;const n=(a=this.scene)==null?void 0:a.getBoundingBoxById(t);return n&&e&&n.applyMatrix3(this.view.camera.viewMatrix).round(),n}setDummies(t){var e;(e=this.view)==null||e.setDummies(t)}clearDummies(t){var e;(e=this.view)==null||e.clearDummies(t)}highlightDummies(t){var e,n;(n=(e=this.view)==null?void 0:e.dummiesController)==null||n.highlightDummies(t)}resetHighlightDummies(){var t,e;(e=(t=this.view)==null?void 0:t.dummiesController)==null||e.resetHighlightDummies()}bindAssetsEvents(){var t,e;this.view.addEventListener(An.POINTEROVER,this.pointerOverHandler),this.view.addEventListener(An.POINTERLEAVE,this.pointerLeaveHandler),this.view.addEventListener(An.SELECTED,this.multiSelectorSelectedHandler),(e=(t=this.view)==null?void 0:t.dummiesController)==null||e.addEventListener("panend",this.dragEndHandler)}unbindAssetsEvents(){var t,e;this.view.removeEventListener(An.POINTEROVER,this.pointerOverHandler),this.view.removeEventListener(An.POINTERLEAVE,this.pointerLeaveHandler),this.view.removeEventListener(An.SELECTED,this.multiSelectorSelectedHandler),(e=(t=this.view)==null?void 0:t.dummiesController)==null||e.removeEventListener("panend",this.dragEndHandler)}handleMultiSelectorSelected(t){this.dispatchEvent({type:"SELECTED",data:t.data})}handlePointerOver(t){this.dispatchEvent({type:"pointerover",data:t.data,e:t.e})}handlePointerLeave(t){this.dispatchEvent({type:"pointerleave",data:t.data,e:t.e})}handleInitializeStart(){console.log("App.initializeStart ...")}async handleInitializeComplete(t){console.log("App.initializeComplete ...",t),t!=null&&t.data&&this.launch()}handleDragEnd(t){this.dispatchEvent(t)}launch(){console.log("App.launch ...")}}const tl=new St;var Wf=(r=>(r.SELECTED="SELECTED",r.POINTEROVER="pointerover",r.POINTERLEAVE="pointerleave",r.DRAG_END="panend",r))(Wf||{});class lv{static cached=new Map;static cachedCanvas=new Map;static destroy(){this.cached.clear(),this.cachedCanvas.clear()}static createCanvas(t){var a;if(!((a=Zt.window)!=null&&a.document))throw new Error("environment not support");let e;t.containerId&&(e=Zt.window.document.getElementById(t.containerId)),e||(e=Zt.window.document.getElementsByTagName("body")[0]);let n;if(t.canvasId&&(n=Zt.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=Zt.dpr),n)this.resizeCanvas(n,t.width,t.height,t.dpr);else{if(n=this.createHtmlCanvas(t.width,t.height,t.dpr),!n)throw new Error("error environment");t.canvasId&&n.setAttribute("id",t.canvasId),e==null||e.appendChild(n)}return n.style.background=t.background||"transparent",n}static getContext2D(t,e={}){const n={alpha:!0,willReadFrequently:!!e.willReadFrequently},a=t.getContext("2d",n);if(!a)throw new Error("getContext2D error");return a.scale(e.dpr||1,e.dpr||1),a}static resizeCanvas(t,e,n,a=1){t instanceof OffscreenCanvas?(t.width=e,t.height=n):t instanceof HTMLCanvasElement&&(t.setAttribute("width",(e*a).toString()),t.setAttribute("height",(n*a).toString()),t.style.width=e+"px",t.style.height=n+"px",t.style.padding="0",t.style.margin="0",t.style.border="0",t.style.imageRendering="pixelated",t.style.transform="translateZ(0)")}static async getImageBitmapByCanvasAsync(t){if(t)return t instanceof OffscreenCanvas?t.transferToImageBitmap():t instanceof HTMLCanvasElement?await createImageBitmap(t):void 0}static get(t,e,n,a=1){let u=this.cached.get(t);return u||(u=this.create(e,n,a),this.set(t,u)),this.resizeCanvas(u,e,n,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,n=1){var a;if((a=Zt.window)!=null&&a.OffscreenCanvas)return new OffscreenCanvas(t,e);throw new Error("environment does not support")}static createHtmlCanvas(t,e,n=1){if(!Zt.window.document)throw new Error("environment does not support");const a=Zt.window.document.createElement("canvas");return this.resizeCanvas(a,t,e,n),a}static measureText(t,e,n=new Y){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 n.set(c,f),n}}class hv extends av{name="OpeView";constructor(t={}){super(t),this.initController(this.camera)}destroy(){this.controller&&this.controller.destroy(),super.destroy()}initController(t){let e=this.params.cvs;!e&&this.params.canvasId&&(e=document.getElementById(this.params.canvasId)),!(!this.params.controls||!t||!e)&&(this.controller&&this.controller.destroy(),this.controller=new Qc(e,t))}handleCameraChanged(t){console.warn("handleCameraChanged: ",t.target.camera.position.z,t.target.camera.scaled.x)}}var ri=(r=>(r.INIT="init",r.LOAD="load",r.LOADED="loaded",r.GET_LAYERS="getLayers",r.TERMINATE="terminate",r.CAMERA_SYNC="cameraSync",r.CAMERA_CHANGED="cameraChanged",r.SCENES_CHANGED="scenesChanged",r.UPDATE_LAYERS_VISIBILITY="updateLayersVisibility",r))(ri||{});class cv extends Ir{cvs;worker;view;boundingBox=new St;workerMessageHandler=this.handleWorkerMessage.bind(this);cameraHandler=this.handleCameraChanged.bind(this);runningHandler=this.running.bind(this);constructor(t={},e){super(),t.workerRender=!0,this.params=t,Zt.config=t;const n=lv.createCanvas(t);if(!n.transferControlToOffscreen)throw new Error("not support transferControlToOffscreen");this.cvs=n.transferControlToOffscreen(),this.view=new hv(t),this.view.camera.name="mainCamera",this.view.camera.resize(),this.worker=e,this.bindEvents()}destroy(){super.destroy(),this.unbindEvents(),this.worker.postMessage({task:ri.TERMINATE}),this.worker.terminate()}bindEvents(){var t,e;(e=(t=this.view)==null?void 0:t.camera)==null||e.addEventListener(Qa.UPDATE,this.cameraHandler),this.worker.addEventListener("message",this.workerMessageHandler)}unbindEvents(){var t,e;(e=(t=this.view)==null?void 0:t.controller)==null||e.removeEventListener(_t.CAMERA_CHANGED,this.cameraHandler),this.worker.removeEventListener("message",this.workerMessageHandler)}handleWorkerMessage(t){var e,n,a,u,l;switch(t.data.task){case ri.CAMERA_SYNC:if(!((e=t==null?void 0:t.data)!=null&&e.data))break;const c=JSON.parse(t.data.data);(a=(n=this.view)==null?void 0:n.camera)==null||a.fromJSON(c),this.view.camera.computeBoundingBox(),console.log("CAMERA_SYNC: ",c);break;case ri.CAMERA_CHANGED:const{t:f,r:d,s:y}=t.data.data;console.log("CAMERA_CHANGED: ",this.view.camera.width,f,d,y),(l=(u=this.view)==null?void 0:u.camera)==null||l.setTRS(f,d,y);break;case ri.SCENES_CHANGED:const{box:A}=t.data.data;if(!A)return;this.boundingBox.fromString(A);break;case"pong":console.log("response: pong");break}}handleCameraChanged(t){this.worker.postMessage({task:ri.CAMERA_CHANGED,data:t.data})}promiseWorkerResponse(t,e){return new Promise((n,a)=>{const u=c=>{var f,d,y;((f=c==null?void 0:c.data)==null?void 0:f.task)===t&&(this.worker.removeEventListener("message",u),this.worker.removeEventListener("error",l),console.log("AppOffscreen::response: ",(d=c==null?void 0:c.data)==null?void 0:d.task,(y=c==null?void 0:c.data)==null?void 0:y.data),n(c.data.data))},l=c=>{this.worker.removeEventListener("message",u),this.worker.removeEventListener("error",l),a(c.error)};this.worker.addEventListener("message",u),this.worker.addEventListener("error",l),this.worker.postMessage({task:t,data:e})})}resize(){var t;(t=this.view.camera)==null||t.resize()}async load(t,e){return this.promiseWorkerResponse(ri.LOAD,{url:t,layers:e})}async getLayers(t=2){return this.promiseWorkerResponse(ri.GET_LAYERS,{lv:t})}async fullscreen(){await this.view.resetCameraByBoundingBox(this.boundingBox,!0)}saveCameraPosition(t){this.view.saveCameraPosition(t)}restoreCameraPosition(t){this.view.restoreCameraPosition(t)}clearCameraPosition(t){this.view.clearCameraPosition(t)}updateLayersVisibility(t,e=!1){this.worker.postMessage({task:ri.UPDATE_LAYERS_VISIBILITY,data:{ids:t,visible:e}})}start(){const t=this.cvs,e=JSON.stringify(this.params);this.worker.postMessage({task:ri.INIT,data:{cvs:t,config:e}},[t]),requestAnimationFrame(this.runningHandler)}running(t){var e;(e=this.view)==null||e.update(t),requestAnimationFrame(this.runningHandler)}stop(){}}function fv(r){return new Worker("/environment.worker.js",{type:"module",name:r==null?void 0:r.name})}function pv(r){return new Worker("/renderer.worker.js",{type:"module",name:r==null?void 0:r.name})}le.AppEnum=Wf,le.AppOffscreen=cv,le.AssetTypeEnum=er,le.Box2=Ug,le.Color=Wt,le.ColorsEnum=he,le.EnvironmentWorker=fv,le.GLOB=Zt,le.LayerTypeEnum=Vs,le.Monitor=Pt,le.RendererWorker=pv,le.SvgApp=ov,le.Vector2=Fg,le.defaultConfig=Un,Object.defineProperty(le,Symbol.toStringTag,{value:"Module"})});
|
|
72
|
+
`,"2) content: () => element.cloneNode(true)"].join(" "))}var c=a.reduce(function(f,d){var y=d&&Wy(d,n);return y&&f.push(y),f},[]);return sa(r)?c[0]:c}ua.defaultProps=ir,ua.setDefaultProps=ky,ua.currentInput=ti,Object.assign({},nf,{effect:function(t){var e=t.state,n={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};Object.assign(e.elements.popper.style,n.popper),e.styles=n,e.elements.arrow&&Object.assign(e.elements.arrow.style,n.arrow)}}),ua.setDefaultProps({render:Hf});let Vy=0;const $i=ua(document.body,{theme:"translucent",animation:"scale",inertia:!0,delay:[200,100],content:"",allowHTML:!0,placement:"left-start",trigger:"manual",arrow:!0});class Xo{constructor(t,e){this.container=t,this.text=e,t?this.container=t:this.container=document.getElementsByTagName("body")[0],this.text=e}name="Label";id="Label"+Vy++;el;position=new Y;get isMounted(){return $i.state.isMounted}get isShown(){return $i.state.isShown}destroy(){this.text="",this.position.identity()}setHtml(t=""){return this.text=t,this}update(t){t&&(this.position.copy(t),$i.show())}async show(t){if(t)return await this.hide(),this.position.copy(t),$i.setContent(this.text),$i.setProps({getReferenceClientRect:()=>({width:0,height:0,right:this.position.x,left:this.position.x,bottom:this.position.y,top:this.position.y,x:this.position.x,y:this.position.y,toJSON(){}})}),$i.clearDelayTimeouts(),$i.show(),new Promise(e=>{Mt.delay(function(){e()},300)})}async hide(){return $i.hide(),new Promise(t=>{Mt.delay(function(){t()},100)})}}let $y=0;class zy extends Ir{name="DummyPoint";id="dummyPoint"+$y++;container;offset=new Y;el;label;radius=10;position=new Y;worldPosition=new Y;userData;constructor(t,e){var a,u;super(),t?this.container=t:this.container=document.getElementsByTagName("body")[0];let n=this.container.getBoundingClientRect();this.offset.set(n.left,n.top),this.userData=e,(a=this.userData)!=null&&a.type||Mt.set(this,"userData.type",gn.DEFAULT),this.initDom(),this.setType((u=this.userData)==null?void 0:u.type),this.mount(),this.initLabel()}destroy(){var t;super.destroy(),this.unmount(),(t=this.label)==null||t.destroy()}get isMounted(){var t;return!!((t=this.el)!=null&&t.parentNode)}mount(){var t;this.el&&((t=this.el)!=null&&t.parentNode||this.container.appendChild(this.el))}unmount(){var t,e,n,a;(e=(t=this.el)==null?void 0:t.parentNode)==null||e.removeChild(this.el),(n=this.el)==null||n.remove(),(a=this.label)==null||a.hide()}setText(t=""){return this.el?(this.el.innerText=t,this):this}initDom(){var t;this.el=document.createElement("div"),this.el.setAttribute("id",this.id),this.el.setAttribute("class","dummy-point"),this.el.setAttribute(Kn+"-id",(t=this.userData)==null?void 0:t.value)}initLabel(){var t;(t=this.userData)!=null&&t.label&&(this.label=new Xo(this.container,this.userData.label))}setActive(t){return t?(Xs(this.el,"active"),this.showLabel()):(Zs(this.el,"active"),this.hideLabel()),this}showLabel(){var t;(t=this.label)==null||t.show(Gy.copy(this.position).add(this.offset).subScalar(this.radius))}hideLabel(){var t;(t=this.label)==null||t.hide()}setType(t){var n;if(!this.userData)return this;const e=(n=this.userData)==null?void 0:n.type;return t||(t=gn.DEFAULT),e&&Za(this.el,e)&&Zs(this.el,e),this.userData.type=t,Xs(this.el,this.userData.type),this}update(t,e=!1){!t||!this.isMounted||(e||t.subScalar(this.radius).round(),this.position.copy(t),this.el.style.transform=`translate3D(${this.position.x}px, ${this.position.y}px, 0)`)}}const Gy=new Y;let Yy=0;class Xy extends Ir{name="DummyRect";id="dummyRect"+Yy++;container;offset=new Y;el;radius=10;position=new Y;worldPosition=new Y;label;userData;constructor(t,e){super(),t?this.container=t:this.container=document.getElementsByTagName("body")[0];let n=this.container.getBoundingClientRect();this.offset.set(n.left,n.top),this.userData=e,this.initDom(),this.mount(),this.initLabel()}destroy(){var t;super.destroy(),this.unmount(),(t=this.label)==null||t.destroy()}get isMounted(){var t;return!!((t=this.el)!=null&&t.parentNode)}mount(){this.container.appendChild(this.el)}unmount(){var t,e,n,a;this.setText(""),(e=(t=this.el)==null?void 0:t.parentNode)==null||e.removeChild(this.el),(n=this.el)==null||n.remove(),(a=this.label)==null||a.hide()}initDom(){var t;this.el=document.createElement("div"),this.el.setAttribute("id",this.id),this.el.setAttribute("class","dummy-rect"),this.el.setAttribute(Kn+"-id",((t=this.userData)==null?void 0:t.rmId)||"undefined")}initLabel(){this.label=new Xo(this.container,"")}setText(t=""){return this.el.innerText=t,this}setActive(t){return t?Xs(this.el,"active"):Zs(this.el,"active"),this}showLabel(){var t;(t=this.label)==null||t.show(Zy.copy(this.position).add(this.offset).subScalar(this.radius))}hideLabel(){var t;(t=this.label)==null||t.hide()}setType(t){var n;if(!this.userData)return this;const e=(n=this.userData)==null?void 0:n.type;return t=gn.DEFAULT,e&&Za(this.el,e)&&Zs(this.el,e),this.userData.type=t,Xs(this.el,this.userData.type),this}update(t,e=!1){!t||!this.isMounted||(e||t.subScalar(this.radius).round(),this.position.copy(t),this.el.style.transform=`translate3D(${this.position.x}px, ${this.position.y}px, 0)`)}}const Zy=new Y;class Qy extends Ir{name="Dummies";container;controller;scene;viewMatrix=new re;dummies=[];rmMap=new Map;mergedMap=new Map;cameraUpdateHandler=this.handleCameraUpdate.bind(this);controllerTapHandler=this.handleControllerTap.bind(this);constructor(t,e){super(),this.container=t,this.controller=e,this.bindEvents()}destroy(){this.unbindEvents(),super.destroy(),this.clearDummies()}bindEvents(){this.controller.camera.addEventListener(Qa.UPDATE,this.cameraUpdateHandler),this.controller.addEventListener(_t.TAP,this.controllerTapHandler)}unbindEvents(){this.controller.camera.removeEventListener(Qa.UPDATE,this.cameraUpdateHandler),this.controller.removeEventListener(_t.TAP,this.controllerTapHandler)}bindScene(t){this.scene=t}update(t){var e,n,a;if(t){this.viewMatrix.copy(t);for(let u=0,l=(this.dummies||[]).length;u<l;u++){const c=this.dummies[u],f=(n=this.scene)==null?void 0:n.getElementById((e=c.userData)==null?void 0:e.rmId);if(f){const d=(a=this.scene)==null?void 0:a.chef.getElementBoundingBox(f.id);d==null||d.getCenter(zi),zi.applyMatrix3(this.viewMatrix).round(),c.position.copy(zi)}else zi.copy(c.worldPosition).applyMatrix3(this.viewMatrix).round(),c.update(zi)}this.mergeDummies()}}setDummies(t){this.clearDummies();for(let e=0,n=(t||[]).length;e<n;e++)this.addDummy(t[e])}addDummy(t){var a,u;const e=new zy(this.container,t);this.dummies.push(e);const n=(a=e.userData)==null?void 0:a.rmId;return n&&(this.rmMap.has(n)||this.rmMap.set(n,[]),(u=this.rmMap.get(n))==null||u.push(e)),e}removeDummy(t){var a;const e=this.dummies.indexOf(t);e>-1&&this.dummies.splice(e,1);const n=(a=t.userData)==null?void 0:a.rmId;if(n){const u=this.mergedMap.get(n);u==null||u.destroy(),this.mergedMap.delete(n);const l=this.rmMap.get(n);if(!l)return;if(l.length===1)this.rmMap.delete(n);else{const c=l.indexOf(t);c>-1&&(l.splice(c,1),this.rmMap.set(n,l))}}t.destroy()}clearDummies(t){var e,n,a;for(let u=(((e=this.dummies)==null?void 0:e.length)||0)-1;u>=0;u--){const l=this.dummies[u];(!t||(n=l==null?void 0:l.userData)!=null&&n.type&&(t!=null&&t.includes((a=l.userData)==null?void 0:a.type)))&&this.removeDummy(l)}t||(this.dummies.length=0,this.mergedMap.clear(),this.rmMap.clear())}mergeDummies(){this.rmMap.forEach((t,e)=>{var a,u,l,c;if((a=this.scene)==null?void 0:a.getElementById(e)){const f=(u=this.scene)==null?void 0:u.chef.getElementBoundingBox(e);if(!f)return;Zo.copy(f).applyMatrix3(this.viewMatrix).round(),Zo.getSize(zi);const d=t[0].radius,y=Zo.centralArrange(t.length,d*2,d*2);if(zi.x<d*3||zi.y<d*3){t.forEach(_=>_.unmount());const A=this.mergedMap.get(e);A==null||A.unmount()}else if(Array.isArray(y))this.mergedMap.has(e)&&((l=this.mergedMap.get(e))==null||l.unmount()),t.forEach((A,_)=>{A.isMounted||A.mount(),A.update(y[_])});else{t.forEach(C=>C.unmount());let A=this.mergedMap.get(e);if(A)A.isMounted||A.mount();else{const C=Mt.cloneDeep(t[0].userData)||{},F=Mt.reduce(t,(M,R)=>{var q,z;return(q=R.userData)!=null&&q.label&&M.push((z=R.userData)==null?void 0:z.label),M},[]);C.label=F.join(", ");const N=Mt.reduce(t,(M,R)=>{var q,z;return(q=R.userData)!=null&&q.value&&M.push((z=R.userData)==null?void 0:z.value),M},[]);C.value=N.join(","),C.rmId=e,A=new Xy(this.container,C),this.mergedMap.set(e,A)}A.setText(t.length.toString());const _=Mt.reduce(t,(C,F)=>{var N,M;return(N=F.userData)!=null&&N.label&&C.push((M=F.userData)==null?void 0:M.label),C},[]);(c=A.label)==null||c.setHtml(_.join(", <br />")),A.update(t[0].position)}}})}getDummyById(t){return this.dummies.find(e=>{var n;return((n=e.userData)==null?void 0:n.value)===t})}setActiveByIds(t){var e,n;if(this.resetActives(),!!t&&(Array.isArray(t)||(t=[t]),!!(t!=null&&t.length)))for(let a=0,u=t.length;a<u;a++){const l=this.getDummyById(t[a]);if(l&&l.setActive(!0),l&&((e=l.userData)!=null&&e.rmId)){const c=this.mergedMap.get((n=l.userData)==null?void 0:n.rmId);c&&c.setActive(!0)}}}resetActives(){this.dummies.forEach(t=>t.setActive(!1)),this.mergedMap.forEach(t=>t.setActive(!1))}showDummyLabel(t){if(!t)return;const e=this.getDummyById(t);e&&e.showLabel();const n=this.mergedMap.get(t);n&&n.showLabel()}async hideDummyLabel(){this.dummies.forEach(t=>t.hideLabel()),this.mergedMap.forEach(t=>t.hideLabel())}handleCameraUpdate(){this.update(this.controller.camera.viewMatrix)}handleControllerTap(t){var a,u,l,c,f;if((t==null?void 0:t.type)!==_t.TAP)return;const e=((a=t==null?void 0:t.e)==null?void 0:a.target)||((l=(u=t==null?void 0:t.e)==null?void 0:u.srcEvent)==null?void 0:l.target)||((f=(c=t==null?void 0:t.e)==null?void 0:c.srcEvent)==null?void 0:f.srcElement),n=e==null?void 0:e.getAttribute(Kn+"-id");n&&console.warn("【TODO】handleControllerTap: ",n)}}const zi=new Y,Zo=new St;(function(){return window[Wi.prefixed(window,"requestAnimationFrame")]||function(r){window.setTimeout(r,1e3/60)}})();class jy extends Ir{name="DragController";dragFake=!1;container;offset=new Y;controller;scene;raycaster;dummies;_els=[];_hms=new Map;_vos=new Map;_elMap=new Map;_panType=gn.SUCCESS;onPanHandler=this.handleOnPan.bind(this);panEndHandler=Mt.debounce(this.handlePanEnd.bind(this),500);constructor(t,e,n=!0){super(),this.container=t;let a=this.container.getBoundingClientRect();this.offset.set(a.left,a.top),this.controller=e,this.dummies=new Qy(t,e),this.raycaster=new l2,this.dragFake=n}destroy(){var t;super.destroy();for(let e=(((t=this._els)==null?void 0:t.length)||0)-1;e>=0;e--)this.drop(this._els[e]);this.dummies.destroy()}bindScene(t){var e;this.scene=t,(e=this.dummies)==null||e.bindScene(t)}drag(t,e){t&&(this._els.includes(t)||(this.bindEvent(t),this._els.push(t),this._vos.set(t,e)))}drop(t){if(!t)return;this.unbindEvent(t),this._vos.delete(t),this._elMap.delete(t);const e=this._els.findIndex(n=>n===t);e>-1&&this._els.splice(e,1)}bindEvent(t){if(!t)return;const e=new Wi.Manager(t,{domEvents:!0});e.add(new Wi.Pan({threshold:0,pointers:0})),e.on(["panstart","panmove","panend"].join(" "),this.onPanHandler),this._hms.set(t,e)}unbindEvent(t){if(!t)return;const e=this._hms.get(t);e&&(e.off(["panstart","panmove","panend"].join(" "),this.onPanHandler),e.destroy(),this._hms.delete(t))}handleOnPan(t){if(typeof t.preventDefault=="function"&&t.preventDefault(),typeof t.srcEvent.stopPropagation=="function"&&t.srcEvent.stopPropagation(),typeof t.srcEvent.stopImmediatePropagation=="function"&&t.srcEvent.stopImmediatePropagation(),!this.controller)return;t.type==="panstart"||t.isFirst?this.controller.enablePan=!1:t.type==="panmove"||t.type==="panend"&&(this.controller.enablePan=!0);const e=this._vos.get(t.target);if(!e)return;const n=Mt.cloneDeep(e);n.type=this._panType;const a=this._getDummy(t.target,n);oa.set(t.center.x,t.center.y).sub(this.offset),a.worldPosition.copy(oa).unproject(this.controller.camera),a.update(oa),this.panEndHandler({type:"panend",e:t})}handlePanEnd(t){if((t==null?void 0:t.type)!=="panend")return;const e=this.getDummies(!0);this.dispatchEvent({type:"panend",data:e})}getDummies(t=!0){const e=[];return this._els.forEach(n=>{var u;let a=this._vos.get(n);if(!(!a||a.type!==gn.SUCCESS)){if(t){const l=this._elMap.get(n);if(!l||!this.controller.camera)return;oa.copy(l.position),this.raycaster.setFromCamera(oa,this.controller.camera);const c=[];if((u=this.scene)==null||u.getIntersectObjects(this.raycaster,er.RM,c),!(c!=null&&c.length))return;a=Mt.cloneDeep(a),a.rmId=c[0].id}e.push(a)}}),e}setDummiesByVos(t){var e,n;for(let a=0,u=(t||[]).length;a<u;a++){const l=(e=this.dummies)==null?void 0:e.addDummy(t[a]);if(!l)continue;const c=Mt.cloneDeep(t[a]);delete c.rmId,delete c.wsId,this.drag(l.el,c)}(n=this.dummies)==null||n.update(this.controller.camera.viewMatrix)}clearDummies(t){var e,n;for(let a=(((e=this._els)==null?void 0:e.length)||0)-1;a>=0;a--){const u=this._vos.get(this._els[a]);(!t||t&&(u!=null&&u.type)&&t.includes(u.type))&&this.drop(this._els[a])}(n=this.dummies)==null||n.clearDummies(t)}getDummyById(t){return this.dummies.getDummyById(t)}highlightDummies(t){var e;(e=this.dummies)==null||e.setActiveByIds(t)}resetHighlightDummies(){var t;(t=this.dummies)==null||t.resetActives()}showDummyLabel(t){var e;(e=this.dummies)==null||e.showDummyLabel(t)}start(){}_getDummy(t,e){let n=this._elMap.get(t);if(n||(n=this.dummies.addDummy(e).setType(gn.SUCCESS),this._elMap.set(t,n)),n.isMounted||n.mount(),this.dummies.dummies.includes(n)||this.dummies.dummies.push(n),!this._elMap.get(n.el)){this._elMap.set(n.el,n);const u=Mt.cloneDeep(e);delete u.rmId,delete u.wsId,this.drag(n.el,u)}return n}}const oa=new Y;var ss=Object.freeze({Linear:Object.freeze({None:function(r){return r},In:function(r){return r},Out:function(r){return r},InOut:function(r){return r}}),Quadratic:Object.freeze({In:function(r){return r*r},Out:function(r){return r*(2-r)},InOut:function(r){return(r*=2)<1?.5*r*r:-.5*(--r*(r-2)-1)}}),Cubic:Object.freeze({In:function(r){return r*r*r},Out:function(r){return--r*r*r+1},InOut:function(r){return(r*=2)<1?.5*r*r*r:.5*((r-=2)*r*r+2)}}),Quartic:Object.freeze({In:function(r){return r*r*r*r},Out:function(r){return 1- --r*r*r*r},InOut:function(r){return(r*=2)<1?.5*r*r*r*r:-.5*((r-=2)*r*r*r-2)}}),Quintic:Object.freeze({In:function(r){return r*r*r*r*r},Out:function(r){return--r*r*r*r*r+1},InOut:function(r){return(r*=2)<1?.5*r*r*r*r*r:.5*((r-=2)*r*r*r*r+2)}}),Sinusoidal:Object.freeze({In:function(r){return 1-Math.sin((1-r)*Math.PI/2)},Out:function(r){return Math.sin(r*Math.PI/2)},InOut:function(r){return .5*(1-Math.sin(Math.PI*(.5-r)))}}),Exponential:Object.freeze({In:function(r){return r===0?0:Math.pow(1024,r-1)},Out:function(r){return r===1?1:1-Math.pow(2,-10*r)},InOut:function(r){return r===0?0:r===1?1:(r*=2)<1?.5*Math.pow(1024,r-1):.5*(-Math.pow(2,-10*(r-1))+2)}}),Circular:Object.freeze({In:function(r){return 1-Math.sqrt(1-r*r)},Out:function(r){return Math.sqrt(1- --r*r)},InOut:function(r){return(r*=2)<1?-.5*(Math.sqrt(1-r*r)-1):.5*(Math.sqrt(1-(r-=2)*r)+1)}}),Elastic:Object.freeze({In:function(r){return r===0?0:r===1?1:-Math.pow(2,10*(r-1))*Math.sin((r-1.1)*5*Math.PI)},Out:function(r){return r===0?0:r===1?1:Math.pow(2,-10*r)*Math.sin((r-.1)*5*Math.PI)+1},InOut:function(r){return r===0?0:r===1?1:(r*=2,r<1?-.5*Math.pow(2,10*(r-1))*Math.sin((r-1.1)*5*Math.PI):.5*Math.pow(2,-10*(r-1))*Math.sin((r-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(r){var t=1.70158;return r===1?1:r*r*((t+1)*r-t)},Out:function(r){var t=1.70158;return r===0?0:--r*r*((t+1)*r+t)+1},InOut:function(r){var t=2.5949095;return(r*=2)<1?.5*(r*r*((t+1)*r-t)):.5*((r-=2)*r*((t+1)*r+t)+2)}}),Bounce:Object.freeze({In:function(r){return 1-ss.Bounce.Out(1-r)},Out:function(r){return r<1/2.75?7.5625*r*r:r<2/2.75?7.5625*(r-=1.5/2.75)*r+.75:r<2.5/2.75?7.5625*(r-=2.25/2.75)*r+.9375:7.5625*(r-=2.625/2.75)*r+.984375},InOut:function(r){return r<.5?ss.Bounce.In(r*2)*.5:ss.Bounce.Out(r*2-1)*.5+.5}}),generatePow:function(r){return r===void 0&&(r=4),r=r<Number.EPSILON?Number.EPSILON:r,r=r>1e4?1e4:r,{In:function(t){return Math.pow(t,r)},Out:function(t){return 1-Math.pow(1-t,r)},InOut:function(t){return t<.5?Math.pow(t*2,r)/2:(1-Math.pow(2-t*2,r))/2+.5}}}}),as=function(){return performance.now()},qf=function(){function r(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,t)}return r.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(e){return t._tweens[e]})},r.prototype.removeAll=function(){this._tweens={}},r.prototype.add=function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];for(var a=0,u=e;a<u.length;a++){var l=u[a];(t=l._group)===null||t===void 0||t.remove(l),l._group=this,this._tweens[l.getId()]=l,this._tweensAddedDuringUpdate[l.getId()]=l}},r.prototype.remove=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,a=t;n<a.length;n++){var u=a[n];u._group=void 0,delete this._tweens[u.getId()],delete this._tweensAddedDuringUpdate[u.getId()]}},r.prototype.allStopped=function(){return this.getAll().every(function(t){return!t.isPlaying()})},r.prototype.update=function(t,e){t===void 0&&(t=as()),e===void 0&&(e=!0);var n=Object.keys(this._tweens);if(n.length!==0)for(;n.length>0;){this._tweensAddedDuringUpdate={};for(var a=0;a<n.length;a++){var u=this._tweens[n[a]],l=!e;u&&u.update(t,l)===!1&&!e&&this.remove(u)}n=Object.keys(this._tweensAddedDuringUpdate)}},r}(),xn={Linear:function(r,t){var e=r.length-1,n=e*t,a=Math.floor(n),u=xn.Utils.Linear;return t<0?u(r[0],r[1],n):t>1?u(r[e],r[e-1],e-n):u(r[a],r[a+1>e?e:a+1],n-a)},Bezier:function(r,t){for(var e=0,n=r.length-1,a=Math.pow,u=xn.Utils.Bernstein,l=0;l<=n;l++)e+=a(1-t,n-l)*a(t,l)*r[l]*u(n,l);return e},CatmullRom:function(r,t){var e=r.length-1,n=e*t,a=Math.floor(n),u=xn.Utils.CatmullRom;return r[0]===r[e]?(t<0&&(a=Math.floor(n=e*(1+t))),u(r[(a-1+e)%e],r[a],r[(a+1)%e],r[(a+2)%e],n-a)):t<0?r[0]-(u(r[0],r[0],r[1],r[1],-n)-r[0]):t>1?r[e]-(u(r[e],r[e],r[e-1],r[e-1],n-e)-r[e]):u(r[a?a-1:0],r[a],r[e<a+1?e:a+1],r[e<a+2?e:a+2],n-a)},Utils:{Linear:function(r,t,e){return(t-r)*e+r},Bernstein:function(r,t){var e=xn.Utils.Factorial;return e(r)/e(t)/e(r-t)},Factorial:function(){var r=[1];return function(t){var e=1;if(r[t])return r[t];for(var n=t;n>1;n--)e*=n;return r[t]=e,e}}(),CatmullRom:function(r,t,e,n,a){var u=(e-r)*.5,l=(n-t)*.5,c=a*a,f=a*c;return(2*t-2*e+u+l)*f+(-3*t+3*e-2*u-l)*c+u*a+t}}},Qo=function(){function r(){}return r.nextId=function(){return r._nextId++},r._nextId=0,r}(),jo=new qf,Ky=function(){function r(t,e){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=ss.Linear.None,this._interpolationFunction=xn.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=Qo.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,typeof e=="object"?(this._group=e,e.add(this)):e===!0&&(this._group=jo,jo.add(this))}return r.prototype.getId=function(){return this._id},r.prototype.isPlaying=function(){return this._isPlaying},r.prototype.isPaused=function(){return this._isPaused},r.prototype.getDuration=function(){return this._duration},r.prototype.to=function(t,e){if(e===void 0&&(e=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=e<0?0:e,this},r.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t<0?0:t,this},r.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},r.prototype.start=function(t,e){if(t===void 0&&(t=as()),e===void 0&&(e=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var n in this._valuesStartRepeat)this._swapEndStartRepeatValues(n),this._valuesStart[n]=this._valuesStartRepeat[n]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||e){if(this._propertiesAreSetUp=!0,!this._isDynamic){var a={};for(var u in this._valuesEnd)a[u]=this._valuesEnd[u];this._valuesEnd=a}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,e)}return this},r.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},r.prototype._setupProperties=function(t,e,n,a,u){for(var l in n){var c=t[l],f=Array.isArray(c),d=f?"array":typeof c,y=!f&&Array.isArray(n[l]);if(!(d==="undefined"||d==="function")){if(y){var A=n[l];if(A.length===0)continue;for(var _=[c],C=0,F=A.length;C<F;C+=1){var N=this._handleRelativeValue(c,A[C]);if(isNaN(N)){y=!1,console.warn("Found invalid interpolation list. Skipping.");break}_.push(N)}y&&(n[l]=_)}if((d==="object"||f)&&c&&!y){e[l]=f?[]:{};var M=c;for(var R in M)e[l][R]=M[R];a[l]=f?[]:{};var A=n[l];if(!this._isDynamic){var q={};for(var R in A)q[R]=A[R];n[l]=A=q}this._setupProperties(M,e[l],A,a[l],u)}else(typeof e[l]>"u"||u)&&(e[l]=c),f||(e[l]*=1),y?a[l]=n[l].slice().reverse():a[l]=e[l]||0}}},r.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},r.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},r.prototype.pause=function(t){return t===void 0&&(t=as()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this)},r.prototype.resume=function(t){return t===void 0&&(t=as()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this)},r.prototype.stopChainedTweens=function(){for(var t=0,e=this._chainedTweens.length;t<e;t++)this._chainedTweens[t].stop();return this},r.prototype.group=function(t){return t?(t.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},r.prototype.remove=function(){var t;return(t=this._group)===null||t===void 0||t.remove(this),this},r.prototype.delay=function(t){return t===void 0&&(t=0),this._delayTime=t,this},r.prototype.repeat=function(t){return t===void 0&&(t=0),this._initialRepeat=t,this._repeat=t,this},r.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},r.prototype.yoyo=function(t){return t===void 0&&(t=!1),this._yoyo=t,this},r.prototype.easing=function(t){return t===void 0&&(t=ss.Linear.None),this._easingFunction=t,this},r.prototype.interpolation=function(t){return t===void 0&&(t=xn.Linear),this._interpolationFunction=t,this},r.prototype.chain=function(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];return this._chainedTweens=t,this},r.prototype.onStart=function(t){return this._onStartCallback=t,this},r.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},r.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},r.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},r.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},r.prototype.onStop=function(t){return this._onStopCallback=t,this},r.prototype.update=function(t,e){var n=this,a;if(t===void 0&&(t=as()),e===void 0&&(e=r.autoStartOnUpdate),this._isPaused)return!0;var u;if(!this._goToEnd&&!this._isPlaying)if(e)this.start(t,!0);else return!1;if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var l=t-this._startTime,c=this._duration+((a=this._repeatDelayTime)!==null&&a!==void 0?a:this._delayTime),f=this._duration+this._repeat*c,d=function(){if(n._duration===0||l>f)return 1;var N=Math.trunc(l/c),M=l-N*c,R=Math.min(M/n._duration,1);return R===0&&l===n._duration?1:R},y=d(),A=this._easingFunction(y);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,A),this._onUpdateCallback&&this._onUpdateCallback(this._object,y),this._duration===0||l>=this._duration)if(this._repeat>0){var _=Math.min(Math.trunc((l-this._duration)/c)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=_);for(u in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[u]=="string"&&(this._valuesStartRepeat[u]=this._valuesStartRepeat[u]+parseFloat(this._valuesEnd[u])),this._yoyo&&this._swapEndStartRepeatValues(u),this._valuesStart[u]=this._valuesStartRepeat[u];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=c*_,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var C=0,F=this._chainedTweens.length;C<F;C++)this._chainedTweens[C].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},r.prototype._updateProperties=function(t,e,n,a){for(var u in n)if(e[u]!==void 0){var l=e[u]||0,c=n[u],f=Array.isArray(t[u]),d=Array.isArray(c),y=!f&&d;y?t[u]=this._interpolationFunction(c,a):typeof c=="object"&&c?this._updateProperties(t[u],l,c,a):(c=this._handleRelativeValue(l,c),typeof c=="number"&&(t[u]=l+(c-l)*a))}},r.prototype._handleRelativeValue=function(t,e){return typeof e!="string"?e:e.charAt(0)==="+"||e.charAt(0)==="-"?t+parseFloat(e):parseFloat(e)},r.prototype._swapEndStartRepeatValues=function(t){var e=this._valuesStartRepeat[t],n=this._valuesEnd[t];typeof n=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(n):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=e},r.autoStartOnUpdate=!1,r}(),Jy="25.0.0",tv=Qo.nextId,ei=jo,ev=ei.getAll.bind(ei),rv=ei.removeAll.bind(ei),iv=ei.add.bind(ei),nv=ei.remove.bind(ei),sv=ei.update.bind(ei),iu={Easing:ss,Group:qf,Interpolation:xn,now:as,Sequence:Qo,nextId:tv,Tween:Ky,VERSION:Jy,getAll:ev,removeAll:rv,add:iv,remove:nv,update:sv};class av{name="View";params;visible=!0;cvs;scene;scenes=[];camera;controller;tween;animateDuration;constructor(t={}){this.params=t,this.animateDuration=this.params.animateDuration||300,this.cvs=t.cvs,this.camera=new jc(t.camera||{})}destroy(){this.controller&&this.controller.destroy(),this.camera&&this.camera.destroy(),this.scene&&this.scene.destroy(),this.scenes.forEach(t=>t.destroy()),this.scenes.length=0}bindScene(t){this.scenes.push(t),this.reset(),this.scene=t,t.isStatic}saveCameraPosition(t){us.copy(this.camera.boundingBoxWorld);const e=t?vr+t:vr;sessionStorage.setItem(e,JSON.stringify(us))}clearCameraPosition(t){const e=t?vr+t:vr;sessionStorage.setItem(e,"")}restoreCameraPosition(t){const e=t?vr+t:vr,n=sessionStorage.getItem(e);n&&(us.copy(JSON.parse(n)),this.resetCameraByBoundingBox(us,!0))}fullscreen(t=10,e=!1){this.scene&&(this.scene.boundingBox.isEmpty()&&this.scene.computeBoundingBox(),us.copy(this.scene.boundingBox).expandByVector(nu.set(t,t)),this.resetCameraByBoundingBox(us,e))}handleCameraChanged(t){console.warn("handleCameraChanged: ",t.target.camera.position.z,t.target.camera.scaled.x)}reset(){}async resetCameraByBoundingBox(t,e=!1){if(!this.camera)return;if(!t||t.isEmpty())throw new Error("BoundingBox empty");if(!e)return this.camera.setByBox(t),Promise.resolve();const n=this.camera.getCameraPosition();t.getCenter(nu),t.getSize(Ko);const a=Math.max(Ko.x/this.camera.width,Ko.y/this.camera.height),u={x:nu.x,y:nu.y,z:0,s:a,r:0};await this.animateCamera(n,u)}async animateCamera(t,e){return this.controller&&(this.controller.enabled=!1),this.tween&&this.tween.stop(),new Promise(n=>{this.tween=new iu.Tween(t).to(e,this.animateDuration).easing(iu.Easing.Exponential.Out).onUpdate(a=>{this.camera.position.set(a.x,a.y),this.camera.scaled.set(a.s,a.s),this.camera.rotation.set(a.r,a.r),this.camera.update()}).onComplete(()=>{this.controller&&(this.controller.enabled=!0),n()}).start()})}computeBoundingBox(t,e=new St){return!t||!t.length||(e.makeEmpty(),t.forEach(n=>e.union(n.computeBoundingBox()))),e}expandScenesBoundingBox(t,e=new St){t.forEach(n=>n.boundingBox.union(e))}update(t){this.tween&&this.tween.update(t)}}const vr="camera_position_",nu=new Y,Ko=new Y,us=new St;class uv extends Ir{name="SvgView";params;container;offset=new Y;camera;controller;scene;p1=new Y;p2=new Y;graph;multiSelector;dummiesController;zoomToSelectEnable=!1;zoomBox=new St;selectEnable=!1;multiSelectEnable=!1;tween;animateDuration;label;controllerPanStartHandler=this.handlePanStart.bind(this);controllerPanEndHandler=this.handlePanEnd.bind(this);controllerWheelStartHandler=this.handlePanStart.bind(this);controllerWheelEndHandler=this.handlePanEnd.bind(this);controllerPanMoveHandler=this.handleControllerPanMove.bind(this);controllerPointerOverHandler=this.handleControllerPointerOver.bind(this);multiSelectorSelectedHandler=this.handleMultiSelectorSelected.bind(this);_currentAssetId;constructor(t={}){super(),this.params=t,this.params.zoomToSelectEnable&&(this.zoomToSelectEnable=!0),this.params.selectEnable&&(this.selectEnable=!0),this.params.multiSelectEnable&&(this.multiSelectEnable=!0),this.params.camera||(this.params.camera={}),this.params.camera.flipY=!0,this.animateDuration=this.params.animateDuration||300,this.camera=new jc(this.params.camera),this.container=this.params.containerId?document.getElementById(this.params.containerId):Zt.window.document.getElementsByTagName("body")[0];let e=this.container.getBoundingClientRect();this.offset.set(e.left,e.top),this.controller=new Qc(this.container,this.camera,!0),this.graph=new Kc(this.container),this.multiSelector=new o2(this.container,this.controller),this.dummiesController=new jy(this.container,this.controller),this.bindControllerEvents(),this.initLabel()}destroy(){var t;this.unbindControllerEvents(),super.destroy(),(t=this.label)==null||t.destroy()}initLabel(){this.label=new Xo(this.container,"")}showAssetsLabel(t,e,n){var u,l,c,f,d;if(!e)return;t||(t=(u=this.scene)==null?void 0:u.assetType);const a=(l=this.scene)==null?void 0:l.chef.getElementBoundingBox(e);a&&!a.isEmpty()&&(n||(n=(c=this.scene)==null?void 0:c.getAssetLabelById(t,e),n||(n=e)),(f=this.label)==null||f.setHtml(n),En.copy(a.min).applyMatrix3(this.camera.viewMatrix).add(this.offset).round(),(d=this.label)==null||d.show(En))}async hideAssetsLabel(){var t;return(t=this.label)==null?void 0:t.hide()}bindScene(t){var e;this.scene=t,this.multiSelector.bindScene(this.scene),(e=this.dummiesController)==null||e.bindScene(this.scene)}resize(){var t;(t=this.camera)==null||t.resize(),console.log("【svgView】resize: ",this.params.width,this.params.height)}async setByBox(t,e=!0){await this.resetCameraByBoundingBox(t,e)}zoomIn(){this.controller.scaled=this.camera.scaled.x*.9,this.controller.update()}zoomOut(){this.controller.scaled=this.camera.scaled.x*1.1,this.controller.update()}zoomToSelectEnableChanged(t){console.log("TODO: zoomToSelectEnableChanged: ",t),this.zoomToSelectEnable=t,this.controller.enablePan=!this.zoomToSelectEnable}selectEnableChanged(t){this.selectEnable=!!t,this.multiSelector.selectEnableChanged(t)}multiSelectEnableChanged(t){this.multiSelectEnable=!!t,this.multiSelector.multiSelectEnableChanged(t)}getIntersectObjects(t,e,n=[]){return this.scene?this.scene.getIntersectObjects(t,e,n):n}async focusAt(t,e=500){return this.camera?(zt.setFromCenterAndSize(t,En.set(e*2,e*2)),this.resetCameraByBoundingBox(zt,!0)):Promise.resolve()}async focusAtById(t,e=500){var a;const n=(a=this.scene)==null?void 0:a.getBoundingBoxById(t);if(console.log("focusAtById: ",t,n==null?void 0:n.toString()),n){n.expandByScalar(e),zt.copy(this.camera.boundingBoxWorld),zt.containsBox(n)||await this.resetCameraByBoundingBox(n,!0);return}}async focusAtDummy(t,e=500){var u,l;const n=this.dummiesController.getDummyById(t),a=(u=n==null?void 0:n.userData)==null?void 0:u.rmId;if(a){const c=(l=this.scene)==null?void 0:l.getBoundingBoxById(a);if(c){c.expandByScalar(e),zt.copy(this.camera.boundingBoxWorld),zt.containsBox(c)||await this.resetCameraByBoundingBox(c,!0);return}}if(n!=null&&n.position&&!(n!=null&&n.position.isEmpty())){zt.setFromCenterAndSize(n.worldPosition,En.set(e*2,e*2)),this.camera.boundingBoxWorld.containsBox(zt)||await this.resetCameraByBoundingBox(zt,!0);return}}async resetCameraByBoundingBox(t,e=!1){if(!this.camera)return Promise.resolve();if(!t||t.isEmpty())throw new Error("BoundingBox empty");if(!e)return this.camera.setByBox(t),Promise.resolve();const n=this.camera.getCameraPosition();t.getCenter(En),t.getSize(Jo);const a=Math.max(Jo.x/this.camera.width,Jo.y/this.camera.height),u={x:En.x,y:En.y,z:0,s:a,r:0};await this.animateCamera(n,u)}async animateCamera(t,e){return this.controller&&(this.controller.enabled=!1),this.tween&&this.tween.stop(),new Promise(n=>{this.tween=new iu.Tween(t).to(e,this.animateDuration).easing(iu.Easing.Exponential.Out).onUpdate(a=>{this.camera.position.set(a.x,a.y),this.camera.scaled.set(a.s,a.s),this.camera.rotation.set(a.r,a.r),this.camera.update()}).onComplete(()=>{this.controller&&(this.controller.enabled=!0),n()}).start()})}fullscreen(){this.scene&&(this.scene&&!this.scene.viewBox.isEmpty()?zt.copy(this.scene.viewBox):(this.scene.updateMatrixWorld(!0),this.scene.computeBoundingBox(),zt.copy(this.scene.boundingBox)),this.resetCameraByBoundingBox(zt,!0))}saveCameraPosition(t){zt.copy(this.camera.boundingBoxWorld);const e=t?vr+t:vr;sessionStorage.setItem(e,JSON.stringify(zt))}restoreCameraPosition(t){const e=t?vr+t:vr,n=sessionStorage.getItem(e);if(!n)return this.fullscreen();zt.copy(JSON.parse(n)),this.resetCameraByBoundingBox(zt,!0)}clearCameraPosition(t){const e=t?vr+t:vr;sessionStorage.setItem(e,"")}bindControllerEvents(){this.controller.addEventListener(_t.PAN_START,this.controllerPanStartHandler),this.controller.addEventListener(_t.PAN_END,this.controllerPanEndHandler),this.controller.addEventListener(_t.WHEEL_START,this.controllerWheelStartHandler),this.controller.addEventListener(_t.WHEEL_END,this.controllerWheelEndHandler),this.controller.addEventListener(_t.PAN_MOVE,this.controllerPanMoveHandler),this.controller.addEventListener(_t.POINTEROVER,this.controllerPointerOverHandler),this.multiSelector.addEventListener(No.SELECTED,this.multiSelectorSelectedHandler)}unbindControllerEvents(){this.controller.removeEventListener(_t.PAN_START,this.controllerPanStartHandler),this.controller.removeEventListener(_t.PAN_END,this.controllerPanEndHandler),this.controller.removeEventListener(_t.WHEEL_START,this.controllerWheelStartHandler),this.controller.removeEventListener(_t.WHEEL_END,this.controllerWheelEndHandler),this.controller.removeEventListener(_t.PAN_MOVE,this.controllerPanMoveHandler),this.controller.removeEventListener(_t.POINTEROVER,this.controllerPointerOverHandler),this.multiSelector.removeEventListener(No.SELECTED,this.multiSelectorSelectedHandler)}handlePanStart(t){if(!((t==null?void 0:t.type)!==_t.PAN_START&&(t==null?void 0:t.type)!==_t.WHEEL_START)&&this.zoomToSelectEnable){this.p1.copy(t.data.screenCoords),zt.makeEmpty().expandByPoint(this.p1),this.graph.draw(zt);return}}handlePanEnd(t){if(!((t==null?void 0:t.type)!==_t.PAN_END&&(t==null?void 0:t.type)!==_t.WHEEL_END)&&this.zoomToSelectEnable){this.p2.copy(t.data.screenCoords),zt.makeEmpty().expandByPoint(this.p1).expandByPoint(this.p2).unproject(this.controller.camera),this.setByBox(zt),this.graph.hide(),zt.makeEmpty();return}}handleControllerPanMove(t){(t==null?void 0:t.type)===_t.PAN_MOVE&&this.zoomToSelectEnable&&(this.p2.copy(t.data.screenCoords),zt.makeEmpty().expandByPoint(this.p1).expandByPoint(this.p2),this.graph.draw(zt))}handleControllerPointerOver(t){var a,u,l,c,f;const e=((a=t==null?void 0:t.e)==null?void 0:a.target)||((l=(u=t==null?void 0:t.e)==null?void 0:u.srcEvent)==null?void 0:l.target);let n=e==null?void 0:e.id;(n==null?void 0:n.indexOf("dummy"))>-1?(n=e.getAttribute(Kn+"-id"),n&&this._currentAssetId!==n&&this.dispatchEvent({type:"POINTEROVER",data:{id:n,assetType:"dummy"},e:t.e})):n&&((c=this.scene)!=null&&c.isBelongsToAssetType(n,er.WS))?this._currentAssetId!==n&&this.dispatchEvent({type:"POINTEROVER",data:{id:n,assetType:er.WS},e:t.e}):n&&((f=this.scene)!=null&&f.isBelongsToAssetType(n,er.RM))?this._currentAssetId!==n&&this.dispatchEvent({type:"POINTEROVER",data:{id:n,assetType:er.RM},e:t.e}):(this._currentAssetId=void 0,this.dispatchEvent({type:"POINTERLEAVE",e:t.e})),this._currentAssetId=n}handleMultiSelectorSelected(t){console.warn("handleMultiSelectorSelected:",t.data),this.dispatchEvent({type:"SELECTED",data:t.data})}setDummies(t){this.dummiesController.setDummiesByVos(t)}clearDummies(t){this.dummiesController.clearDummies(t)}update(t){this.tween&&this.tween.update(t)}}const zt=new St,En=new Y,Jo=new Y;var An=(r=>(r.SELECTED="SELECTED",r.POINTEROVER="POINTEROVER",r.POINTERLEAVE="POINTERLEAVE",r))(An||{});class ov extends Ir{name="SvgApp";params;renderer;view;scene;loadingScene;mainScene;zoomToSelectEnable=!1;zoomBox=new St;selectEnable=!1;multiSelectEnable=!1;runningHandler=this.running.bind(this);pointerOverHandler=this.handlePointerOver.bind(this);pointerLeaveHandler=this.handlePointerLeave.bind(this);multiSelectorSelectedHandler=this.handleMultiSelectorSelected.bind(this);dragEndHandler=this.handleDragEnd.bind(this);constructor(t={}){super(),this.params=t,this.params.zoomToSelectEnable&&(this.zoomToSelectEnable=!0),this.params.selectEnable&&(this.selectEnable=!0),this.params.multiSelectEnable&&(this.multiSelectEnable=!0),this.params.defaultFill||(this.params.defaultFill=Wt.getMoreTransparent(he.white,.3)),this.params.defaultStroke||(this.params.defaultStroke=Wt.getMoreTransparent(he.darkWhite,.8)),this.params.infoFill||(this.params.infoFill=Wt.getMoreTransparent(he.gray,.3)),this.params.infoStroke||(this.params.infoStroke=Wt.getMoreTransparent(he.darkGray,.8)),this.params.primaryFill||(this.params.primaryFill=Wt.getMoreTransparent(he.blue,.3)),this.params.primaryStroke||(this.params.primaryStroke=Wt.getMoreTransparent(he.darkBlue,.8)),this.params.successFill||(this.params.successFill=Wt.getMoreTransparent(he.green,.3)),this.params.successStroke||(this.params.successStroke=Wt.getMoreTransparent(he.darkGreen,.8)),this.params.warningFill||(this.params.warningFill=Wt.getMoreTransparent(he.yellow,.3)),this.params.warningStroke||(this.params.warningStroke=Wt.getMoreTransparent(he.darkYellow,.8)),this.params.dangerFill||(this.params.dangerFill=Wt.getMoreTransparent(he.red,.3)),this.params.dangerStroke||(this.params.dangerStroke=Wt.getMoreTransparent(he.darkRed,.8)),this.params.activeFill||(this.params.activeFill=Wt.getMoreTransparent(he.brown,.3)),this.params.activeStroke||(this.params.activeStroke=Wt.getMoreTransparent(he.darkBrown,.8)),this.renderer=new e0(t),this.view=new uv(t),this.trans2LoadingScene()}get isLoadingScene(){var t;return((t=this.scene)==null?void 0:t.name)==="SvgLoadingScene"}destroy(){var t,e;this.unbindAssetsEvents(),super.destroy(),(t=this.view)==null||t.destroy(),(e=this.renderer)==null||e.destroy()}resize(){var t,e;(t=this.renderer)==null||t.resize(),(e=this.view)==null||e.resize()}isScene(t){var e;return((e=this.scene)==null?void 0:e.uuid)===t.uuid}removeScene(t){this.scene=void 0,t==null||t.destroy()}trans2MainScene(){var t,e;(t=this.scene)==null||t.unmount(),this.scene=this.mainScene,this.scene.isMounted||this.scene.mount(),this.view.bindScene(this.scene),(e=this.loadingScene)==null||e.destroy()}trans2LoadingScene(){var e,n;console.log("trans2LoadingScene: ",this.params),this.loadingScene=new a2(this.params),(e=this.scene)==null||e.unmount(),this.scene=this.loadingScene,this.scene.isMounted||this.scene.mount();const t=new St().copy(this.loadingScene.viewBox).expandByVector(new Y(1,1).multiplyScalar(360));this.view.setByBox(t,!1),(n=this.mainScene)==null||n.destroy()}start(){requestAnimationFrame(this.runningHandler)}running(t){this.scene&&(this.scene.update(),this.renderer.render(this.scene,this.view.camera),this.view.update(t),requestAnimationFrame(this.runningHandler))}async load(t,e,n=2,a){this.isLoadingScene||this.trans2LoadingScene(),await lc(this.params.syncDelay);const u=await new Ac().loadAsync(t);return this.loadByString(u,e,n)}loadByString(t,e,n=2){this.mainScene=new Yc(this.params),this.mainScene.bind(t),this.view.setByBox(this.mainScene.viewBox);const a=this.mainScene.getLayers(n);return e!=null&&e.length||(e=Mt.map(a,"label")),this.mainScene.showDefaultLayers(e,!0),this.trans2MainScene(),this.bindAssetsEvents(),console.log("svgApp.loadByString: ",a),a}setSkeletons(t){var e;(e=this.scene)==null||e.setSkeletonLayers(t)}getLayers(t=2){var e;return(e=this.scene)==null?void 0:e.getLayers(t)}updateLayersVisibility(t,e=!1){var n;(n=this.scene)==null||n.updateLayersVisibility(t,e)}selectByIds(t){var e;(e=this.scene)==null||e.selectByIds(t,this.multiSelectEnable)}clearSelectedByIds(t){var e;Array.isArray(t)?t.forEach(n=>{var a;return(a=this.scene)==null?void 0:a.clearSelectedById(n)}):(e=this.scene)==null||e.clearSelectedById(t)}clearSelected(){var t;(t=this.scene)==null||t.clearSelected()}getSelectedIds(){var t;return(t=this.scene)==null?void 0:t.getSelectedIds()}async targetByIds(t){var e;this.scene&&((e=this.scene)==null||e.selectByIds(t,!1),tl.copy(this.scene.getSelectedBoundingBox()).expandByVector(new Y(1,1).multiplyScalar(100)),await lc(100),tl.isEmpty()||await this.view.setByBox(tl))}linkAssetsByTree(t){var e;(e=this.scene)==null||e.linkAssetsByTree(t)}setViewAreaLimit(t){this.renderer.viewAreaLimit=t}setAssetType(t,e){var n;(n=this.scene)==null||n.setAssetType(t,e)}getAssetIdsByType(t){var e;return(e=this.scene)==null?void 0:e.getAssetIdsByType(t)}clearFill(){var t;(t=this.scene)==null||t.clearFillOrStroke("fill")}clearFillByIds(t){var e;(e=this.scene)==null||e.clearFillOrStrokeByIds(t,"fill")}setFillByIds(t,e){var n;(n=this.scene)==null||n.setFillOrStrokeByIds(t,e,"fill")}clearStroke(){var t;(t=this.scene)==null||t.clearFillOrStroke("stroke")}clearStrokeByIds(t){var e;(e=this.scene)==null||e.clearFillOrStrokeByIds(t,"stroke")}setStrokeByIds(t,e){var n;(n=this.scene)==null||n.setFillOrStrokeByIds(t,e,"stroke")}getLegend(){var t;return(t=this.scene)==null?void 0:t.getLegend()}setAssetLabels(t,e){var n;(n=this.scene)==null||n.setAssetLabels(t,e)}clearAssetLabels(){var t;(t=this.scene)==null||t.clearAssetLabels()}fullscreen(){this.view.fullscreen()}saveCameraPosition(t){this.view.saveCameraPosition(t)}restoreCameraPosition(t){this.view.restoreCameraPosition(t)}clearCameraPosition(t){this.view.clearCameraPosition(t)}zoomIn(){this.view.zoomIn()}zoomOut(){this.view.zoomOut()}focusAt(t,e=1e3){var n;(n=this.view)==null||n.focusAt(t,e)}async focusAtById(t,e=1e3){var n;return(n=this.view)==null?void 0:n.focusAtById(t,e)}async focusAtDummy(t,e=1e3){var n;return(n=this.view)==null?void 0:n.focusAtDummy(t,e)}showAssetsLabel(t,e,n){var a,u,l,c;e?t==="dummy"?(l=(u=(a=this.view)==null?void 0:a.dummiesController)==null?void 0:u.dummies)==null||l.showDummyLabel(e):(c=this.view)==null||c.showAssetsLabel(t,e,n):this.hideAssetsLabel()}hideAssetsLabel(){var t,e,n,a;(n=(e=(t=this.view)==null?void 0:t.dummiesController)==null?void 0:e.dummies)==null||n.hideDummyLabel(),(a=this.view)==null||a.hideAssetsLabel()}highlightAssets(t,e){var n;(n=this.scene)==null||n.highlightAssets(t,e)}resetHighlightAssets(t){var e;(e=this.scene)==null||e.resetHighlightAssets(t)}fontZoomIn(){var t;(t=this.scene)==null||t.chef.fontZoom("asset-labels",1.1)}fontZoomOut(){var t;(t=this.scene)==null||t.chef.fontZoom("asset-labels",.9)}zoomToSelectEnableChanged(t){this.view.zoomToSelectEnableChanged(t)}selectEnableChanged(t){this.selectEnable=!!t,this.view.selectEnableChanged(t)}multiSelectEnableChanged(t){this.multiSelectEnable=!!t,this.view.multiSelectEnableChanged(t)}socialDistanceEnableChanged(t){var e;(e=this.scene)==null||e.socialDistanceEnableChanged(t)}getBoundingBoxById(t,e=!0){var a;if(!t)return;const n=(a=this.scene)==null?void 0:a.getBoundingBoxById(t);return n&&e&&n.applyMatrix3(this.view.camera.viewMatrix).round(),n}setDummies(t){var e;(e=this.view)==null||e.setDummies(t)}clearDummies(t){var e;(e=this.view)==null||e.clearDummies(t)}highlightDummies(t){var e,n;(n=(e=this.view)==null?void 0:e.dummiesController)==null||n.highlightDummies(t)}resetHighlightDummies(){var t,e;(e=(t=this.view)==null?void 0:t.dummiesController)==null||e.resetHighlightDummies()}bindAssetsEvents(){var t,e;this.view.addEventListener(An.POINTEROVER,this.pointerOverHandler),this.view.addEventListener(An.POINTERLEAVE,this.pointerLeaveHandler),this.view.addEventListener(An.SELECTED,this.multiSelectorSelectedHandler),(e=(t=this.view)==null?void 0:t.dummiesController)==null||e.addEventListener("panend",this.dragEndHandler)}unbindAssetsEvents(){var t,e;this.view.removeEventListener(An.POINTEROVER,this.pointerOverHandler),this.view.removeEventListener(An.POINTERLEAVE,this.pointerLeaveHandler),this.view.removeEventListener(An.SELECTED,this.multiSelectorSelectedHandler),(e=(t=this.view)==null?void 0:t.dummiesController)==null||e.removeEventListener("panend",this.dragEndHandler)}handleMultiSelectorSelected(t){this.dispatchEvent({type:"SELECTED",data:t.data})}handlePointerOver(t){this.dispatchEvent({type:"pointerover",data:t.data,e:t.e})}handlePointerLeave(t){this.dispatchEvent({type:"pointerleave",data:t.data,e:t.e})}handleInitializeStart(){console.log("App.initializeStart ...")}async handleInitializeComplete(t){console.log("App.initializeComplete ...",t),t!=null&&t.data&&this.launch()}handleDragEnd(t){this.dispatchEvent(t)}launch(){console.log("App.launch ...")}}const tl=new St;var Wf=(r=>(r.SELECTED="SELECTED",r.POINTEROVER="pointerover",r.POINTERLEAVE="pointerleave",r.DRAG_END="panend",r))(Wf||{});class lv{static cached=new Map;static cachedCanvas=new Map;static destroy(){this.cached.clear(),this.cachedCanvas.clear()}static createCanvas(t){var a;if(!((a=Zt.window)!=null&&a.document))throw new Error("environment not support");let e;t.containerId&&(e=Zt.window.document.getElementById(t.containerId)),e||(e=Zt.window.document.getElementsByTagName("body")[0]);let n;if(t.canvasId&&(n=Zt.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=Zt.dpr),n)this.resizeCanvas(n,t.width,t.height,t.dpr);else{if(n=this.createHtmlCanvas(t.width,t.height,t.dpr),!n)throw new Error("error environment");t.canvasId&&n.setAttribute("id",t.canvasId),e==null||e.appendChild(n)}return n.style.background=t.background||"transparent",n}static getContext2D(t,e={}){const n={alpha:!0,willReadFrequently:!!e.willReadFrequently},a=t.getContext("2d",n);if(!a)throw new Error("getContext2D error");return a.scale(e.dpr||1,e.dpr||1),a}static resizeCanvas(t,e,n,a=1){t instanceof OffscreenCanvas?(t.width=e,t.height=n):t instanceof HTMLCanvasElement&&(t.setAttribute("width",(e*a).toString()),t.setAttribute("height",(n*a).toString()),t.style.width=e+"px",t.style.height=n+"px",t.style.padding="0",t.style.margin="0",t.style.border="0",t.style.imageRendering="pixelated",t.style.transform="translateZ(0)")}static async getImageBitmapByCanvasAsync(t){if(t)return t instanceof OffscreenCanvas?t.transferToImageBitmap():t instanceof HTMLCanvasElement?await createImageBitmap(t):void 0}static get(t,e,n,a=1){let u=this.cached.get(t);return u||(u=this.create(e,n,a),this.set(t,u)),this.resizeCanvas(u,e,n,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,n=1){var a;if((a=Zt.window)!=null&&a.OffscreenCanvas)return new OffscreenCanvas(t,e);throw new Error("environment does not support")}static createHtmlCanvas(t,e,n=1){if(!Zt.window.document)throw new Error("environment does not support");const a=Zt.window.document.createElement("canvas");return this.resizeCanvas(a,t,e,n),a}static measureText(t,e,n=new Y){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 n.set(c,f),n}}class hv extends av{name="OpeView";constructor(t={}){super(t),this.initController(this.camera)}destroy(){this.controller&&this.controller.destroy(),super.destroy()}initController(t){let e=this.params.cvs;!e&&this.params.canvasId&&(e=document.getElementById(this.params.canvasId)),!(!this.params.controls||!t||!e)&&(this.controller&&this.controller.destroy(),this.controller=new Qc(e,t))}handleCameraChanged(t){console.warn("handleCameraChanged: ",t.target.camera.position.z,t.target.camera.scaled.x)}}var ri=(r=>(r.INIT="init",r.LOAD="load",r.LOADED="loaded",r.GET_LAYERS="getLayers",r.TERMINATE="terminate",r.CAMERA_SYNC="cameraSync",r.CAMERA_CHANGED="cameraChanged",r.SCENES_CHANGED="scenesChanged",r.UPDATE_LAYERS_VISIBILITY="updateLayersVisibility",r))(ri||{});class cv extends Ir{cvs;worker;view;boundingBox=new St;workerMessageHandler=this.handleWorkerMessage.bind(this);cameraHandler=this.handleCameraChanged.bind(this);runningHandler=this.running.bind(this);constructor(t={},e){super(),t.workerRender=!0,this.params=t,Zt.config=t;const n=lv.createCanvas(t);if(!n.transferControlToOffscreen)throw new Error("not support transferControlToOffscreen");this.cvs=n.transferControlToOffscreen(),this.view=new hv(t),this.view.camera.name="mainCamera",this.view.camera.resize(),this.worker=e,this.bindEvents()}destroy(){super.destroy(),this.unbindEvents(),this.worker.postMessage({task:ri.TERMINATE}),this.worker.terminate()}bindEvents(){var t,e;(e=(t=this.view)==null?void 0:t.camera)==null||e.addEventListener(Qa.UPDATE,this.cameraHandler),this.worker.addEventListener("message",this.workerMessageHandler)}unbindEvents(){var t,e;(e=(t=this.view)==null?void 0:t.controller)==null||e.removeEventListener(_t.CAMERA_CHANGED,this.cameraHandler),this.worker.removeEventListener("message",this.workerMessageHandler)}handleWorkerMessage(t){var e,n,a,u,l;switch(t.data.task){case ri.CAMERA_SYNC:if(!((e=t==null?void 0:t.data)!=null&&e.data))break;const c=JSON.parse(t.data.data);(a=(n=this.view)==null?void 0:n.camera)==null||a.fromJSON(c),this.view.camera.computeBoundingBox(),console.log("CAMERA_SYNC: ",c);break;case ri.CAMERA_CHANGED:const{t:f,r:d,s:y}=t.data.data;console.log("CAMERA_CHANGED: ",this.view.camera.width,f,d,y),(l=(u=this.view)==null?void 0:u.camera)==null||l.setTRS(f,d,y);break;case ri.SCENES_CHANGED:const{box:A}=t.data.data;if(!A)return;this.boundingBox.fromString(A);break;case"pong":console.log("response: pong");break}}handleCameraChanged(t){this.worker.postMessage({task:ri.CAMERA_CHANGED,data:t.data})}promiseWorkerResponse(t,e){return new Promise((n,a)=>{const u=c=>{var f,d,y;((f=c==null?void 0:c.data)==null?void 0:f.task)===t&&(this.worker.removeEventListener("message",u),this.worker.removeEventListener("error",l),console.log("AppOffscreen::response: ",(d=c==null?void 0:c.data)==null?void 0:d.task,(y=c==null?void 0:c.data)==null?void 0:y.data),n(c.data.data))},l=c=>{this.worker.removeEventListener("message",u),this.worker.removeEventListener("error",l),a(c.error)};this.worker.addEventListener("message",u),this.worker.addEventListener("error",l),this.worker.postMessage({task:t,data:e})})}resize(){var t;(t=this.view.camera)==null||t.resize()}async load(t,e){return this.promiseWorkerResponse(ri.LOAD,{url:t,layers:e})}async getLayers(t=2){return this.promiseWorkerResponse(ri.GET_LAYERS,{lv:t})}async fullscreen(){await this.view.resetCameraByBoundingBox(this.boundingBox,!0)}saveCameraPosition(t){this.view.saveCameraPosition(t)}restoreCameraPosition(t){this.view.restoreCameraPosition(t)}clearCameraPosition(t){this.view.clearCameraPosition(t)}updateLayersVisibility(t,e=!1){this.worker.postMessage({task:ri.UPDATE_LAYERS_VISIBILITY,data:{ids:t,visible:e}})}start(){const t=this.cvs,e=JSON.stringify(this.params);this.worker.postMessage({task:ri.INIT,data:{cvs:t,config:e}},[t]),requestAnimationFrame(this.runningHandler)}running(t){var e;(e=this.view)==null||e.update(t),requestAnimationFrame(this.runningHandler)}stop(){}}function fv(r){return new Worker("/environment.worker.js",{type:"module",name:r==null?void 0:r.name})}function pv(r){return new Worker("/renderer.worker.js",{type:"module",name:r==null?void 0:r.name})}le.AppEnum=Wf,le.AppOffscreen=cv,le.AssetTypeEnum=er,le.Box2=Ug,le.Color=Wt,le.ColorsEnum=he,le.EnvironmentWorker=fv,le.GLOB=Zt,le.LayerTypeEnum=Vs,le.Monitor=Pt,le.RendererWorker=pv,le.SvgApp=ov,le.Vector2=Fg,le.defaultConfig=Un,Object.defineProperty(le,Symbol.toStringTag,{value:"Module"})});
|
package/lib/renderer.worker.js
CHANGED
|
@@ -4003,7 +4003,7 @@ var aA = cx((Bs) => {
|
|
|
4003
4003
|
Fs.normalizeLineEndings = Kf;
|
|
4004
4004
|
Fs.DOMParser = Jf;
|
|
4005
4005
|
var Xx = Fs.DOMParser;
|
|
4006
|
-
const Qx = "1.0.
|
|
4006
|
+
const Qx = "1.0.51";
|
|
4007
4007
|
function Zx() {
|
|
4008
4008
|
return typeof window < "u" && ({}.toString.call(window) === "[object Window]" || {}.toString.call(window) === "[object global]");
|
|
4009
4009
|
}
|