From bf28489c0e0f815967e80444d6b05883ba5ea3af Mon Sep 17 00:00:00 2001 From: David Benson Date: Fri, 27 Dec 2024 17:06:52 +0000 Subject: [PATCH] 26.0.0 release --- ChangeLog | 10 + LICENSE | 2 +- VERSION | 2 +- etc/build/build.xml | 12 +- etc/dependencies/package.json | 5 +- src/main/webapp/images/hs.png | Bin 2684 -> 0 bytes src/main/webapp/images/hv.png | Bin 2865 -> 0 bytes src/main/webapp/index.html | 5 - src/main/webapp/js/app.min.js | 6728 +++++++++--------- src/main/webapp/js/diagramly/ElectronApp.js | 5 + src/main/webapp/js/export.js | 82 +- src/main/webapp/js/extensions.min.js | 282 +- src/main/webapp/js/integrate.min.js | 6940 +++++++++---------- src/main/webapp/js/jscolor/jscolor.js | 905 --- src/main/webapp/js/onedrive/mxODPicker.js | 2 +- src/main/webapp/js/open.js | 3 +- src/main/webapp/js/sanitizer/purify.min.js | 4 +- src/main/webapp/js/viewer-static.min.js | 4542 ++++++------ src/main/webapp/js/viewer.min.js | 4542 ++++++------ src/main/webapp/resources/dia.txt | 1 - src/main/webapp/resources/dia_am.txt | 1 - src/main/webapp/resources/dia_ar.txt | 1 - src/main/webapp/resources/dia_bg.txt | 1 - src/main/webapp/resources/dia_bn.txt | 1 - src/main/webapp/resources/dia_bs.txt | 1 - src/main/webapp/resources/dia_ca.txt | 5 +- src/main/webapp/resources/dia_cs.txt | 1 - src/main/webapp/resources/dia_da.txt | 1 - src/main/webapp/resources/dia_de.txt | 1 - src/main/webapp/resources/dia_el.txt | 1 - src/main/webapp/resources/dia_eo.txt | 1 - src/main/webapp/resources/dia_es.txt | 1 - src/main/webapp/resources/dia_et.txt | 1 - src/main/webapp/resources/dia_eu.txt | 1 - src/main/webapp/resources/dia_fa.txt | 1 - src/main/webapp/resources/dia_fi.txt | 1 - src/main/webapp/resources/dia_fil.txt | 1 - src/main/webapp/resources/dia_fr.txt | 1 - src/main/webapp/resources/dia_gl.txt | 1 - src/main/webapp/resources/dia_gu.txt | 1 - src/main/webapp/resources/dia_he.txt | 1 - src/main/webapp/resources/dia_hi.txt | 1 - src/main/webapp/resources/dia_hr.txt | 1 - src/main/webapp/resources/dia_hu.txt | 1 - src/main/webapp/resources/dia_i18n.txt | 1 - src/main/webapp/resources/dia_id.txt | 1 - src/main/webapp/resources/dia_it.txt | 1 - src/main/webapp/resources/dia_ja.txt | 1 - src/main/webapp/resources/dia_kn.txt | 1 - src/main/webapp/resources/dia_ko.txt | 1 - src/main/webapp/resources/dia_lt.txt | 1 - src/main/webapp/resources/dia_lv.txt | 1 - src/main/webapp/resources/dia_ml.txt | 1 - src/main/webapp/resources/dia_mr.txt | 1 - src/main/webapp/resources/dia_ms.txt | 1 - src/main/webapp/resources/dia_my.txt | 1 - src/main/webapp/resources/dia_nl.txt | 1 - src/main/webapp/resources/dia_no.txt | 1 - src/main/webapp/resources/dia_pl.txt | 1 - src/main/webapp/resources/dia_pt-br.txt | 1 - src/main/webapp/resources/dia_pt.txt | 1 - src/main/webapp/resources/dia_ro.txt | 1 - src/main/webapp/resources/dia_ru.txt | 3 +- src/main/webapp/resources/dia_si.txt | 1 - src/main/webapp/resources/dia_sk.txt | 1 - src/main/webapp/resources/dia_sl.txt | 1 - src/main/webapp/resources/dia_sr.txt | 1 - src/main/webapp/resources/dia_sv.txt | 1 - src/main/webapp/resources/dia_sw.txt | 1 - src/main/webapp/resources/dia_ta.txt | 1 - src/main/webapp/resources/dia_te.txt | 1 - src/main/webapp/resources/dia_th.txt | 1 - src/main/webapp/resources/dia_tr.txt | 1 - src/main/webapp/resources/dia_uk.txt | 1 - src/main/webapp/resources/dia_vi.txt | 1 - src/main/webapp/resources/dia_zh-tw.txt | 1 - src/main/webapp/resources/dia_zh.txt | 1 - src/main/webapp/service-worker.js | 2 +- src/main/webapp/service-worker.js.map | 2 +- src/main/webapp/styles/grapheditor.css | 584 +- src/main/webapp/styles/high-contrast.css | 42 +- src/main/webapp/teams.html | 5 - 82 files changed, 11991 insertions(+), 12779 deletions(-) delete mode 100644 src/main/webapp/images/hs.png delete mode 100644 src/main/webapp/images/hv.png delete mode 100644 src/main/webapp/js/jscolor/jscolor.js diff --git a/ChangeLog b/ChangeLog index 1391e4f9..beaff225 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +27-DEC-2024: 26.0.0 + +- Updates DOMPurify from 3.2.2 to 3.2.3 +- Adds dark mode specific colour scheme + +05-DEC-2024: 25.0.3 + +- Adds entering custom zoom via toolbar in simple UI +- Adds back jszip to deployment + 03-DEC-2024: 25.0.2 - Internal release diff --git a/LICENSE b/LICENSE index 261eeb9e..f49a4e16 100644 --- a/LICENSE +++ b/LICENSE @@ -198,4 +198,4 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. + limitations under the License. \ No newline at end of file diff --git a/VERSION b/VERSION index ef1b32c8..c0c550c0 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -25.0.2 \ No newline at end of file +26.0.0 \ No newline at end of file diff --git a/etc/build/build.xml b/etc/build/build.xml index 4c5cff94..6ed6aa5a 100644 --- a/etc/build/build.xml +++ b/etc/build/build.xml @@ -5,7 +5,13 @@ - + + + + + + + @@ -70,9 +76,9 @@ - + - + \ No newline at end of file diff --git a/etc/dependencies/package.json b/etc/dependencies/package.json index 2f642577..d80d21eb 100644 --- a/etc/dependencies/package.json +++ b/etc/dependencies/package.json @@ -15,11 +15,10 @@ "mermaid": "11.2.0", "pako": "2.1.0", "crypto-js": "3.1.2", - "dompurify": "3.2.2", + "dompurify": "3.2.3", "spin.js": "2.0.0", "roughjs": "4.6.6", - "mathjax": "3.2.2", - "jscolor": "^3.8.0" + "mathjax": "3.2.2" } } \ No newline at end of file diff --git a/src/main/webapp/images/hs.png b/src/main/webapp/images/hs.png deleted file mode 100644 index 3d94486cedaf7111d010fdaf2cefad45fd1f878b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2684 zcmXArc_0(~AIBXrHY{E4t*qoJ#GWM;%`sPsQg|ZI9OX`l9COTa&5?Dua<6nb(vY&6 z6?>3k<8jPQJQ=fuv5eVo^ZVob{r>y?yxzz6n|{I3RuQNUl#q~6w6{Y!i_W*AbzM$M zv?qg)_ee+pt?W@2m!pR{B_p?CM-{APX1sq0k!v%Dx?=2xC6f&jlZz_Dn#dT_Y>InI z6zGP*0qIZBM5F|EZW=wONLxZCI;oxx8efxF<=55NtkzwRuA@S|$OSZUS~0 zbSDgzxPwEAll?BgdT}XWOAZOcMD`pUO+CGfB}rVxe|WEK0gw_Tz-cDmNG4L+O1BG& zsF@TK6o0+-x8xsR`X2n=3~i7e()sQ8nbs7jD=(px9H|qDd%c<@)UuI(EKt5ngFHjS zh|qTPjol+wD*VrOrP2AHgU&lZ7-h-S-Ry`OC^$7+KSF!aG?mu&pn3IaR(#Gf!EQP! zqeS?o6nx*@RWD5RUuQ+fDEvFrgK2PwV_AaZi_nFD)fY6UXpc#9)D{%+=WH ztBRU(0-f)NSeD3_)#+p<)n=t7Y1EDi=wXXR?Z#vSuGOPoT|XQYUp$jeW`dW9Q1kjz#P#FKJ!aH3zn{59p6;=yx%D9tmqxQwiPk>^XJ#hnQPa&UStGb;zpzVAA13RQ2C{(WQtPtlHN+xES>Qyk?T{p)3L zKdG1CZ}noWtWb#qCxunq6cmKZkSp8AJFQzC5VAmliNf$>rVM$2Q1P|$>9btrJLz|{ zSEp42us*S@mNJKs{J(s20WSGheRHFfo!iS!%VR(!BLtg%5&G73YBwnQiPTC@yb!(mV=4^=hMGc{L0KQ&GaYT41_sNl0+=?tU1#T8=w<5Hp>qu7gwyz zwLL3bXQ5-%%-%`x@Pre{8xpv$>VeI=t#(~rx$b&PV(x))i0v`~VbW)#SQBCXq2{3C z4AjaS!bRt4Q?8=ly@6M=+29nh0d(fs{K~%zNbr`+-cFUZNG!0O= ztBy>FTi+F8DTC6pr<-QLfNg0`0~OrWJ{oz=)6L|D%a{=NsYO5|-NfUp7Y1+9*lFRJ z5eJQ!*^GZ@s9{T9oBa_K8|h+p-X6RjZg2E_MT>zCjV(~r*6%7Sij>(`t)O^DQ?5kw z*5IZ}6Yl9oCX2J~K~(ouR!YtW!n|s+M;#USu3QS5lI+Z7T#@>eP@xM!TPE-?u=Htd z49Zqbfk!YI?d;mMp}J=|f0P<;(10YFMR-D=9)aeZ@G{Ezv(9sw5v++8tRHhq6NB;- zH2vx(PU1qD_8+#|>&xHm)UbkK4M?w_%wFEr_E+5T%vx9E!xmutZiFRIq28_H5VovP z_lMzL{cKdx%a2HTauX~RSRYm)64<0F_{Nbco!|_?rpPw_J}NA-umuds1iE=$J7Q`F zd!s(MKF>pom>+ITdp;<{lMnDf4uN>z#SiECQt#jM)8rIa7;kozw6%A3yMEz5P%>>m zP^aP@mh`^eyybD<|3=Fv?u;ybH7RFB;|YJx_d1J;6wJ4KGeT+E44^QNm!_X5b@{by z^qAAkM5!d@0aKxHZ8pbuQ7dm3CvtBsZV5_Hgs2II9V+0N-jO z<7fC^Ce~l|mVr*^!BrfL2MdrqJ@FI)L|?pK(7K}a393z0of$38A-e)82RKKU@XM+GiX?Y$A|=p{IK)2ld$R?8M=wUPAOfgq5a^ zjXY_~fw7l{P`h&ljSQ;F(xYQzv?H8HuM}KNO-j0-M-5?t<^wZ3n@*m2ebd~#%i(;jkY@`es^)?`9scc%tlnlUq+;7p=^6Tm`D0W}i)}TQA0bY8fVJ@Ykj4dfDYvd{ zjmUxdb}M2@x@URp28`;9B~+Ps7g`6cP9NO%S~Zm#UzG*YLiaT_OPTB(e#8W+bIJtG zHSn{{R7Ah+{aGq1u=3L$M3#B`zC!tx`wk~q^gwlhT41Cwgft#({kId%-IMMflvHxU{(d)BqpTjk&WEXSBpAD;%Rb zpPV1>?v#`9OCL@2@8?GllEy7V6uP>x>Ajs}Hm)}I8R(EtQ*KD5B(Y*OBNM)%$`!A2 zv+I7!11vu%pSE=1PZ>w~XKP*NFI`|o?X0yNT(?y(-ta%=LQ4K;p%&07YKL*_5P7rr zR9kKx+y`tt(7_svRuxC8;j)miAfSX?M|9Ladf4zeO?n&EMM2JE0Q6A5#?^TU3!~Vl zs4+YvJ!u|5x*cR;3M`2ol(60+K1QomP+|c!3SOBpo`2I4Al%NaA;URpKsgTQ`um*) z$$0jzaM_tG3$^<%+IquqoA<(IXZhE{tm>@gJUP5p{A3J6+&@8B1Ab`k#pS#XQGLsb z!I1N@6}*sK$&^j&E9UfVBsE3Cy09vRRbP@j2V8RUyS}$EzQISB8Wob;L&@gXJ0-qG zN5LYq5L0xS_C~Y5ieq)J$^evnrYxC3DF5rA^JvXg$)Z@TW4d~?c5Fm1;n8+WV9n3A zREIvTfx}B&q+1AP^S|orTG__8w)t@5vGN(1#THk!CKLHp`#)!zH7z`x^Y2abdkC%N zVpo9#I|*N>2gAEStK;2nH>2-d8UgV}Ce62}O-VSnpIx1GP7~)f>xpwmI^Gq>t9ccs zdo47kYWW=g+WUVuK=)o4jL>*SZet8NcRq)42(#4#7K&?jfMC8bH5#uho9aCC9Sc8| z&eN*3Xr9L%twp11piU_UMd7cxt!d0dy(tNJ+3&*_^j;1X9gV|DYj@pg2={0^wT+T5 z?Xw4UzW(|>jIRGsKJaB+PUaLZQP!rJ26J1VGh%$e>x-WKf|{S*YSJH@EETJjsGMoT zZ6{6eiS3#V@YL5Z@Hgy9@bEpRGI;>Z_}tQa8IhV#m14ak_?Dm8Rb(N8c>8!Bbg8nV z@Fnflx2C1NJLL_>Z|O7~CV@n+T&C@vpgqh~t(`X)qaj=ypFdgdNZsNlmAwU7;S#iO z`J>RxSlI>*l1c;-I(BztG~ID9hmZHLX}mTDprkNW`2*nM`NCrG^K)aoYd*>U5=8}T zz<8Trh(5#1==-ntBY@u7k%!+X7o>B<{Wf^*@YzUESz$bKtAufemd7|St0063A+%|% YzFqsNg>|5V=vOIWZ|#VBZRvIQe;Bk#LI3~& diff --git a/src/main/webapp/images/hv.png b/src/main/webapp/images/hv.png deleted file mode 100644 index 1c5e01f8bcecc4cf835e8eeeaa43ef2c06789022..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2865 zcmX9=3pmqV7@teXHB3Y-6(VIKN(`gs(lEJ2EJSn5Crm8<3KhyeDHUOICnT3LV_lSr zSZ;GyqBJp=+1PCR_SJKqbI$X;=RD_m-{1TDz3)kPaYD#Qs!D=DAQ^i*TUWu}ESNzO z!h$tb?&uc~NOHs8*4pjL*kZxr-PxxyX>x_gxykAYer+%xw7GJL6<~$lv;J_uukT@e zT+7b}$(pn*(JJ8$DZ#LZ01jlU-F%s?>x-3}&1jWkz{Hc;TVcidNj^67rKf!1D*@3) ztLL+`4RJ%9hMug+6V6!!-IHycuV!0OlQmpmv2CKSg0YG1{n}Dwm~{0fWmk@tnE%bH zGDMD}$zh}Xd*A5Jr>Ab?KaI7@rj$4go;`Iq6;(c5H(>=6GfP&HNa3NNYQLnDvJ2ne z$YJeDOOojN`RsDxcPJ(@V2^adMpBgs?_RszQhhwQTbkTUT9<$&gblmnY#tn#SD%?s z6!FjP;K)%vq`iXljQbV;EA`q3gN>D#kt_%-rrtu}_V)B!9x+O;F>_Uw;U$2LUW(r( zZ^t$jiL0NIPPJC#r9ftBYTo7JNd@BVMwfPoS>#W-s{js57)P8TQqF2LKJSC~q zN`(OhzStrI{*42`M}?+OHN|N(nHmc2&ss7X>pqp|EuFchzf#w`Q<>0h788{$3pLsi z{A+Y8H$ZvOeD+cX_=w?G*WmD7#5x;KQ;esP!0)6)^5AH8-y+H+(ltKN1HTE6jI?K z(Oj2zOym!q0yMO-dc+a4KFGVLQdOCayj7RKSbo5}XS%`Er&=Enk8l=Lt4N_|ws%>z zDTw$}Y`Nm#m5bv zhmbvJfbg?pPsmqI$V;VUb6K4%(8Blyamyoc^3Mt~#nxOV2-1;QS z7!g7Xk6~wu3v&9INnRdHE*gAiCyeFJfduHa!!F*?W}`Rm+67%Q2s@LIH)iL^`wkK? zP=B5?DxX)2ei6KWxu`4O*JwZU+*(Cn+LV2vEPKLR@_s$KUT7@2PHFKwyIUh>^m?5T z#Wg9M+ONj0h5LZ>!IpK?OV*wMW)AaJ>s;#DyjnhJJV%E}HpnL*e41CBd!#oRt0hRq zD7&FLe2(1tZe#9{PBC=l7=zkzp0E>J}%G@Q)V(&5;V; z_Ip{Z1E&&~f`Si(E^g}CJnwWVfQ{%Unn?l%XMGXgcA?zDBpPe^pO`J?UGQi2^T4)IUfoOnd(>JAQ8aPg@ zB_;;xwvXzblZt7u^BsB>aU@zJE1ch*TlQwuWu7BDuKT{66^RATo0B+Y!@Lhy1GSwWwEi=Q+}{?yp8BIm>I-u0&;G(EAzl`dWB zRwuQl%yBKwtv`^NR}gNuzg>8Y(x1DoZboBm7h9&Lhd6FL<64*y8ZDcoR+2S>La>P{ zdT}{ovrGh|#CyWM!R~Nh2aG>ZjO+}-icsKGb<8`S26!F3nT0k<6$)RZuei(y1^m-V z`FzfUFvRX2AB~LzUAD`t4sh4+X?+2kj20+cq*#lahA)7AosJ-k#=;GD*U}97uFLKj zo^@6(zQe&aeK^$2IN*IzWO-uxdlY3#5IvJ?Va5_yC8^$xf6c)Wz8!vpPzq^I#s8-J zYyM?GrR0`h}1un-M;JJa=H9Ncb^MF#<$~pqrt4epF8nadCmVNKJuIWM9YdYW&cwO1A~wUN zrd-jpV#03i+W0W%1&nO}Uy!h7u>^0`~OuH_{)(AjBe;hsQ!*)mO_DzpGRC zyox}(f&d2Gpi6^iw#eB7bVT;3FFa@cC>tM0 zh`Tj?={tK()4_woqpfX-$RrW>1rj>)NVFkyuySiiw7RSW_`4Px7jCb2c4SAc`*^t$*(d zB&ak&1Rbch68*E0=N1vmji9yfXFnH>R$*ue>|7dPIO)*efxInfOwf5~K+Ou1gVxLJ znHJS9zagvG#*KbWDL=8YuMi#xgFQZk9Mq{0A}gF)8u?-xvaEZdtqyUFRTrLq*p?!~??u&DrIz2ow@FRy0XX+-+%7G>uU0&kTN1W1G| zr>H6)4|9Ji%2`d{EBb%`9?5PNx968;9+OmY4|DC?&+M;;jN=L6in4xY&Q$twq0QFAeZuQ15|q?2tO{QUL* E0LKozl>h($ diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html index 81379dee..3df75d20 100644 --- a/src/main/webapp/index.html +++ b/src/main/webapp/index.html @@ -1,4 +1,3 @@ - @@ -394,14 +393,10 @@ background-color:transparent; } .geEditor ::-webkit-scrollbar-thumb { - background-color:rgba(0,0,0,.1); background-clip:padding-box; border:solid transparent; border-radius:10px; } - .geEditor ::-webkit-scrollbar-thumb:hover { - background-color:rgba(0,0,0,.4); - } .geTemplate { border:1px solid transparent; display:inline-block; diff --git a/src/main/webapp/js/app.min.js b/src/main/webapp/js/app.min.js index 00662e0c..9d8df707 100644 --- a/src/main/webapp/js/app.min.js +++ b/src/main/webapp/js/app.min.js @@ -1,7 +1,7 @@ //fgnass.github.com/spin.js#v2.0.0 !function(a,b){"object"==typeof exports?module.exports=b():"function"==typeof define&&define.amd?define(b):a.Spinner=b()}(this,function(){"use strict";function a(a,b){var c,d=document.createElement(a||"div");for(c in b)d[c]=b[c];return d}function b(a){for(var b=1,c=arguments.length;c>b;b++)a.appendChild(arguments[b]);return a}function c(a,b,c,d){var e=["opacity",b,~~(100*a),c,d].join("-"),f=.01+c/d*100,g=Math.max(1-(1-a)/b*(100-f),a),h=j.substring(0,j.indexOf("Animation")).toLowerCase(),i=h&&"-"+h+"-"||"";return l[e]||(m.insertRule("@"+i+"keyframes "+e+"{0%{opacity:"+g+"}"+f+"%{opacity:"+a+"}"+(f+.01)+"%{opacity:1}"+(f+b)%100+"%{opacity:"+a+"}100%{opacity:"+g+"}}",m.cssRules.length),l[e]=1),e}function d(a,b){var c,d,e=a.style;for(b=b.charAt(0).toUpperCase()+b.slice(1),d=0;d',c)}m.addRule(".spin-vml","behavior:url(#default#VML)"),h.prototype.lines=function(a,d){function f(){return e(c("group",{coordsize:k+" "+k,coordorigin:-j+" "+-j}),{width:k,height:k})}function h(a,h,i){b(m,b(e(f(),{rotation:360/d.lines*a+"deg",left:~~h}),b(e(c("roundrect",{arcsize:d.corners}),{width:j,height:d.width,left:d.radius,top:-d.width>>1,filter:i}),c("fill",{color:g(d.color,a),opacity:d.opacity}),c("stroke",{opacity:0}))))}var i,j=d.length+d.width,k=2*j,l=2*-(d.width+d.length)+"px",m=e(f(),{position:"absolute",top:l,left:l});if(d.shadow)for(i=1;i<=d.lines;i++)h(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=d.lines;i++)h(i);return b(a,m)},h.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d>1)+"px"})}for(var i,k=0,l=(f.lines-1)*(1-f.direction)/2;k1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function R(e){for(let t=0;t/gm),B=a(/\${[\w\W]*}/gm),W=a(/^data-[\-\w.\u00B7-\uFFFF]/),G=a(/^aria-[\-\w]+$/),Y=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=a(/^(?:\w+script|data):/i),X=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),q=a(/^html$/i),K=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var $=Object.freeze({__proto__:null,ARIA_ATTR:G,ATTR_WHITESPACE:X,CUSTOM_ELEMENT:K,DATA_ATTR:W,DOCTYPE_NAME:q,ERB_EXPR:F,IS_ALLOWED_URI:Y,IS_SCRIPT_OR_DATA:j,MUSTACHE_EXPR:H,TMPLIT_EXPR:B});const V=1,Z=3,J=7,Q=8,ee=9,te=function(){return"undefined"==typeof window?null:window};var ne=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:te();const o=e=>t(e);if(o.version="3.2.2",o.removed=[],!n||!n.document||n.document.nodeType!==ee)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:S,Node:b,Element:R,NodeFilter:H,NamedNodeMap:F=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:B,DOMParser:W,trustedTypes:G}=n,j=R.prototype,X=O(j,"cloneNode"),K=O(j,"remove"),ne=O(j,"nextSibling"),oe=O(j,"childNodes"),re=O(j,"parentNode");if("function"==typeof S){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let ie,ae="";const{implementation:le,createNodeIterator:ce,createDocumentFragment:se,getElementsByTagName:ue}=r,{importNode:me}=a;let pe={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};o.isSupported="function"==typeof e&&"function"==typeof re&&le&&void 0!==le.createHTMLDocument;const{MUSTACHE_EXPR:fe,ERB_EXPR:de,TMPLIT_EXPR:he,DATA_ATTR:ge,ARIA_ATTR:Te,IS_SCRIPT_OR_DATA:ye,ATTR_WHITESPACE:Ee,CUSTOM_ELEMENT:Ae}=$;let{IS_ALLOWED_URI:_e}=$,Se=null;const be=N({},[...D,...L,...v,...x,...k]);let Ne=null;const Re=N({},[...I,...U,...z,...P]);let we=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Oe=null,De=null,Le=!0,ve=!0,Ce=!1,xe=!0,Me=!1,ke=!0,Ie=!1,Ue=!1,ze=!1,Pe=!1,He=!1,Fe=!1,Be=!0,We=!1,Ge=!0,Ye=!1,je={},Xe=null;const qe=N({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ke=null;const $e=N({},["audio","video","img","source","image","track"]);let Ve=null;const Ze=N({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Je="http://www.w3.org/1998/Math/MathML",Qe="http://www.w3.org/2000/svg",et="http://www.w3.org/1999/xhtml";let tt=et,nt=!1,ot=null;const rt=N({},[Je,Qe,et],d);let it=N({},["mi","mo","mn","ms","mtext"]),at=N({},["annotation-xml"]);const lt=N({},["title","style","font","a","script"]);let ct=null;const st=["application/xhtml+xml","text/html"];let ut=null,mt=null;const pt=r.createElement("form"),ft=function(e){return e instanceof RegExp||e instanceof Function},dt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!mt||mt!==e){if(e&&"object"==typeof e||(e={}),e=w(e),ct=-1===st.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,ut="application/xhtml+xml"===ct?d:f,Se=E(e,"ALLOWED_TAGS")?N({},e.ALLOWED_TAGS,ut):be,Ne=E(e,"ALLOWED_ATTR")?N({},e.ALLOWED_ATTR,ut):Re,ot=E(e,"ALLOWED_NAMESPACES")?N({},e.ALLOWED_NAMESPACES,d):rt,Ve=E(e,"ADD_URI_SAFE_ATTR")?N(w(Ze),e.ADD_URI_SAFE_ATTR,ut):Ze,Ke=E(e,"ADD_DATA_URI_TAGS")?N(w($e),e.ADD_DATA_URI_TAGS,ut):$e,Xe=E(e,"FORBID_CONTENTS")?N({},e.FORBID_CONTENTS,ut):qe,Oe=E(e,"FORBID_TAGS")?N({},e.FORBID_TAGS,ut):{},De=E(e,"FORBID_ATTR")?N({},e.FORBID_ATTR,ut):{},je=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,Le=!1!==e.ALLOW_ARIA_ATTR,ve=!1!==e.ALLOW_DATA_ATTR,Ce=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Me=e.SAFE_FOR_TEMPLATES||!1,ke=!1!==e.SAFE_FOR_XML,Ie=e.WHOLE_DOCUMENT||!1,Pe=e.RETURN_DOM||!1,He=e.RETURN_DOM_FRAGMENT||!1,Fe=e.RETURN_TRUSTED_TYPE||!1,ze=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,We=e.SANITIZE_NAMED_PROPS||!1,Ge=!1!==e.KEEP_CONTENT,Ye=e.IN_PLACE||!1,_e=e.ALLOWED_URI_REGEXP||Y,tt=e.NAMESPACE||et,it=e.MATHML_TEXT_INTEGRATION_POINTS||it,at=e.HTML_INTEGRATION_POINTS||at,we=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ft(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(we.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ft(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(we.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(we.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Me&&(ve=!1),He&&(Pe=!0),je&&(Se=N({},k),Ne=[],!0===je.html&&(N(Se,D),N(Ne,I)),!0===je.svg&&(N(Se,L),N(Ne,U),N(Ne,P)),!0===je.svgFilters&&(N(Se,v),N(Ne,U),N(Ne,P)),!0===je.mathMl&&(N(Se,x),N(Ne,z),N(Ne,P))),e.ADD_TAGS&&(Se===be&&(Se=w(Se)),N(Se,e.ADD_TAGS,ut)),e.ADD_ATTR&&(Ne===Re&&(Ne=w(Ne)),N(Ne,e.ADD_ATTR,ut)),e.ADD_URI_SAFE_ATTR&&N(Ve,e.ADD_URI_SAFE_ATTR,ut),e.FORBID_CONTENTS&&(Xe===qe&&(Xe=w(Xe)),N(Xe,e.FORBID_CONTENTS,ut)),Ge&&(Se["#text"]=!0),Ie&&N(Se,["html","head","body"]),Se.table&&(N(Se,["tbody"]),delete Oe.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ie=e.TRUSTED_TYPES_POLICY,ae=ie.createHTML("")}else void 0===ie&&(ie=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(G,c)),null!==ie&&"string"==typeof ae&&(ae=ie.createHTML(""));i&&i(e),mt=e}},ht=N({},[...L,...v,...C]),gt=N({},[...x,...M]),Tt=function(e){p(o.removed,{element:e});try{re(e).removeChild(e)}catch(t){K(e)}},yt=function(e,t){try{p(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Pe||He)try{Tt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},Et=function(e){let t=null,n=null;if(ze)e=""+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ct&&tt===et&&(e=''+e+"");const o=ie?ie.createHTML(e):e;if(tt===et)try{t=(new W).parseFromString(o,ct)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(tt,"template",null);try{t.documentElement.innerHTML=nt?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),tt===et?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},At=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},_t=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof F)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},St=function(e){return"function"==typeof b&&e instanceof b};function bt(e,t,n){u(e,(e=>{e.call(o,t,n,mt)}))}const Nt=function(e){let t=null;if(bt(pe.beforeSanitizeElements,e,null),_t(e))return Tt(e),!0;const n=ut(e.nodeName);if(bt(pe.uponSanitizeElement,e,{tagName:n,allowedTags:Se}),e.hasChildNodes()&&!St(e.firstElementChild)&&A(/<[/\w]/g,e.innerHTML)&&A(/<[/\w]/g,e.textContent))return Tt(e),!0;if(e.nodeType===J)return Tt(e),!0;if(ke&&e.nodeType===Q&&A(/<[/\w]/g,e.data))return Tt(e),!0;if(!Se[n]||Oe[n]){if(!Oe[n]&&wt(n)){if(we.tagNameCheck instanceof RegExp&&A(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ge&&!Xe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,ne(e))}}}return Tt(e),!0}return e instanceof R&&!function(e){let t=re(e);t&&t.tagName||(t={namespaceURI:tt,tagName:"template"});const n=f(e.tagName),o=f(t.tagName);return!!ot[e.namespaceURI]&&(e.namespaceURI===Qe?t.namespaceURI===et?"svg"===n:t.namespaceURI===Je?"svg"===n&&("annotation-xml"===o||it[o]):Boolean(ht[n]):e.namespaceURI===Je?t.namespaceURI===et?"math"===n:t.namespaceURI===Qe?"math"===n&&at[o]:Boolean(gt[n]):e.namespaceURI===et?!(t.namespaceURI===Qe&&!at[o])&&!(t.namespaceURI===Je&&!it[o])&&!gt[n]&&(lt[n]||!ht[n]):!("application/xhtml+xml"!==ct||!ot[e.namespaceURI]))}(e)?(Tt(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!A(/<\/no(script|embed|frames)/i,e.innerHTML)?(Me&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),bt(pe.afterSanitizeElements,e,null),!1):(Tt(e),!0)},Rt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in pt))return!1;if(ve&&!De[t]&&A(ge,t));else if(Le&&A(Te,t));else if(!Ne[t]||De[t]){if(!(wt(e)&&(we.tagNameCheck instanceof RegExp&&A(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&A(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&A(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ve[t]);else if(A(_e,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!Ke[e]){if(Ce&&!A(ye,g(n,Ee,"")));else if(n)return!1}else;return!0},wt=function(e){return"annotation-xml"!==e&&h(e,Ae)},Ot=function(e){bt(pe.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t)return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ne,forceKeepAttr:void 0};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=ut(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,bt(pe.uponSanitizeAttribute,e,n),p=n.attrValue,!We||"id"!==s&&"name"!==s||(yt(a,e),p="user-content-"+p),ke&&A(/((--!?|])>)|<\/(style|title)/i,p)){yt(a,e);continue}if(n.forceKeepAttr)continue;if(yt(a,e),!n.keepAttr)continue;if(!xe&&A(/\/>/i,p)){yt(a,e);continue}Me&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=ut(e.nodeName);if(Rt(f,s,p)){if(ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),_t(e)?Tt(e):m(o.removed)}catch(e){}}}bt(pe.afterSanitizeAttributes,e,null)},Dt=function e(t){let n=null;const o=At(t);for(bt(pe.beforeSanitizeShadowDOM,t,null);n=o.nextNode();)bt(pe.uponSanitizeShadowNode,n,null),Nt(n)||(n.content instanceof s&&e(n.content),Ot(n));bt(pe.afterSanitizeShadowDOM,t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(nt=!e,nt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!St(e)){if("function"!=typeof e.toString)throw _("toString is not a function");if("string"!=typeof(e=e.toString()))throw _("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||dt(t),o.removed=[],"string"==typeof e&&(Ye=!1),Ye){if(e.nodeName){const t=ut(e.nodeName);if(!Se[t]||Oe[t])throw _("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Et("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Pe&&!Me&&!Ie&&-1===e.indexOf("<"))return ie&&Fe?ie.createHTML(e):e;if(n=Et(e),!n)return Pe?null:Fe?ae:""}n&&ze&&Tt(n.firstChild);const c=At(Ye?e:n);for(;i=c.nextNode();)Nt(i)||(i.content instanceof s&&Dt(i.content),Ot(i));if(Ye)return e;if(Pe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Ne.shadowroot||Ne.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Se["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&A(q,n.ownerDocument.doctype.name)&&(m="\n"+m),Me&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&Fe?ie.createHTML(m):m},o.setConfig=function(){dt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ue=!0},o.clearConfig=function(){mt=null,Ue=!1},o.isValidAttribute=function(e,t,n){mt||dt({});const o=ut(e),r=ut(t);return Rt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&p(pe[e],t)},o.removeHook=function(e){return m(pe[e])},o.removeHooks=function(e){pe[e]=[]},o.removeAllHooks=function(){pe={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},o}();return ne})); +/*! @license DOMPurify 3.2.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.3/LICENSE */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).DOMPurify=t()}(this,(function(){"use strict";const{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:o,getOwnPropertyDescriptor:r}=Object;let{freeze:i,seal:a,create:l}=Object,{apply:c,construct:s}="undefined"!=typeof Reflect&&Reflect;i||(i=function(e){return e}),a||(a=function(e){return e}),c||(c=function(e,t,n){return e.apply(t,n)}),s||(s=function(e,t){return new e(...t)});const u=b(Array.prototype.forEach),m=b(Array.prototype.pop),p=b(Array.prototype.push),f=b(String.prototype.toLowerCase),d=b(String.prototype.toString),h=b(String.prototype.match),g=b(String.prototype.replace),T=b(String.prototype.indexOf),y=b(String.prototype.trim),E=b(Object.prototype.hasOwnProperty),A=b(RegExp.prototype.test),_=(S=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n1?n-1:0),r=1;r2&&void 0!==arguments[2]?arguments[2]:f;t&&t(e,null);let i=o.length;for(;i--;){let t=o[i];if("string"==typeof t){const e=r(t);e!==t&&(n(o)||(o[i]=e),t=e)}e[t]=!0}return e}function R(e){for(let t=0;t/gm),B=a(/\$\{[\w\W]*}/gm),W=a(/^data-[\-\w.\u00B7-\uFFFF]+$/),G=a(/^aria-[\-\w]+$/),Y=a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),j=a(/^(?:\w+script|data):/i),X=a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),q=a(/^html$/i),$=a(/^[a-z][.\w]*(-[.\w]+)+$/i);var K=Object.freeze({__proto__:null,ARIA_ATTR:G,ATTR_WHITESPACE:X,CUSTOM_ELEMENT:$,DATA_ATTR:W,DOCTYPE_NAME:q,ERB_EXPR:F,IS_ALLOWED_URI:Y,IS_SCRIPT_OR_DATA:j,MUSTACHE_EXPR:H,TMPLIT_EXPR:B});const V=1,Z=3,J=7,Q=8,ee=9,te=function(){return"undefined"==typeof window?null:window};var ne=function t(){let n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:te();const o=e=>t(e);if(o.version="3.2.3",o.removed=[],!n||!n.document||n.document.nodeType!==ee)return o.isSupported=!1,o;let{document:r}=n;const a=r,c=a.currentScript,{DocumentFragment:s,HTMLTemplateElement:S,Node:b,Element:R,NodeFilter:H,NamedNodeMap:F=n.NamedNodeMap||n.MozNamedAttrMap,HTMLFormElement:B,DOMParser:W,trustedTypes:G}=n,j=R.prototype,X=O(j,"cloneNode"),$=O(j,"remove"),ne=O(j,"nextSibling"),oe=O(j,"childNodes"),re=O(j,"parentNode");if("function"==typeof S){const e=r.createElement("template");e.content&&e.content.ownerDocument&&(r=e.content.ownerDocument)}let ie,ae="";const{implementation:le,createNodeIterator:ce,createDocumentFragment:se,getElementsByTagName:ue}=r,{importNode:me}=a;let pe={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};o.isSupported="function"==typeof e&&"function"==typeof re&&le&&void 0!==le.createHTMLDocument;const{MUSTACHE_EXPR:fe,ERB_EXPR:de,TMPLIT_EXPR:he,DATA_ATTR:ge,ARIA_ATTR:Te,IS_SCRIPT_OR_DATA:ye,ATTR_WHITESPACE:Ee,CUSTOM_ELEMENT:Ae}=K;let{IS_ALLOWED_URI:_e}=K,Se=null;const be=N({},[...D,...L,...v,...x,...k]);let Ne=null;const Re=N({},[...I,...U,...z,...P]);let we=Object.seal(l(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Oe=null,De=null,Le=!0,ve=!0,Ce=!1,xe=!0,Me=!1,ke=!0,Ie=!1,Ue=!1,ze=!1,Pe=!1,He=!1,Fe=!1,Be=!0,We=!1,Ge=!0,Ye=!1,je={},Xe=null;const qe=N({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let $e=null;const Ke=N({},["audio","video","img","source","image","track"]);let Ve=null;const Ze=N({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Je="http://www.w3.org/1998/Math/MathML",Qe="http://www.w3.org/2000/svg",et="http://www.w3.org/1999/xhtml";let tt=et,nt=!1,ot=null;const rt=N({},[Je,Qe,et],d);let it=N({},["mi","mo","mn","ms","mtext"]),at=N({},["annotation-xml"]);const lt=N({},["title","style","font","a","script"]);let ct=null;const st=["application/xhtml+xml","text/html"];let ut=null,mt=null;const pt=r.createElement("form"),ft=function(e){return e instanceof RegExp||e instanceof Function},dt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!mt||mt!==e){if(e&&"object"==typeof e||(e={}),e=w(e),ct=-1===st.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,ut="application/xhtml+xml"===ct?d:f,Se=E(e,"ALLOWED_TAGS")?N({},e.ALLOWED_TAGS,ut):be,Ne=E(e,"ALLOWED_ATTR")?N({},e.ALLOWED_ATTR,ut):Re,ot=E(e,"ALLOWED_NAMESPACES")?N({},e.ALLOWED_NAMESPACES,d):rt,Ve=E(e,"ADD_URI_SAFE_ATTR")?N(w(Ze),e.ADD_URI_SAFE_ATTR,ut):Ze,$e=E(e,"ADD_DATA_URI_TAGS")?N(w(Ke),e.ADD_DATA_URI_TAGS,ut):Ke,Xe=E(e,"FORBID_CONTENTS")?N({},e.FORBID_CONTENTS,ut):qe,Oe=E(e,"FORBID_TAGS")?N({},e.FORBID_TAGS,ut):{},De=E(e,"FORBID_ATTR")?N({},e.FORBID_ATTR,ut):{},je=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,Le=!1!==e.ALLOW_ARIA_ATTR,ve=!1!==e.ALLOW_DATA_ATTR,Ce=e.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Me=e.SAFE_FOR_TEMPLATES||!1,ke=!1!==e.SAFE_FOR_XML,Ie=e.WHOLE_DOCUMENT||!1,Pe=e.RETURN_DOM||!1,He=e.RETURN_DOM_FRAGMENT||!1,Fe=e.RETURN_TRUSTED_TYPE||!1,ze=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,We=e.SANITIZE_NAMED_PROPS||!1,Ge=!1!==e.KEEP_CONTENT,Ye=e.IN_PLACE||!1,_e=e.ALLOWED_URI_REGEXP||Y,tt=e.NAMESPACE||et,it=e.MATHML_TEXT_INTEGRATION_POINTS||it,at=e.HTML_INTEGRATION_POINTS||at,we=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&ft(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(we.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&ft(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(we.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(we.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Me&&(ve=!1),He&&(Pe=!0),je&&(Se=N({},k),Ne=[],!0===je.html&&(N(Se,D),N(Ne,I)),!0===je.svg&&(N(Se,L),N(Ne,U),N(Ne,P)),!0===je.svgFilters&&(N(Se,v),N(Ne,U),N(Ne,P)),!0===je.mathMl&&(N(Se,x),N(Ne,z),N(Ne,P))),e.ADD_TAGS&&(Se===be&&(Se=w(Se)),N(Se,e.ADD_TAGS,ut)),e.ADD_ATTR&&(Ne===Re&&(Ne=w(Ne)),N(Ne,e.ADD_ATTR,ut)),e.ADD_URI_SAFE_ATTR&&N(Ve,e.ADD_URI_SAFE_ATTR,ut),e.FORBID_CONTENTS&&(Xe===qe&&(Xe=w(Xe)),N(Xe,e.FORBID_CONTENTS,ut)),Ge&&(Se["#text"]=!0),Ie&&N(Se,["html","head","body"]),Se.table&&(N(Se,["tbody"]),delete Oe.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');ie=e.TRUSTED_TYPES_POLICY,ae=ie.createHTML("")}else void 0===ie&&(ie=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const o="data-tt-policy-suffix";t&&t.hasAttribute(o)&&(n=t.getAttribute(o));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(G,c)),null!==ie&&"string"==typeof ae&&(ae=ie.createHTML(""));i&&i(e),mt=e}},ht=N({},[...L,...v,...C]),gt=N({},[...x,...M]),Tt=function(e){p(o.removed,{element:e});try{re(e).removeChild(e)}catch(t){$(e)}},yt=function(e,t){try{p(o.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){p(o.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Pe||He)try{Tt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},Et=function(e){let t=null,n=null;if(ze)e=""+e;else{const t=h(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ct&&tt===et&&(e=''+e+"");const o=ie?ie.createHTML(e):e;if(tt===et)try{t=(new W).parseFromString(o,ct)}catch(e){}if(!t||!t.documentElement){t=le.createDocument(tt,"template",null);try{t.documentElement.innerHTML=nt?ae:o}catch(e){}}const i=t.body||t.documentElement;return e&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),tt===et?ue.call(t,Ie?"html":"body")[0]:Ie?t.documentElement:i},At=function(e){return ce.call(e.ownerDocument||e,e,H.SHOW_ELEMENT|H.SHOW_COMMENT|H.SHOW_TEXT|H.SHOW_PROCESSING_INSTRUCTION|H.SHOW_CDATA_SECTION,null)},_t=function(e){return e instanceof B&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof F)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},St=function(e){return"function"==typeof b&&e instanceof b};function bt(e,t,n){u(e,(e=>{e.call(o,t,n,mt)}))}const Nt=function(e){let t=null;if(bt(pe.beforeSanitizeElements,e,null),_t(e))return Tt(e),!0;const n=ut(e.nodeName);if(bt(pe.uponSanitizeElement,e,{tagName:n,allowedTags:Se}),e.hasChildNodes()&&!St(e.firstElementChild)&&A(/<[/\w]/g,e.innerHTML)&&A(/<[/\w]/g,e.textContent))return Tt(e),!0;if(e.nodeType===J)return Tt(e),!0;if(ke&&e.nodeType===Q&&A(/<[/\w]/g,e.data))return Tt(e),!0;if(!Se[n]||Oe[n]){if(!Oe[n]&&wt(n)){if(we.tagNameCheck instanceof RegExp&&A(we.tagNameCheck,n))return!1;if(we.tagNameCheck instanceof Function&&we.tagNameCheck(n))return!1}if(Ge&&!Xe[n]){const t=re(e)||e.parentNode,n=oe(e)||e.childNodes;if(n&&t){for(let o=n.length-1;o>=0;--o){const r=X(n[o],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,ne(e))}}}return Tt(e),!0}return e instanceof R&&!function(e){let t=re(e);t&&t.tagName||(t={namespaceURI:tt,tagName:"template"});const n=f(e.tagName),o=f(t.tagName);return!!ot[e.namespaceURI]&&(e.namespaceURI===Qe?t.namespaceURI===et?"svg"===n:t.namespaceURI===Je?"svg"===n&&("annotation-xml"===o||it[o]):Boolean(ht[n]):e.namespaceURI===Je?t.namespaceURI===et?"math"===n:t.namespaceURI===Qe?"math"===n&&at[o]:Boolean(gt[n]):e.namespaceURI===et?!(t.namespaceURI===Qe&&!at[o])&&!(t.namespaceURI===Je&&!it[o])&&!gt[n]&&(lt[n]||!ht[n]):!("application/xhtml+xml"!==ct||!ot[e.namespaceURI]))}(e)?(Tt(e),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!A(/<\/no(script|embed|frames)/i,e.innerHTML)?(Me&&e.nodeType===Z&&(t=e.textContent,u([fe,de,he],(e=>{t=g(t,e," ")})),e.textContent!==t&&(p(o.removed,{element:e.cloneNode()}),e.textContent=t)),bt(pe.afterSanitizeElements,e,null),!1):(Tt(e),!0)},Rt=function(e,t,n){if(Be&&("id"===t||"name"===t)&&(n in r||n in pt))return!1;if(ve&&!De[t]&&A(ge,t));else if(Le&&A(Te,t));else if(!Ne[t]||De[t]){if(!(wt(e)&&(we.tagNameCheck instanceof RegExp&&A(we.tagNameCheck,e)||we.tagNameCheck instanceof Function&&we.tagNameCheck(e))&&(we.attributeNameCheck instanceof RegExp&&A(we.attributeNameCheck,t)||we.attributeNameCheck instanceof Function&&we.attributeNameCheck(t))||"is"===t&&we.allowCustomizedBuiltInElements&&(we.tagNameCheck instanceof RegExp&&A(we.tagNameCheck,n)||we.tagNameCheck instanceof Function&&we.tagNameCheck(n))))return!1}else if(Ve[t]);else if(A(_e,g(n,Ee,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==T(n,"data:")||!$e[e]){if(Ce&&!A(ye,g(n,Ee,"")));else if(n)return!1}else;return!0},wt=function(e){return"annotation-xml"!==e&&h(e,Ae)},Ot=function(e){bt(pe.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||_t(e))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ne,forceKeepAttr:void 0};let r=t.length;for(;r--;){const i=t[r],{name:a,namespaceURI:l,value:c}=i,s=ut(a);let p="value"===a?c:y(c);if(n.attrName=s,n.attrValue=p,n.keepAttr=!0,n.forceKeepAttr=void 0,bt(pe.uponSanitizeAttribute,e,n),p=n.attrValue,!We||"id"!==s&&"name"!==s||(yt(a,e),p="user-content-"+p),ke&&A(/((--!?|])>)|<\/(style|title)/i,p)){yt(a,e);continue}if(n.forceKeepAttr)continue;if(yt(a,e),!n.keepAttr)continue;if(!xe&&A(/\/>/i,p)){yt(a,e);continue}Me&&u([fe,de,he],(e=>{p=g(p,e," ")}));const f=ut(e.nodeName);if(Rt(f,s,p)){if(ie&&"object"==typeof G&&"function"==typeof G.getAttributeType)if(l);else switch(G.getAttributeType(f,s)){case"TrustedHTML":p=ie.createHTML(p);break;case"TrustedScriptURL":p=ie.createScriptURL(p)}try{l?e.setAttributeNS(l,a,p):e.setAttribute(a,p),_t(e)?Tt(e):m(o.removed)}catch(e){}}}bt(pe.afterSanitizeAttributes,e,null)},Dt=function e(t){let n=null;const o=At(t);for(bt(pe.beforeSanitizeShadowDOM,t,null);n=o.nextNode();)bt(pe.uponSanitizeShadowNode,n,null),Nt(n),Ot(n),n.content instanceof s&&e(n.content);bt(pe.afterSanitizeShadowDOM,t,null)};return o.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,i=null,l=null;if(nt=!e,nt&&(e="\x3c!--\x3e"),"string"!=typeof e&&!St(e)){if("function"!=typeof e.toString)throw _("toString is not a function");if("string"!=typeof(e=e.toString()))throw _("dirty is not a string, aborting")}if(!o.isSupported)return e;if(Ue||dt(t),o.removed=[],"string"==typeof e&&(Ye=!1),Ye){if(e.nodeName){const t=ut(e.nodeName);if(!Se[t]||Oe[t])throw _("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof b)n=Et("\x3c!----\x3e"),r=n.ownerDocument.importNode(e,!0),r.nodeType===V&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Pe&&!Me&&!Ie&&-1===e.indexOf("<"))return ie&&Fe?ie.createHTML(e):e;if(n=Et(e),!n)return Pe?null:Fe?ae:""}n&&ze&&Tt(n.firstChild);const c=At(Ye?e:n);for(;i=c.nextNode();)Nt(i),Ot(i),i.content instanceof s&&Dt(i.content);if(Ye)return e;if(Pe){if(He)for(l=se.call(n.ownerDocument);n.firstChild;)l.appendChild(n.firstChild);else l=n;return(Ne.shadowroot||Ne.shadowrootmode)&&(l=me.call(a,l,!0)),l}let m=Ie?n.outerHTML:n.innerHTML;return Ie&&Se["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&A(q,n.ownerDocument.doctype.name)&&(m="\n"+m),Me&&u([fe,de,he],(e=>{m=g(m,e," ")})),ie&&Fe?ie.createHTML(m):m},o.setConfig=function(){dt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Ue=!0},o.clearConfig=function(){mt=null,Ue=!1},o.isValidAttribute=function(e,t,n){mt||dt({});const o=ut(e),r=ut(t);return Rt(o,r,n)},o.addHook=function(e,t){"function"==typeof t&&p(pe[e],t)},o.removeHook=function(e){return m(pe[e])},o.removeHooks=function(e){pe[e]=[]},o.removeAllHooks=function(){pe={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},o}();return ne})); /* CryptoJS v3.1.2 code.google.com/p/crypto-js @@ -64,7 +64,7 @@ if("1"==urlParams.offline||"1"==urlParams.demo||"1"==urlParams.stealth||"1"==url "se.diagrams.net"==window.location.hostname&&(urlParams.db="0",urlParams.od="0",urlParams.gh="0",urlParams.gl="0",urlParams.tr="0",urlParams.plugins="0",urlParams.mode="google",urlParams.lockdown="1",window.DRAWIO_GOOGLE_APP_ID=window.DRAWIO_GOOGLE_APP_ID||"184079235871",window.DRAWIO_GOOGLE_CLIENT_ID=window.DRAWIO_GOOGLE_CLIENT_ID||"184079235871-pjf5nn0lff27lk8qf0770gmffiv9gt61.apps.googleusercontent.com");"trello"==urlParams.mode&&(urlParams.tr="1"); "embed.diagrams.net"==window.location.hostname&&(urlParams.embed="1");(null==window.location.hash||1>=window.location.hash.length)&&null!=urlParams.open&&(window.location.hash=urlParams.open);"function"!==typeof window.structuredClone&&(window.structuredClone=function(a){return a});window.urlParams=window.urlParams||{};window.DOM_PURIFY_CONFIG=window.DOM_PURIFY_CONFIG||{ADD_TAGS:["use","foreignObject"],FORBID_TAGS:["form"],ALLOWED_URI_REGEXP:/^((?!javascript:).)*$/i,HTML_INTEGRATION_POINTS:{foreignobject:!0},ADD_ATTR:["target","content","pointer-events","requiredFeatures"]};window.MAX_REQUEST_SIZE=window.MAX_REQUEST_SIZE||10485760;window.MAX_AREA=window.MAX_AREA||225E6;window.EXPORT_URL=window.EXPORT_URL||"/export";window.SAVE_URL=window.SAVE_URL||"/save"; window.OPEN_URL=window.OPEN_URL||"/open";window.RESOURCES_PATH=window.RESOURCES_PATH||"resources";window.RESOURCE_BASE=window.RESOURCE_BASE||window.RESOURCES_PATH+"/grapheditor";window.STENCIL_PATH=window.STENCIL_PATH||"stencils";window.IMAGE_PATH=window.IMAGE_PATH||"images";window.STYLE_PATH=window.STYLE_PATH||"styles";window.CSS_PATH=window.CSS_PATH||"styles";window.OPEN_FORM=window.OPEN_FORM||"open.html";window.mxBasePath=window.mxBasePath||"mxgraph"; -window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"25.0.2",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"), +window.mxImageBasePath=window.mxImageBasePath||"mxgraph/images";window.mxLanguage=window.mxLanguage||urlParams.lang;window.mxLanguages=window.mxLanguages||["de","se"];var mxClient={VERSION:"26.0.0",IS_IE:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("MSIE"),IS_IE11:null!=navigator.userAgent&&!!navigator.userAgent.match(/Trident\/7\./),IS_EDGE:null!=navigator.userAgent&&!!navigator.userAgent.match(/Edge\//),IS_EM:"spellcheck"in document.createElement("textarea")&&8==document.documentMode,VML_PREFIX:"v",OFFICE_PREFIX:"o",IS_NS:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Mozilla/")&&0>navigator.userAgent.indexOf("MSIE")&&0>navigator.userAgent.indexOf("Edge/"), IS_OP:null!=navigator.userAgent&&(0<=navigator.userAgent.indexOf("Opera/")||0<=navigator.userAgent.indexOf("OPR/")),IS_OT:null!=navigator.userAgent&&0<=navigator.userAgent.indexOf("Presto/")&&0>navigator.userAgent.indexOf("Presto/2.4.")&&0>navigator.userAgent.indexOf("Presto/2.3.")&&0>navigator.userAgent.indexOf("Presto/2.2.")&&0>navigator.userAgent.indexOf("Presto/2.1.")&&0>navigator.userAgent.indexOf("Presto/2.0.")&&0>navigator.userAgent.indexOf("Presto/1."),IS_SF:/Apple Computer, Inc/.test(navigator.vendor), IS_ANDROID:0<=navigator.appVersion.indexOf("Android"),IS_IOS:/iP(hone|od|ad)/.test(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&2navigator.userAgent.indexOf("Firefox/1.")&&0>navigator.userAgent.indexOf("Firefox/2.")||0<=navigator.userAgent.indexOf("Iceweasel/")&&0>navigator.userAgent.indexOf("Iceweasel/1.")&&0>navigator.userAgent.indexOf("Iceweasel/2.")||0<=navigator.userAgent.indexOf("SeaMonkey/")&&0>navigator.userAgent.indexOf("SeaMonkey/1.")||0<=navigator.userAgent.indexOf("Iceape/")&&0>navigator.userAgent.indexOf("Iceape/1."),IS_SVG:"MICROSOFT INTERNET EXPLORER"!=navigator.appName.toUpperCase(),NO_FO:!document.createElementNS|| @@ -92,38 +92,44 @@ mxRectangle.prototype.height=null;mxRectangle.prototype.setRect=function(a,b,c,d mxRectangle.prototype.add=function(a){if(null!=a){var b=Math.min(this.x,a.x),c=Math.min(this.y,a.y),d=Math.max(this.x+this.width,a.x+a.width);a=Math.max(this.y+this.height,a.y+a.height);this.x=b;this.y=c;this.width=d-b;this.height=a-c}};mxRectangle.prototype.intersect=function(a){if(null!=a){var b=this.x+this.width,c=a.x+a.width,d=this.y+this.height,e=a.y+a.height;this.x=Math.max(this.x,a.x);this.y=Math.max(this.y,a.y);this.width=Math.min(b,c)-this.x;this.height=Math.min(d,e)-this.y}}; mxRectangle.prototype.grow=function(a){this.x-=a;this.y-=a;this.width+=2*a;this.height+=2*a;return this};mxRectangle.prototype.getPoint=function(){return new mxPoint(this.x,this.y)};mxRectangle.prototype.rotate90=function(){var a=(this.width-this.height)/2;this.x+=a;this.y-=a;a=this.width;this.width=this.height;this.height=a};mxRectangle.prototype.equals=function(a){return null!=a&&a.x==this.x&&a.y==this.y&&a.width==this.width&&a.height==this.height}; mxRectangle.fromPoint=function(a){return new mxRectangle(a.x,a.y,0,0)};mxRectangle.fromRectangle=function(a){return new mxRectangle(a.x,a.y,a.width,a.height)}; -var mxEffects={animateChanges:function(a,b,c){var d=0,e=function(){for(var g=!1,k=0;kd&&g?(d++,window.setTimeout(e,f)):null!=c&&c()},f=30;e()},cascadeOpacity:function(a,b,c){for(var d=a.model.getChildCount(b),e=0;ed&&g?(d++,window.setTimeout(e,f)):null!=c&&c()},f=30;e()},cascadeOpacity:function(a,b,c){for(var d=a.model.getChildCount(b),e=0;edocument.documentMode)?function(a){return null!=a?a.currentStyle:null}:function(a){return null!=a?window.getComputedStyle(a, -""):null}}(),getCssFontFamily:function(a){if("string"===typeof a){a=a.split(",");for(var b=0;bdocument.documentMode&&(a="ms");return function(b,c,d){b[c]=d;null!=a&&0mxUtils.indexOf(a,b[c])&&a.push(b[c]));return a},isNode:function(a, -b,c,d){return null==a||a.constructor!==Element||null!=b&&a.nodeName.toLowerCase()!=b.toLowerCase()?!1:null==c||a.getAttribute(c)==d},isAncestorNode:function(a,b){for(;null!=b;){if(b==a)return!0;b=b.parentNode}return!1},visitNodes:function(a,b){if(a.nodeType==mxConstants.NODETYPE_ELEMENT)for(b(a),a=a.firstChild;null!=a;)mxUtils.visitNodes(a,b),a=a.nextSibling},getChildNodes:function(a,b){b=b||mxConstants.NODETYPE_ELEMENT;var c=[];for(a=a.firstChild;null!=a;)a.nodeType==b&&c.push(a),a=a.nextSibling; -return c},removeChildNodes:function(a){for(;null!=a.lastChild;)a.removeChild(a.lastChild)},importNode:function(a,b,c){return mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode)?mxUtils.importNodeImplementation(a,b,c):a.importNode(b,c)},importNodeImplementation:function(a,b,c){switch(b.nodeType){case 1:var d=a.createElement(b.nodeName);if(b.attributes&&0/g,">");if(null==c||c)a=a.replace(/"/g,"""),a=a.replace(/'/g,"'");if(null==b||b)a=a.replace(/\n/g," "); -if(null==d||d)a=a.replace(/\t/g," ");return a},decodeHtml:function(a){var b=document.createElement("textarea");b.innerHTML=a;return b.value},getXml:function(a,b){var c="";mxClient.IS_IE||mxClient.IS_IE11?c=mxUtils.getPrettyXml(a,"","",""):null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g,"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||" ")},getPrettyXml:function(a,b,c,d,e){var f=[];if(null!=a)if(b= -null!=b?b:" ",c=null!=c?c:"",d=null!=d?d:"\n",null!=a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_DOCUMENT)f.push(mxUtils.getPrettyXml(a.documentElement,b,c,d,e));else if(a.nodeType==mxConstants.NODETYPE_DOCUMENT_FRAGMENT){var g=a.firstChild;if(null!=g)for(;null!=g;)f.push(mxUtils.getPrettyXml(g,b,c,d,e)),g=g.nextSibling}else if(a.nodeType==mxConstants.NODETYPE_COMMENT)a=mxUtils.getTextContent(a), -0"+ -d);null!=g;)f.push(mxUtils.getPrettyXml(g,b,c+b,d,e)),g=g.nextSibling;f.push(c+""+d)}else f.push(" />"+d)}return f.join("")},extractTextWithWhitespace:function(a){function b(e){if(1!=e.length||"BR"!=e[0].nodeName&&"\n"!=e[0].innerHTML)for(var f=0;f"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0"):(b.push(">"),b.push(a.innerHTML),b.push(""));return b.join("")}return""}:function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){b=a.ownerDocument.createTextNode(b);null!= -a&&a.appendChild(b);return b},writeln:function(a,b){b=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(b),a.appendChild(document.createElement("br")));return b},br:function(a,b){b=b||1;for(var c=null,d=0;dk&&(a.style.left=Math.max(g+b,k-e)+"px");d=parseInt(a.offsetTop);e=parseInt(a.offsetHeight);c=f+c.height-b;d+e>c&&(a.style.top=Math.max(f+b,c-e)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f,g){a=new mxXmlRequest(a,null,"GET");var k=a.setRequestHeaders;g&&(a.setRequestHeaders=function(l,m){k.apply(this,arguments);for(var n in g)l.setRequestHeader(n,g[n])});null!=d&&a.setBinary(d);a.send(b,c,e,f);return a}, -getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;kp||299document.documentMode)?function(a){return null!=a?a.currentStyle:null}:function(a){return null!=a?window.getComputedStyle(a,""):null}}(),getCssFontFamily:function(a){if("string"===typeof a){a=a.split(",");for(var b=0;bdocument.documentMode&& +(a="ms");return function(b,c,d){b[c]=d;null!=a&&0mxUtils.indexOf(a,b[c])&&a.push(b[c]));return a},isNode:function(a,b,c,d){return null==a||a.constructor!==Element||null!=b&&a.nodeName.toLowerCase()!=b.toLowerCase()?!1:null==c||a.getAttribute(c)==d},isAncestorNode:function(a,b){for(;null!=b;){if(b==a)return!0;b=b.parentNode}return!1},visitNodes:function(a,b){if(a.nodeType==mxConstants.NODETYPE_ELEMENT)for(b(a),a=a.firstChild;null!=a;)mxUtils.visitNodes(a, +b),a=a.nextSibling},getChildNodes:function(a,b){b=b||mxConstants.NODETYPE_ELEMENT;var c=[];for(a=a.firstChild;null!=a;)a.nodeType==b&&c.push(a),a=a.nextSibling;return c},removeChildNodes:function(a){for(;null!=a.lastChild;)a.removeChild(a.lastChild)},importNode:function(a,b,c){return mxClient.IS_IE&&(null==document.documentMode||10>document.documentMode)?mxUtils.importNodeImplementation(a,b,c):a.importNode(b,c)},importNodeImplementation:function(a,b,c){switch(b.nodeType){case 1:var d=a.createElement(b.nodeName); +if(b.attributes&&0/g,">");if(null==c||c)a=a.replace(/"/g,"""),a=a.replace(/'/g,"'");if(null==b||b)a=a.replace(/\n/g," ");if(null==d||d)a=a.replace(/\t/g," ");return a},decodeHtml:function(a){var b=document.createElement("textarea");b.innerHTML=a;return b.value},getXml:function(a,b){var c="";mxClient.IS_IE||mxClient.IS_IE11?c=mxUtils.getPrettyXml(a,"","",""):null!=window.XMLSerializer?c=(new XMLSerializer).serializeToString(a):null!=a.xml&&(c=a.xml.replace(/\r\n\t[\t]*/g, +"").replace(/>\r\n/g,">").replace(/\r\n/g,"\n"));return c.replace(/\n/g,b||" ")},getPrettyXml:function(a,b,c,d,e){var f=[];if(null!=a)if(b=null!=b?b:" ",c=null!=c?c:"",d=null!=d?d:"\n",null!=a.namespaceURI&&a.namespaceURI!=e&&(e=a.namespaceURI,null==a.getAttribute("xmlns")&&a.setAttribute("xmlns",a.namespaceURI)),a.nodeType==mxConstants.NODETYPE_DOCUMENT)f.push(mxUtils.getPrettyXml(a.documentElement,b,c,d,e));else if(a.nodeType==mxConstants.NODETYPE_DOCUMENT_FRAGMENT){var g=a.firstChild;if(null!= +g)for(;null!=g;)f.push(mxUtils.getPrettyXml(g,b,c,d,e)),g=g.nextSibling}else if(a.nodeType==mxConstants.NODETYPE_COMMENT)a=mxUtils.getTextContent(a),0"+d);null!=g;)f.push(mxUtils.getPrettyXml(g,b,c+b,d,e)),g=g.nextSibling;f.push(c+""+d)}else f.push(" />"+d)}return f.join("")},extractTextWithWhitespace:function(a){function b(e){if(1!=e.length||"BR"!=e[0].nodeName&&"\n"!=e[0].innerHTML)for(var f=0;f"==g.innerHTML.toLowerCase()?d.push("\n"):(3===g.nodeType||4===g.nodeType?0"):(b.push(">"),b.push(a.innerHTML),b.push(""));return b.join("")}return""}: +function(a){return null!=a?(new XMLSerializer).serializeToString(a):""}}(),write:function(a,b){b=a.ownerDocument.createTextNode(b);null!=a&&a.appendChild(b);return b},writeln:function(a,b){b=a.ownerDocument.createTextNode(b);null!=a&&(a.appendChild(b),a.appendChild(document.createElement("br")));return b},br:function(a,b){b=b||1;for(var c=null,d=0;dk&&(a.style.left=Math.max(g+b,k-e)+"px");d=parseInt(a.offsetTop);e=parseInt(a.offsetHeight);c=f+c.height-b;d+e>c&&(a.style.top=Math.max(f+b,c-e)+"px")},load:function(a){a=new mxXmlRequest(a,null,"GET",!1);a.send();return a},get:function(a,b,c,d,e,f,g){a=new mxXmlRequest(a,null,"GET");var k=a.setRequestHeaders; +g&&(a.setRequestHeaders=function(l,m){k.apply(this,arguments);for(var n in g)l.setRequestHeader(n,g[n])});null!=d&&a.setBinary(d);a.send(b,c,e,f);return a},getAll:function(a,b,c){for(var d=a.length,e=[],f=0,g=function(){0==f&&null!=c&&c();f++},k=0;kp||299.213*a.r+.715*a.g+.072*a.b:!1},parseLightDarkColor:function(a,b,c){var d= +a,e=null;null!=a&&(a=a.match(mxUtils.lightDarkColorRegex))&&3===a.length&&(d=mxUtils.trim(a[1]),e=mxUtils.trim(a[2]));null==e&&(c||mxUtils.isVarColor(d))&&(e=d);e=null!=e?e:null!=b?b:mxUtils.getInverseColor(d);return{light:d,dark:e}},getInverseColor:function(a,b,c){function d(m){return Math.round(b/100*(255-m)+m*(1-b/100))}function e(m){return Math.round(Math.max(0,Math.min(255,m)))}c=null!=c?c:180;b=null!=b?b:93;var f=0,g=0,k=0;if("transparent"==a.toLowerCase())return a;k=mxUtils.parseColor(a);if(null== +k)return a;f=k.r;g=k.g;k=k.b;f=d(f);g=d(g);k=d(k);a=[1,0,0,0,1,0,0,0,1];var l=Math.cos(c*Math.PI/180);c=Math.sin(c*Math.PI/180);a[0]=.2126+.7874*l-.2126*c;a[1]=.7152-.7152*l-.7152*c;a[2]=.0722-.0722*l+.9278*c;a[3]=.2126-.2126*l+.143*c;a[4]=.7152+(1-.7152)*l+.14*c;a[5]=.0722-.0722*l-.283*c;a[6]=.2126-.2126*l-.7874*c;a[7]=.7152-.7152*l+.7152*c;a[8]=.0722+.9278*l+.0722*c;c=e(a[0]*f+a[1]*g+a[2]*k);l=e(a[3]*f+a[4]*g+a[5]*k);f=e(a[6]*f+a[7]*g+a[8]*k);return"#"+(16777216|c<<16|l<<8|f).toString(16).slice(1)}, +addAlphaToColor:function(a,b){null!=b&&null!=a&&"transparent"!=a&&(a=mxUtils.parseColor(a),a="rgba("+a.r+","+a.g+","+a.b+","+b+")");return a},getLightDarkColor:function(a,b,c,d){var e={light:"transparent",dark:"transparent",cssText:"transparent"};null!=a&&a!=mxConstants.NONE&&(a=mxUtils.parseLightDarkColor(a,c,d),e.light=mxUtils.addAlphaToColor(a.light,b),e.dark=mxUtils.addAlphaToColor(a.dark,b),e.cssText=mxUtils.lightDarkColorSupported?"light-dark("+e.light+", "+e.dark+")":mxUtils.preferDarkColor? +e.dark:e.light);return e},invertLightDarkColor:function(a){var b={};b.light=a.dark;b.dark=a.light;b.cssText="light-dark("+b.light+", "+b.dark+")";return b},getColor:function(a,b,c){a=null!=a?a[b]:null;null==a?a=c:a==mxConstants.NONE&&(a=null);return a},isEmptyObject:function(a){for(var b in a)return!1;return!0},clone:function(a,b,c){c=null!=c?c:!1;var d=null;if(null!=a&&"function"==typeof a.constructor)if(a.constructor===Element)d=a.cloneNode(null!=c?!c:!1);else{d=new a.constructor;for(var e in a)e!= mxObjectIdentity.FIELD_NAME&&(null==b||0>mxUtils.indexOf(b,e))&&(d[e]=c||"object"!=typeof a[e]?a[e]:mxUtils.clone(a[e]))}return d},equalPoints:function(a,b){if(null==a&&null!=b||null!=a&&null==b||null!=a&&null!=b&&a.length!=b.length)return!1;if(null!=a&&null!=b)for(var c=0;c [Function]\n";else if("object"==typeof a[c]){var d=mxUtils.getFunctionName(a[c].constructor);b+=c+" => ["+d+"]\n"}else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return E;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/180);E=Math.sin(e*Math.PI/180); -e=p*m+E*n;m=-1*E*m+p*n;n=e*e;var r=m*m,q=c*c,t=d*d,u=n/q+r/t;1e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2); -n=p*c;p*=d;c*=E;d*=E;var v=Math.cos(f),z=Math.sin(f);r=-m*(n*z+d*v);q=-m*(c*z-p*v);for(var E=[],C=0;C [Function]\n";else if("object"==typeof a[c]){var d=mxUtils.getFunctionName(a[c].constructor);b+=c+" => ["+d+"]\n"}else b+=c+" = "+a[c]+"\n"}catch(e){b+=c+"="+e.message}return b},toRadians:function(a){return Math.PI*a/180},toDegree:function(a){return 180*a/Math.PI},arcToCurves:function(a,b,c,d,e,f,g,k,l){k-=a;l-=b;if(0===c||0===d)return A;c=Math.abs(c);d=Math.abs(d);var m=-k/2,n=-l/2,p=Math.cos(e*Math.PI/180);A=Math.sin(e*Math.PI/180); +e=p*m+A*n;m=-1*A*m+p*n;n=e*e;var q=m*m,r=c*c,t=d*d,u=n/r+q/t;1e&&(e+=2*Math.PI);g=2*e/Math.PI;g=Math.ceil(0>g?-1*g:g);e/=g;m=8/3*Math.sin(e/4)*Math.sin(e/4)/Math.sin(e/2); +n=p*c;p*=d;c*=A;d*=A;var x=Math.cos(f),y=Math.sin(f);q=-m*(n*y+d*x);r=-m*(c*y-p*x);for(var A=[],z=0;z c&&(a=3,-135>=c&&(a=2));if(0<=d.indexOf(mxConstants.DIRECTION_NORTH))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 1:b|=mxConstants.DIRECTION_MASK_EAST;break;case 2:b|=mxConstants.DIRECTION_MASK_SOUTH;break;case 3:b|=mxConstants.DIRECTION_MASK_WEST}if(0<=d.indexOf(mxConstants.DIRECTION_WEST))switch(a){case 0:b|=mxConstants.DIRECTION_MASK_WEST;break;case 1:b|=mxConstants.DIRECTION_MASK_NORTH;break;case 2:b|=mxConstants.DIRECTION_MASK_EAST;break;case 3:b|=mxConstants.DIRECTION_MASK_SOUTH}if(0<= @@ -143,46 +149,46 @@ g&&0<=e&&1>=e?new mxPoint(a+g*(c-a),b+g*(d-b)):null},ptSegDistSq:function(a,b,c, arguments)},cascadeOpacity:function(a,b,c){mxEffects.cascadeOpacity.apply(this,arguments)},fadeOut:function(a,b,c,d,e,f){mxEffects.fadeOut.apply(this,arguments)},setOpacity:function(a,b){mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?a.style.filter=100<=b?"":"alpha(opacity="+b+")":a.style.opacity=b/100},createElementNs:function(a,b,c){if(null!=a.createElementNS)return a.createElementNS(b,c);a=a.createElement(c);null!=namespace&&a.setAttribute("xmlns",b);return a}, createImage:function(a){var b=document.createElement("img");b.setAttribute("src",a);b.setAttribute("border","0");return b},sortCells:function(a,b){b=null!=b?b:!0;var c=new mxDictionary;a.sort(function(d,e){var f=c.get(d);null==f&&(f=mxCellPath.create(d).split(mxCellPath.PATH_SEPARATOR),c.put(d,f));d=c.get(e);null==d&&(d=mxCellPath.create(e).split(mxCellPath.PATH_SEPARATOR),c.put(e,d));e=mxCellPath.compare(f,d);return 0==e?0:0a.indexOf("="))?a:""},getStylenames:function(a){var b=[];if(null!=a){a=a.split(";");for(var c=0;ca[c].indexOf("=")&&b.push(a[c])}return b},indexOfStylename:function(a,b){if(null!=a&&null!=b){a=a.split(";");for(var c=0,d=0;dmxUtils.indexOfStylename(a,b)&&(null==a?a="":0e?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length- -1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0e)e=";"== -a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",e),g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a, -b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?b*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT*mxSvgCanvas2D.prototype.lineHeightCorrection;null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"), -b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e= -c.width-2*d;c=c.height-2*d;d=mxRectangle.fromRectangle(b.getGraphBounds());b=b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){g=Math.floor(c)/c;var k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10";g=document.getElementsByTagName("base");for(c=0;c
')+a.container.innerHTML;b.writeln(d+"
");b.close()}else{b.writeln("");g=document.getElementsByTagName("base");for(c=0;c');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild; -for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g),f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()}, -popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px";c.style.height="460px";b=document.createElement("pre");b.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"
").replace(/ /g," ");c.appendChild(b);c=new mxWindow("Popup Window",c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(), -c.document.writeln("
"+mxUtils.htmlEntities(a)+"").replace(/ /g," "),c.document.body.appendChild(b))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",
-d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),
-c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",function(k){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=
-g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(n){return"function"==typeof b?b(n):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(n){var p=d.cloneNode(!0),r=parseInt(p.style.width),q=parseInt(p.style.height);p.style.width=Math.round(r*n.view.scale)+"px";p.style.height=Math.round(q*n.view.scale)+"px";return p}));return a},format:function(a){return parseFloat(parseFloat(a).toFixed(2))}},
-mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"#808080",VML_SHADOWCOLOR:"#808080",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_BLUR:2,SHADOW_OPACITY:1,
-NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",
-CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,
-EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",
-ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",
-STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_FILL_STYLE:"fillStyle",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_BLOCK_SPACING:"blockSpacing",STYLE_ORTHOGONAL:"orthogonal",
-STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",
-STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",
-STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",
-STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",STYLE_SHADOW:"shadow",STYLE_TEXT_SHADOW:"textShadow",STYLE_SHADOW_OFFSET_X:"shadowOffsetX",STYLE_SHADOW_OFFSET_Y:"shadowOffsetY",STYLE_SHADOW_BLUR:"shadowBlur",STYLE_SHADOWCOLOR:"shadowColor",STYLE_SHADOW_OPACITY:"shadowOpacity",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",
-STYLE_SWIMLANE_HEAD:"swimlaneHead",STYLE_SWIMLANE_BODY:"swimlaneBody",STYLE_ENDFILL:"endFill",STYLE_ENDFILLCOLOR:"endFillColor",STYLE_STARTFILL:"startFill",STYLE_STARTFILLCOLOR:"startFillColor",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",
-STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_AUTOSIZE_GRID:"autosizeGrid",STYLE_FIXED_WIDTH:"fixedWidth",
-STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",
-STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",STYLE_CLIP_PATH:"clipPath",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",
-SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",
-DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",TEXT_DIRECTION_RTL:"rtl",TEXT_DIRECTION_VERTICAL_LR:"vertical-lr",TEXT_DIRECTION_VERTICAL_RL:"vertical-rl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",
-EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};
-function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;be?";":a.substring(e)):0>e||e==a.length-1?"":a.substring(e+1)}else{var f=a.indexOf(";"+b+"=");0>f?d&&(d=";"==a.charAt(a.length-1)?"":";",a=a+d+b+"="+c+";"):(e=a.indexOf(";",f+1),a=d?a.substring(0,f+1)+b+"="+c+(0>e?
+";":a.substring(e)):a.substring(0,f)+(0>e?";":a.substring(e)))}return a},setCellStyleFlags:function(a,b,c,d,e){if(null!=b&&0e)e=";"==a.charAt(a.length-1)?"":";",a=d||null==d?a+e+b+"="+c:a+e+b+"=0";else{var f=a.indexOf(";",
+e),g=0>f?a.substring(e+b.length+1):a.substring(e+b.length+1,f);g=null==d?parseInt(g)^c:d?parseInt(g)|c:parseInt(g)&~c;a=a.substring(0,e)+b+"="+g+(0<=f?a.substring(f):"")}}return a},getAlignmentAsPoint:function(a,b){var c=-.5,d=-.5;a==mxConstants.ALIGN_LEFT?c=0:a==mxConstants.ALIGN_RIGHT&&(c=-1);b==mxConstants.ALIGN_TOP?d=0:b==mxConstants.ALIGN_BOTTOM&&(d=-1);return new mxPoint(c,d)},getSizeForString:function(a,b,c,d,e){b=null!=b?b:mxConstants.DEFAULT_FONTSIZE;c=null!=c?c:mxConstants.DEFAULT_FONTFAMILY;
+var f=document.createElement("div");f.style.fontFamily=c;f.style.fontSize=Math.round(b)+"px";f.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?b*mxConstants.LINE_HEIGHT+"px":mxConstants.LINE_HEIGHT*mxSvgCanvas2D.prototype.lineHeightCorrection;null!=e&&((e&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD&&(f.style.fontWeight="bold"),(e&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC&&(f.style.fontStyle="italic"),b=[],(e&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&b.push("underline"),
+(e&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&b.push("line-through"),0a)return 1;c=null!=c?c:mxConstants.PAGE_FORMAT_A4_PORTRAIT;d=null!=d?d:0;var e=c.width-2*d;c=c.height-2*d;d=mxRectangle.fromRectangle(b.getGraphBounds());b=
+b.getView().getScale();d.width/=b;d.height/=b;b=d.width;var f=Math.sqrt(a);d=Math.sqrt(b/d.height/(e/c));c=f*d;d=f/d;if(1>c&&d>a){var g=d/a;d=a;c/=g}1>d&&c>a&&(g=c/a,c=a,d/=g);g=Math.ceil(c)*Math.ceil(d);for(f=0;g>a;){g=Math.floor(c)/c;var k=Math.floor(d)/d;1==g&&(g=Math.floor(c-1)/c);1==k&&(k=Math.floor(d-1)/d);g=g>k?g:k;c*=g;d*=g;g=Math.ceil(c)*Math.ceil(d);f++;if(10";g=document.getElementsByTagName("base");for(c=0;c";for(c=0;c
')+a.container.innerHTML;b.writeln(d+"
");b.close()}else{b.writeln("");g=document.getElementsByTagName("base");for(c=0;c');b.close();c=b.createElement("div");c.position="absolute";c.overflow="hidden";c.style.width=e+"px";c.style.height=f+"px";e=b.createElement("div");e.style.position="absolute";e.style.left=k+"px";e.style.top=l+"px";f=a.container.firstChild;for(d=null;null!=f;)g=f.cloneNode(!0),f==a.view.drawPane.ownerSVGElement?(c.appendChild(g),d=g):e.appendChild(g), +f=f.nextSibling;b.body.appendChild(c);null!=e.firstChild&&b.body.appendChild(e);null!=d&&(d.style.minWidth="",d.style.minHeight="",d.firstChild.setAttribute("transform","translate("+k+","+l+")"))}mxUtils.removeCursors(b.body);return b},printScreen:function(a){var b=window.open();mxUtils.show(a,b.document);a=function(){b.focus();b.print();b.close()};mxClient.IS_GC?b.setTimeout(a,500):a()},popup:function(a,b){if(b){var c=document.createElement("div");c.style.overflow="scroll";c.style.width="636px"; +c.style.height="460px";b=document.createElement("pre");b.innerHTML=mxUtils.htmlEntities(a,!1).replace(/\n/g,"
").replace(/ /g," ");c.appendChild(b);c=new mxWindow("Popup Window",c,document.body.clientWidth/2-320,Math.max(document.body.clientHeight||0,document.documentElement.clientHeight)/2-240,640,480,!1,!0);c.setClosable(!0);c.setVisible(!0)}else mxClient.IS_NS?(c=window.open(),c.document.writeln("
"+mxUtils.htmlEntities(a)+"").replace(/ /g," "),c.document.body.appendChild(b))},alert:function(a){alert(a)},prompt:function(a,b){return prompt(a,null!=b?b:"")},confirm:function(a){return confirm(a)},error:function(a,b,c,d){var e=document.createElement("div");e.style.padding="20px";var f=document.createElement("img");f.setAttribute("src",d||mxUtils.errorImage);f.setAttribute("valign","bottom");f.style.verticalAlign="middle";e.appendChild(f);e.appendChild(document.createTextNode(" "));
+e.appendChild(document.createTextNode(" "));e.appendChild(document.createTextNode(" "));mxUtils.write(e,a);a=document.body.clientWidth;d=document.body.clientHeight||document.documentElement.clientHeight;var g=new mxWindow(mxResources.get(mxUtils.errorResource)||mxUtils.errorResource,e,(a-b)/2,d/4,b,null,!1,!0);c&&(mxUtils.br(e),b=document.createElement("p"),c=document.createElement("button"),mxClient.IS_IE?c.style.cssText="float:right":c.setAttribute("style","float:right"),mxEvent.addListener(c,"click",
+function(k){g.destroy()}),mxUtils.write(c,mxResources.get(mxUtils.closeResource)||mxUtils.closeResource),b.appendChild(c),e.appendChild(b),mxUtils.br(e),g.setClosable(!0));g.setVisible(!0);return g},makeDraggable:function(a,b,c,d,e,f,g,k,l,m){a=new mxDragSource(a,c);a.dragOffset=new mxPoint(null!=e?e:0,null!=f?f:mxConstants.TOOLTIP_VERTICAL_OFFSET);a.autoscroll=g;a.setGuidesEnabled(!1);null!=l&&(a.highlightDropTargets=l);null!=m&&(a.getDropTarget=m);a.getGraphForEvent=function(n){return"function"==
+typeof b?b(n):b};null!=d&&(a.createDragElement=function(){return d.cloneNode(!0)},k&&(a.createPreviewElement=function(n){var p=d.cloneNode(!0),q=parseInt(p.style.width),r=parseInt(p.style.height);p.style.width=Math.round(q*n.view.scale)+"px";p.style.height=Math.round(r*n.view.scale)+"px";return p}));return a},format:function(a){return parseFloat(parseFloat(a).toFixed(2))}},mxConstants={DEFAULT_HOTSPOT:.3,MIN_HOTSPOT_SIZE:8,MAX_HOTSPOT_SIZE:0,RENDERING_HINT_EXACT:"exact",RENDERING_HINT_FASTER:"faster",
+RENDERING_HINT_FASTEST:"fastest",DIALECT_SVG:"svg",DIALECT_MIXEDHTML:"mixedHtml",DIALECT_PREFERHTML:"preferHtml",DIALECT_STRICTHTML:"strictHtml",NS_SVG:"http://www.w3.org/2000/svg",NS_XHTML:"http://www.w3.org/1999/xhtml",NS_XLINK:"http://www.w3.org/1999/xlink",SHADOWCOLOR:"#808080",VML_SHADOWCOLOR:"#808080",SHADOW_OFFSET_X:2,SHADOW_OFFSET_Y:3,SHADOW_BLUR:2,SHADOW_OPACITY:1,NODETYPE_ELEMENT:1,NODETYPE_ATTRIBUTE:2,NODETYPE_TEXT:3,NODETYPE_CDATA:4,NODETYPE_ENTITY_REFERENCE:5,NODETYPE_ENTITY:6,NODETYPE_PROCESSING_INSTRUCTION:7,
+NODETYPE_COMMENT:8,NODETYPE_DOCUMENT:9,NODETYPE_DOCUMENTTYPE:10,NODETYPE_DOCUMENT_FRAGMENT:11,NODETYPE_NOTATION:12,TOOLTIP_VERTICAL_OFFSET:16,DEFAULT_VALID_COLOR:"#00FF00",DEFAULT_INVALID_COLOR:"#FF0000",OUTLINE_HIGHLIGHT_COLOR:"#00FF00",OUTLINE_HIGHLIGHT_STROKEWIDTH:5,HIGHLIGHT_STROKEWIDTH:3,HIGHLIGHT_SIZE:2,HIGHLIGHT_OPACITY:100,CURSOR_MOVABLE_VERTEX:"move",CURSOR_MOVABLE_EDGE:"move",CURSOR_LABEL_HANDLE:"default",CURSOR_TERMINAL_HANDLE:"pointer",CURSOR_BEND_HANDLE:"crosshair",CURSOR_VIRTUAL_BEND_HANDLE:"crosshair",
+CURSOR_CONNECT:"pointer",HIGHLIGHT_COLOR:"#00FF00",CONNECT_TARGET_COLOR:"#0000FF",INVALID_CONNECT_TARGET_COLOR:"#FF0000",DROP_TARGET_COLOR:"#0000FF",VALID_COLOR:"#00FF00",INVALID_COLOR:"#FF0000",EDGE_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_COLOR:"#00FF00",VERTEX_SELECTION_STROKEWIDTH:1,EDGE_SELECTION_STROKEWIDTH:1,VERTEX_SELECTION_DASHED:!0,EDGE_SELECTION_DASHED:!0,GUIDE_COLOR:"#FF0000",GUIDE_STROKEWIDTH:1,OUTLINE_COLOR:"#0099FF",OUTLINE_STROKEWIDTH:mxClient.IS_IE?2:3,HANDLE_SIZE:6,LABEL_HANDLE_SIZE:4,
+HANDLE_FILLCOLOR:"#00FF00",HANDLE_STROKECOLOR:"black",LABEL_HANDLE_FILLCOLOR:"yellow",CONNECT_HANDLE_FILLCOLOR:"#0000FF",LOCKED_HANDLE_FILLCOLOR:"#FF0000",OUTLINE_HANDLE_FILLCOLOR:"#00FFFF",OUTLINE_HANDLE_STROKECOLOR:"#0033FF",DEFAULT_FONTFAMILY:"Arial,Helvetica",DEFAULT_FONTSIZE:11,DEFAULT_TEXT_DIRECTION:"",LINE_HEIGHT:1.2,WORD_WRAP:"normal",ABSOLUTE_LINE_HEIGHT:!1,DEFAULT_FONTSTYLE:0,DEFAULT_STARTSIZE:40,DEFAULT_MARKERSIZE:6,DEFAULT_IMAGESIZE:24,ENTITY_SEGMENT:30,RECTANGLE_ROUNDING_FACTOR:.15,LINE_ARCSIZE:20,
+ARROW_SPACING:0,ARROW_WIDTH:30,ARROW_SIZE:30,PAGE_FORMAT_A4_PORTRAIT:new mxRectangle(0,0,827,1169),PAGE_FORMAT_A4_LANDSCAPE:new mxRectangle(0,0,1169,827),PAGE_FORMAT_LETTER_PORTRAIT:new mxRectangle(0,0,850,1100),PAGE_FORMAT_LETTER_LANDSCAPE:new mxRectangle(0,0,1100,850),NONE:"none",STYLE_PERIMETER:"perimeter",STYLE_SOURCE_PORT:"sourcePort",STYLE_TARGET_PORT:"targetPort",STYLE_PORT_CONSTRAINT:"portConstraint",STYLE_PORT_CONSTRAINT_ROTATION:"portConstraintRotation",STYLE_SOURCE_PORT_CONSTRAINT:"sourcePortConstraint",
+STYLE_TARGET_PORT_CONSTRAINT:"targetPortConstraint",STYLE_OPACITY:"opacity",STYLE_FILL_OPACITY:"fillOpacity",STYLE_FILL_STYLE:"fillStyle",STYLE_STROKE_OPACITY:"strokeOpacity",STYLE_TEXT_OPACITY:"textOpacity",STYLE_TEXT_DIRECTION:"textDirection",STYLE_OVERFLOW:"overflow",STYLE_BLOCK_SPACING:"blockSpacing",STYLE_ORTHOGONAL:"orthogonal",STYLE_EXIT_X:"exitX",STYLE_EXIT_Y:"exitY",STYLE_EXIT_DX:"exitDx",STYLE_EXIT_DY:"exitDy",STYLE_EXIT_PERIMETER:"exitPerimeter",STYLE_ENTRY_X:"entryX",STYLE_ENTRY_Y:"entryY",
+STYLE_ENTRY_DX:"entryDx",STYLE_ENTRY_DY:"entryDy",STYLE_ENTRY_PERIMETER:"entryPerimeter",STYLE_WHITE_SPACE:"whiteSpace",STYLE_ROTATION:"rotation",STYLE_FILLCOLOR:"fillColor",STYLE_POINTER_EVENTS:"pointerEvents",STYLE_SWIMLANE_FILLCOLOR:"swimlaneFillColor",STYLE_MARGIN:"margin",STYLE_GRADIENTCOLOR:"gradientColor",STYLE_GRADIENT_DIRECTION:"gradientDirection",STYLE_STROKECOLOR:"strokeColor",STYLE_SEPARATORCOLOR:"separatorColor",STYLE_STROKEWIDTH:"strokeWidth",STYLE_ALIGN:"align",STYLE_VERTICAL_ALIGN:"verticalAlign",
+STYLE_LABEL_WIDTH:"labelWidth",STYLE_LABEL_POSITION:"labelPosition",STYLE_VERTICAL_LABEL_POSITION:"verticalLabelPosition",STYLE_IMAGE_ASPECT:"imageAspect",STYLE_IMAGE_ALIGN:"imageAlign",STYLE_IMAGE_VERTICAL_ALIGN:"imageVerticalAlign",STYLE_GLASS:"glass",STYLE_IMAGE:"image",STYLE_IMAGE_WIDTH:"imageWidth",STYLE_IMAGE_HEIGHT:"imageHeight",STYLE_IMAGE_BACKGROUND:"imageBackground",STYLE_IMAGE_BORDER:"imageBorder",STYLE_FLIPH:"flipH",STYLE_FLIPV:"flipV",STYLE_NOLABEL:"noLabel",STYLE_NOEDGESTYLE:"noEdgeStyle",
+STYLE_LABEL_BACKGROUNDCOLOR:"labelBackgroundColor",STYLE_LABEL_BORDERCOLOR:"labelBorderColor",STYLE_LABEL_PADDING:"labelPadding",STYLE_INDICATOR_SHAPE:"indicatorShape",STYLE_INDICATOR_IMAGE:"indicatorImage",STYLE_INDICATOR_COLOR:"indicatorColor",STYLE_INDICATOR_STROKECOLOR:"indicatorStrokeColor",STYLE_INDICATOR_GRADIENTCOLOR:"indicatorGradientColor",STYLE_INDICATOR_SPACING:"indicatorSpacing",STYLE_INDICATOR_WIDTH:"indicatorWidth",STYLE_INDICATOR_HEIGHT:"indicatorHeight",STYLE_INDICATOR_DIRECTION:"indicatorDirection",
+STYLE_SHADOW:"shadow",STYLE_TEXT_SHADOW:"textShadow",STYLE_SHADOW_OFFSET_X:"shadowOffsetX",STYLE_SHADOW_OFFSET_Y:"shadowOffsetY",STYLE_SHADOW_BLUR:"shadowBlur",STYLE_SHADOWCOLOR:"shadowColor",STYLE_SHADOW_OPACITY:"shadowOpacity",STYLE_SEGMENT:"segment",STYLE_ENDARROW:"endArrow",STYLE_STARTARROW:"startArrow",STYLE_ENDSIZE:"endSize",STYLE_STARTSIZE:"startSize",STYLE_SWIMLANE_LINE:"swimlaneLine",STYLE_SWIMLANE_HEAD:"swimlaneHead",STYLE_SWIMLANE_BODY:"swimlaneBody",STYLE_ENDFILL:"endFill",STYLE_ENDFILLCOLOR:"endFillColor",
+STYLE_STARTFILL:"startFill",STYLE_STARTFILLCOLOR:"startFillColor",STYLE_DASHED:"dashed",STYLE_DASH_PATTERN:"dashPattern",STYLE_FIX_DASH:"fixDash",STYLE_ROUNDED:"rounded",STYLE_CURVED:"curved",STYLE_ARCSIZE:"arcSize",STYLE_ABSOLUTE_ARCSIZE:"absoluteArcSize",STYLE_SOURCE_PERIMETER_SPACING:"sourcePerimeterSpacing",STYLE_TARGET_PERIMETER_SPACING:"targetPerimeterSpacing",STYLE_PERIMETER_SPACING:"perimeterSpacing",STYLE_SPACING:"spacing",STYLE_SPACING_TOP:"spacingTop",STYLE_SPACING_LEFT:"spacingLeft",STYLE_SPACING_BOTTOM:"spacingBottom",
+STYLE_SPACING_RIGHT:"spacingRight",STYLE_HORIZONTAL:"horizontal",STYLE_DIRECTION:"direction",STYLE_ANCHOR_POINT_DIRECTION:"anchorPointDirection",STYLE_ELBOW:"elbow",STYLE_FONTCOLOR:"fontColor",STYLE_FONTFAMILY:"fontFamily",STYLE_FONTSIZE:"fontSize",STYLE_FONTSTYLE:"fontStyle",STYLE_ASPECT:"aspect",STYLE_AUTOSIZE:"autosize",STYLE_AUTOSIZE_GRID:"autosizeGrid",STYLE_FIXED_WIDTH:"fixedWidth",STYLE_FOLDABLE:"foldable",STYLE_EDITABLE:"editable",STYLE_BACKGROUND_OUTLINE:"backgroundOutline",STYLE_BENDABLE:"bendable",
+STYLE_MOVABLE:"movable",STYLE_RESIZABLE:"resizable",STYLE_RESIZE_WIDTH:"resizeWidth",STYLE_RESIZE_HEIGHT:"resizeHeight",STYLE_ROTATABLE:"rotatable",STYLE_CLONEABLE:"cloneable",STYLE_DELETABLE:"deletable",STYLE_SHAPE:"shape",STYLE_EDGE:"edgeStyle",STYLE_JETTY_SIZE:"jettySize",STYLE_SOURCE_JETTY_SIZE:"sourceJettySize",STYLE_TARGET_JETTY_SIZE:"targetJettySize",STYLE_LOOP:"loopStyle",STYLE_ORTHOGONAL_LOOP:"orthogonalLoop",STYLE_ROUTING_CENTER_X:"routingCenterX",STYLE_ROUTING_CENTER_Y:"routingCenterY",
+STYLE_CLIP_PATH:"clipPath",FONT_BOLD:1,FONT_ITALIC:2,FONT_UNDERLINE:4,FONT_STRIKETHROUGH:8,SHAPE_RECTANGLE:"rectangle",SHAPE_ELLIPSE:"ellipse",SHAPE_DOUBLE_ELLIPSE:"doubleEllipse",SHAPE_RHOMBUS:"rhombus",SHAPE_LINE:"line",SHAPE_IMAGE:"image",SHAPE_ARROW:"arrow",SHAPE_ARROW_CONNECTOR:"arrowConnector",SHAPE_LABEL:"label",SHAPE_CYLINDER:"cylinder",SHAPE_SWIMLANE:"swimlane",SHAPE_CONNECTOR:"connector",SHAPE_ACTOR:"actor",SHAPE_CLOUD:"cloud",SHAPE_TRIANGLE:"triangle",SHAPE_HEXAGON:"hexagon",ARROW_CLASSIC:"classic",
+ARROW_CLASSIC_THIN:"classicThin",ARROW_BLOCK:"block",ARROW_BLOCK_THIN:"blockThin",ARROW_OPEN:"open",ARROW_OPEN_THIN:"openThin",ARROW_OVAL:"oval",ARROW_DIAMOND:"diamond",ARROW_DIAMOND_THIN:"diamondThin",ALIGN_LEFT:"left",ALIGN_CENTER:"center",ALIGN_RIGHT:"right",ALIGN_TOP:"top",ALIGN_MIDDLE:"middle",ALIGN_BOTTOM:"bottom",DIRECTION_NORTH:"north",DIRECTION_SOUTH:"south",DIRECTION_EAST:"east",DIRECTION_WEST:"west",DIRECTION_RADIAL:"radial",TEXT_DIRECTION_DEFAULT:"",TEXT_DIRECTION_AUTO:"auto",TEXT_DIRECTION_LTR:"ltr",
+TEXT_DIRECTION_RTL:"rtl",TEXT_DIRECTION_VERTICAL_LR:"vertical-lr",TEXT_DIRECTION_VERTICAL_RL:"vertical-rl",DIRECTION_MASK_NONE:0,DIRECTION_MASK_WEST:1,DIRECTION_MASK_NORTH:2,DIRECTION_MASK_SOUTH:4,DIRECTION_MASK_EAST:8,DIRECTION_MASK_ALL:15,ELBOW_VERTICAL:"vertical",ELBOW_HORIZONTAL:"horizontal",EDGESTYLE_ELBOW:"elbowEdgeStyle",EDGESTYLE_ENTITY_RELATION:"entityRelationEdgeStyle",EDGESTYLE_LOOP:"loopEdgeStyle",EDGESTYLE_SIDETOSIDE:"sideToSideEdgeStyle",EDGESTYLE_TOPTOBOTTOM:"topToBottomEdgeStyle",
+EDGESTYLE_ORTHOGONAL:"orthogonalEdgeStyle",EDGESTYLE_SEGMENT:"segmentEdgeStyle",PERIMETER_ELLIPSE:"ellipsePerimeter",PERIMETER_RECTANGLE:"rectanglePerimeter",PERIMETER_RHOMBUS:"rhombusPerimeter",PERIMETER_HEXAGON:"hexagonPerimeter",PERIMETER_TRIANGLE:"trianglePerimeter"};function mxEventObject(a){this.name=a;this.properties=[];for(var b=1;be.x+(document.body.clientWidth||f.clientWidth)&&(b.div.style.left=Math.max(0,a.div.offsetLeft-d+16)+"px");b.div.style.overflowY="auto";b.div.style.overflowX=
 "hidden";b.div.style.maxHeight=Math.max(document.body.clientHeight,document.documentElement.clientHeight)-10+"px";mxUtils.fit(b.div)}};
@@ -368,43 +374,45 @@ mxXmlCanvas2D.prototype.image=function(a,b,c,d,e,f,g,k){e=this.converter.convert
 mxXmlCanvas2D.prototype.begin=function(){this.root.appendChild(this.createElement("begin"));this.lastY=this.lastX=0};mxXmlCanvas2D.prototype.moveTo=function(a,b){var c=this.createElement("move");c.setAttribute("x",this.format(a));c.setAttribute("y",this.format(b));this.root.appendChild(c);this.lastX=a;this.lastY=b};
 mxXmlCanvas2D.prototype.lineTo=function(a,b){var c=this.createElement("line");c.setAttribute("x",this.format(a));c.setAttribute("y",this.format(b));this.root.appendChild(c);this.lastX=a;this.lastY=b};mxXmlCanvas2D.prototype.quadTo=function(a,b,c,d){var e=this.createElement("quad");e.setAttribute("x1",this.format(a));e.setAttribute("y1",this.format(b));e.setAttribute("x2",this.format(c));e.setAttribute("y2",this.format(d));this.root.appendChild(e);this.lastX=c;this.lastY=d};
 mxXmlCanvas2D.prototype.curveTo=function(a,b,c,d,e,f){var g=this.createElement("curve");g.setAttribute("x1",this.format(a));g.setAttribute("y1",this.format(b));g.setAttribute("x2",this.format(c));g.setAttribute("y2",this.format(d));g.setAttribute("x3",this.format(e));g.setAttribute("y3",this.format(f));this.root.appendChild(g);this.lastX=e;this.lastY=f};mxXmlCanvas2D.prototype.close=function(){this.root.appendChild(this.createElement("close"))};
-mxXmlCanvas2D.prototype.text=function(a,b,c,d,e,f,g,k,l,m,n,p,r){if(this.textEnabled&&null!=e){mxUtils.isNode(e)&&(e=mxUtils.getOuterHtml(e));var q=this.createElement("text");q.setAttribute("x",this.format(a));q.setAttribute("y",this.format(b));q.setAttribute("w",this.format(c));q.setAttribute("h",this.format(d));q.setAttribute("str",e);null!=f&&q.setAttribute("align",f);null!=g&&q.setAttribute("valign",g);q.setAttribute("wrap",k?"1":"0");null==l&&(l="");q.setAttribute("format",l);null!=m&&q.setAttribute("overflow",
-m);null!=n&&q.setAttribute("clip",n?"1":"0");null!=p&&q.setAttribute("rotation",p);null!=r&&q.setAttribute("dir",r);this.root.appendChild(q)}};mxXmlCanvas2D.prototype.stroke=function(){this.root.appendChild(this.createElement("stroke"))};mxXmlCanvas2D.prototype.fill=function(){this.root.appendChild(this.createElement("fill"))};mxXmlCanvas2D.prototype.fillAndStroke=function(){this.root.appendChild(this.createElement("fillstroke"))};
-function mxSvgCanvas2D(a,b){mxAbstractCanvas2D.call(this);this.root=a;this.gradients=[];this.fillPatterns=[];this.defs=null;this.styleEnabled=null!=b?b:!1;b=null;if(a.ownerDocument!=document){for(;null!=a&&"svg"!=a.nodeName;)a=a.parentNode;b=a}null!=b&&(0a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);var b=!1;if(null!=a.fillColor)if(null!=a.gradientColor&&a.gradientColor!=mxConstants.NONE){b=!0;var c=this.getSvgGradient(String(a.fillColor),String(a.gradientColor),a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection);if(this.root.ownerDocument==document&&this.useAbsoluteIds){var d=this.getBaseUrl().replace(/([\(\)])/g,"\\$1");d="url("+d+"#"+c+
-")"}else d="url(#"+c+")"}else d=String(a.fillColor).toLowerCase();a=null==a.fillStyle||"auto"==a.fillStyle||"solid"==a.fillStyle?null:this.getFillPattern(a.fillStyle,this.getCurrentStrokeWidth(),d,a.scale);b||null==a?this.node.setAttribute("fill",d):this.root.ownerDocument==document&&this.useAbsoluteIds?(d=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),this.node.setAttribute("fill","url("+d+"#"+a+")")):this.node.setAttribute("fill","url(#"+a+")")};
-mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,Math.max(.01,this.format(this.state.strokeWidth*this.state.scale)))};
-mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state;this.node.setAttribute("stroke",String(a.strokeColor).toLowerCase());(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);var b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?1:a.strokeWidth)*a.scale))};
-mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
+mxSvgCanvas2D.prototype.updateFill=function(){var a=this.state;(1>a.alpha||1>a.fillAlpha)&&this.node.setAttribute("fill-opacity",a.alpha*a.fillAlpha);var b=!1;if(null!=a.fillColor)if(null!=a.gradientColor&&a.gradientColor!=mxConstants.NONE){b=!0;var c=this.getSvgGradient(String(a.fillColor),String(a.gradientColor),a.gradientFillAlpha,a.gradientAlpha,a.gradientDirection);if(this.root.ownerDocument==document&&this.useAbsoluteIds){var d=this.getBaseUrl().replace(/([\(\)])/g,"\\$1");c="url("+d+"#"+c+
+")"}else c="url(#"+c+")";d=c}else c=this.getLightDarkColor(String(a.fillColor).toLowerCase()),d=c.light,c=c.cssText;a=null==a.fillStyle||"auto"==a.fillStyle||"solid"==a.fillStyle?null:this.getFillPattern(a.fillStyle,this.getCurrentStrokeWidth(),c,a.scale);b||null==a?(this.node.setAttribute("fill",d),this.node.style.fill=c):this.root.ownerDocument==document&&this.useAbsoluteIds?(d=this.getBaseUrl().replace(/([\(\)])/g,"\\$1"),this.node.setAttribute("fill","url("+d+"#"+a+")")):this.node.setAttribute("fill",
+"url(#"+a+")")};mxSvgCanvas2D.prototype.getCurrentStrokeWidth=function(){return Math.max(this.minStrokeWidth,Math.max(.01,this.format(this.state.strokeWidth*this.state.scale)))};
+mxSvgCanvas2D.prototype.updateStroke=function(){var a=this.state,b=this.getLightDarkColor(String(a.strokeColor).toLowerCase());this.node.setAttribute("stroke",b.light);this.node.style.stroke=b.cssText;(1>a.alpha||1>a.strokeAlpha)&&this.node.setAttribute("stroke-opacity",a.alpha*a.strokeAlpha);b=this.getCurrentStrokeWidth();1!=b&&this.node.setAttribute("stroke-width",b);"path"==this.node.nodeName&&this.updateStrokeAttributes();a.dashed&&this.node.setAttribute("stroke-dasharray",this.createDashPattern((a.fixDash?
+1:a.strokeWidth)*a.scale))};mxSvgCanvas2D.prototype.updateStrokeAttributes=function(){var a=this.state;null!=a.lineJoin&&"miter"!=a.lineJoin&&this.node.setAttribute("stroke-linejoin",a.lineJoin);if(null!=a.lineCap){var b=a.lineCap;"flat"==b&&(b="butt");"butt"!=b&&this.node.setAttribute("stroke-linecap",b)}null==a.miterLimit||this.styleEnabled&&10==a.miterLimit||this.node.setAttribute("stroke-miterlimit",a.miterLimit)};
 mxSvgCanvas2D.prototype.createDashPattern=function(a){var b=[];if("string"===typeof this.state.dashPattern){var c=this.state.dashPattern.split(" ");if(0m.alpha||1>m.fillAlpha)&&n.setAttribute("opacity",m.alpha*m.fillAlpha);e=this.state.transform||"";if(g||k){var p=f=1,r=0,q=0;g&&(f=-1,r=-c-2*a);k&&(p=-1,q=-d-2*b);e+="scale("+f+","+p+")translate("+r*m.scale+","+q*m.scale+")"}0m.alpha||1>m.fillAlpha)&&n.setAttribute("opacity",m.alpha*m.fillAlpha);e=this.state.transform||"";if(g||k){var p=f=1,q=0,r=0;g&&(f=-1,q=-c-2*a);k&&(p=-1,r=-d-2*b);e+="scale("+f+","+p+")translate("+q*m.scale+","+r*m.scale+")"}0",5)+1)),""==a.substring(a.length-7,a.length)&&(a=a.substring(0,a.length-7)))}else{if(null!=document.implementation&&null!=document.implementation.createDocument){b=document.implementation.createDocument("http://www.w3.org/1999/xhtml","html",null);var c=b.createElement("body");
@@ -421,19 +429,19 @@ b.documentElement.appendChild(c);var d=document.createElement("div");d.innerHTML
 "&").replace(/
/g,"
").replace(/
/g,"
").replace(/(]+)>/gm,"$1 />")}return a}; mxSvgCanvas2D.prototype.createDiv=function(a){mxUtils.isNode(a)||(a="
"+this.convertHtml(a)+"
");if(mxClient.IS_IE||mxClient.IS_IE11||!document.createElementNS)return mxUtils.isNode(a)&&(a="
"+mxUtils.getXml(a)+"
"),mxUtils.parseXml('
'+a+"
").documentElement;var b=document.createElementNS("http://www.w3.org/1999/xhtml","div");if(mxUtils.isNode(a)){var c=document.createElement("div"),d=c.cloneNode(!1);this.root.ownerDocument!= document?c.appendChild(a.cloneNode(!0)):c.appendChild(a);d.appendChild(c);b.appendChild(d)}else b.innerHTML=a;return b};mxSvgCanvas2D.prototype.updateText=function(a,b,c,d,e,f,g,k,l,m,n,p){null!=p&&null!=p.firstChild&&null!=p.firstChild.firstChild&&this.updateTextNodes(a,b,c,d,e,f,g,k,l,m,n,p.firstChild)}; -mxSvgCanvas2D.prototype.addForeignObject=function(a,b,c,d,e,f,g,k,l,m,n,p,r,q,t){var u=this.addTitle(this.createElement("g")),v=this.createElement("foreignObject");this.setCssText(v,"overflow: visible; text-align: left;");v.setAttribute("pointer-events","none");q.ownerDocument!=document&&(q=mxUtils.importNodeImplementation(v.ownerDocument,q,!0));v.appendChild(q);u.appendChild(v);this.updateTextNodes(a,b,c,d,f,g,k,m,n,p,r,u);this.root.ownerDocument!=document&&(a=this.createAlternateContent(v,a,b,c, -d,e,f,g,k,l,m,n,p),null!=a&&(v.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),b=this.createElement("switch"),b.appendChild(v),b.appendChild(a),u.appendChild(b)));t.appendChild(u)}; -mxSvgCanvas2D.prototype.updateTextNodes=function(a,b,c,d,e,f,g,k,l,m,n,p){var r=this.state.scale,q="",t="";null!=n&&"vertical-"==n.substring(0,9)?(q="-rl"==n.substring(n.length-3),t=e==mxConstants.ALIGN_LEFT?q?"flex-end":"flex-start":e==mxConstants.ALIGN_RIGHT?q?"flex-start":"flex-end":"center",q=f==mxConstants.ALIGN_TOP?"flex-start":f==mxConstants.ALIGN_BOTTOM?"flex-end":"center"):(t=f==mxConstants.ALIGN_TOP?"flex-start":f==mxConstants.ALIGN_BOTTOM?"flex-end":"center",q=e==mxConstants.ALIGN_LEFT? -"flex-start":e==mxConstants.ALIGN_RIGHT?"flex-end":"center");mxSvgCanvas2D.createCss(c+this.foreignObjectPadding,d,e,f,g,k,l,n,null!=this.state.fontBackgroundColor?this.state.fontBackgroundColor:null,null!=this.state.fontBorderColor?this.state.fontBorderColor:null,"display: flex; align-items: unsafe "+t+"; justify-content: unsafe "+q+"; "+(null!=n&&"vertical-"==n.substring(0,9)?"writing-mode: "+n+";":""),this.getTextCss(),r,mxUtils.bind(this,function(u,v,z,E,C){a+=this.state.dx;b+=this.state.dy;var F= -p.firstChild;"title"==F.nodeName&&(F=F.nextSibling);var D=F.firstChild,x=D.firstChild,y=(this.rotateHtml?this.state.rotation:0)+(null!=m?m:0),B=(0!=this.foOffset?"translate("+this.foOffset+" "+this.foOffset+")":"")+(1!=r?"scale("+r+")":"");this.setCssText(x.firstChild,C);this.setCssText(x,E);x.setAttribute("data-drawio-colors","color: "+this.state.fontColor+"; "+(null==this.state.fontBackgroundColor?"":"background-color: "+this.state.fontBackgroundColor+"; ")+(null==this.state.fontBorderColor?"": -"border-color: "+this.state.fontBorderColor+"; "));F.setAttribute("width",Math.ceil(1/Math.min(1,r)*100)+"%");F.setAttribute("height",Math.ceil(1/Math.min(1,r)*100)+"%");v=Math.round(b+v);0>v?(F.setAttribute("y",v),z+="padding-top: 0; "):(F.removeAttribute("y"),z+="padding-top: "+v+"px; ");this.setCssText(D,z+"margin-left: "+Math.round(a+u)+"px;");B+=0!=y?"rotate("+y+" "+a+" "+b+")":"";""!=B?p.setAttribute("transform",B):p.removeAttribute("transform");1!=this.state.alpha?p.setAttribute("opacity", +mxSvgCanvas2D.prototype.addForeignObject=function(a,b,c,d,e,f,g,k,l,m,n,p,q,r,t){var u=this.addTitle(this.createElement("g")),x=this.createElement("foreignObject");this.setCssText(x,"overflow: visible; text-align: left;");x.setAttribute("pointer-events","none");r.ownerDocument!=document&&(r=mxUtils.importNodeImplementation(x.ownerDocument,r,!0));x.appendChild(r);u.appendChild(x);this.updateTextNodes(a,b,c,d,f,g,k,m,n,p,q,u);this.root.ownerDocument!=document&&(a=this.createAlternateContent(x,a,b,c, +d,e,f,g,k,l,m,n,p),null!=a&&(x.setAttribute("requiredFeatures","http://www.w3.org/TR/SVG11/feature#Extensibility"),b=this.createElement("switch"),b.appendChild(x),b.appendChild(a),u.appendChild(b)));t.appendChild(u)}; +mxSvgCanvas2D.prototype.updateTextNodes=function(a,b,c,d,e,f,g,k,l,m,n,p){var q=this.state.scale,r="",t="";null!=n&&"vertical-"==n.substring(0,9)?(r="-rl"==n.substring(n.length-3),t=e==mxConstants.ALIGN_LEFT?r?"flex-end":"flex-start":e==mxConstants.ALIGN_RIGHT?r?"flex-start":"flex-end":"center",r=f==mxConstants.ALIGN_TOP?"flex-start":f==mxConstants.ALIGN_BOTTOM?"flex-end":"center"):(t=f==mxConstants.ALIGN_TOP?"flex-start":f==mxConstants.ALIGN_BOTTOM?"flex-end":"center",r=e==mxConstants.ALIGN_LEFT? +"flex-start":e==mxConstants.ALIGN_RIGHT?"flex-end":"center");var u=null!=this.state.fontBackgroundColor?this.getLightDarkColor(this.state.fontBackgroundColor):null,x=null!=this.state.fontBorderColor?this.getLightDarkColor(this.state.fontBorderColor):null;mxSvgCanvas2D.createCss(c+this.foreignObjectPadding,d,e,f,g,k,l,n,null!=u?u.cssText:null,null!=x?x.cssText:null,"display: flex; align-items: unsafe "+t+"; justify-content: unsafe "+r+"; "+(null!=n&&"vertical-"==n.substring(0,9)?"writing-mode: "+n+ +";":""),this.getTextCss(),q,mxUtils.bind(this,function(y,A,z,C,B){a+=this.state.dx;b+=this.state.dy;var v=p.firstChild;"title"==v.nodeName&&(v=v.nextSibling);C+="color: "+this.getLightDarkColor(this.state.fontColor).light+"; ";C+=null!=u?"background-color: "+u.light+"; ":"";C+=null!=x?"border-color: "+x.light+"; ":"";var D=v.firstChild,E=D.firstChild,I=(this.rotateHtml?this.state.rotation:0)+(null!=m?m:0),F=(0!=this.foOffset?"translate("+this.foOffset+" "+this.foOffset+")":"")+(1!=q?"scale("+q+")": +"");this.setCssText(E.firstChild,B);this.setCssText(E,C);v.setAttribute("width",Math.ceil(1/Math.min(1,q)*100)+"%");v.setAttribute("height",Math.ceil(1/Math.min(1,q)*100)+"%");A=Math.round(b+A);0>A?(v.setAttribute("y",A),z+="padding-top: 0; "):(v.removeAttribute("y"),z+="padding-top: "+A+"px; ");this.setCssText(D,z+"margin-left: "+Math.round(a+y)+"px;");F+=0!=I?"rotate("+I+" "+a+" "+b+")":"";""!=F?p.setAttribute("transform",F):p.removeAttribute("transform");1!=this.state.alpha?p.setAttribute("opacity", this.state.alpha):p.removeAttribute("opacity")}))}; -mxSvgCanvas2D.createCss=function(a,b,c,d,e,f,g,k,l,m,n,p,r,q){k=null!=k&&"vertical-"==k.substring(0,9);r="box-sizing: border-box; font-size: 0; ";r=k?r+("text-align: "+(d==mxConstants.ALIGN_TOP?"left":d==mxConstants.ALIGN_BOTTOM?"right":"center")+"; "):r+("text-align: "+(c==mxConstants.ALIGN_LEFT?"left":c==mxConstants.ALIGN_RIGHT?"right":"center")+"; ");var t=mxUtils.getAlignmentAsPoint(c,d);c="overflow: hidden; ";var u="width: 1px; ",v="height: 1px; ",z=t.x*a;t=t.y*b;g?(u="width: "+Math.round(a)+ -"px; ",r+="max-height: "+Math.round(b)+"px; ",t=0):"fill"==f?(u="width: "+Math.round(a)+"px; ",v="height: "+Math.round(b)+"px; ",p+="width: 100%; height: 100%; ",r+="width: "+Math.round(a-2)+"px; "+v):"width"==f?(u="width: "+Math.round(a-2)+"px; ",p+="width: 100%; ",r+=u,t=0,0k.alpha&&t.setAttribute("opacity",k.alpha);q=e.split("\n");p=Math.round(r* -mxConstants.LINE_HEIGHT);var u=r+(q.length-1)*p;n=b+r-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?n-=d/2:(m=(this.matchHtmlAlignment&&m&&0k.alpha&&t.setAttribute("opacity",k.alpha);r=e.split("\n");p=Math.round(q* +mxConstants.LINE_HEIGHT);var u=q+(r.length-1)*p;n=b+q-1;g==mxConstants.ALIGN_MIDDLE?"fill"==l?n-=d/2:(m=(this.matchHtmlAlignment&&m&&0"),document.body.appendChild(n),e=n.offsetWidth,f=n.offsetHeight,n.parentNode.removeChild(n),g==mxConstants.ALIGN_CENTER?c-=e/2:g==mxConstants.ALIGN_RIGHT&&(c-=e),k==mxConstants.ALIGN_MIDDLE?d-=f/2:k==mxConstants.ALIGN_BOTTOM&&(d-=f),n=new mxRectangle((c+1)*m.scale,(d+2)* -m.scale,e*m.scale,(f+1)*m.scale);null!=n&&(b=this.createElement("rect"),b.setAttribute("fill",m.fontBackgroundColor||"none"),b.setAttribute("stroke",m.fontBorderColor||"none"),b.setAttribute("x",Math.floor(n.x-1)),b.setAttribute("y",Math.floor(n.y-1)),b.setAttribute("width",Math.ceil(n.width+2)),b.setAttribute("height",Math.ceil(n.height)),m=null!=m.fontBorderColor?Math.max(1,this.format(m.scale)):0,b.setAttribute("stroke-width",m),this.root.ownerDocument==document&&1==mxUtils.mod(m,2)&&b.setAttribute("transform", -"translate(0.5, 0.5)"),a.insertBefore(b,a.firstChild))}};mxSvgCanvas2D.prototype.stroke=function(){this.addNode(!1,!0)};mxSvgCanvas2D.prototype.fill=function(){this.addNode(!0,!1)};mxSvgCanvas2D.prototype.fillAndStroke=function(){this.addNode(!0,!0)};function mxGuide(a,b){this.graph=a;this.setStates(b)}mxGuide.prototype.graph=null;mxGuide.prototype.states=null;mxGuide.prototype.horizontal=!0;mxGuide.prototype.vertical=!0;mxGuide.prototype.guideX=null;mxGuide.prototype.guideY=null; -mxGuide.prototype.rounded=!1;mxGuide.prototype.tolerance=2;mxGuide.prototype.setStates=function(a){this.states=a};mxGuide.prototype.isEnabledForEvent=function(a){return!0};mxGuide.prototype.getGuideTolerance=function(a){return a&&this.graph.gridEnabled?this.graph.gridSize/2:this.tolerance};mxGuide.prototype.createGuideShape=function(a){a=new mxPolyline([],mxConstants.GUIDE_COLOR,mxConstants.GUIDE_STROKEWIDTH);a.isDashed=!0;return a};mxGuide.prototype.isStateIgnored=function(a){return!1}; -mxGuide.prototype.move=function(a,b,c,d){if(null!=this.states&&(this.horizontal||this.vertical)&&null!=a&&null!=b){d=function(D,x,y){var B=!1;y&&Math.abs(D-F)this.opacity&&(b+="alpha(opacity="+this.opacity+")");this.isShadow&&(b+="progid:DXImageTransform.Microsoft.dropShadow (OffX='"+Math.round(mxConstants.SHADOW_OFFSET_X*this.scale)+"', OffY='"+Math.round(mxConstants.SHADOW_OFFSET_Y*this.scale)+"', Color='"+mxConstants.VML_SHADOWCOLOR+"')");if(null!=this.fill&&this.fill!=mxConstants.NONE&&this.gradient&&this.gradient!=mxConstants.NONE){var c=this.fill,d=this.gradient,e="0",f={east:0,south:1, west:2,north:3},g=null!=this.direction?f[this.direction]:0;null!=this.gradientDirection&&(g=mxUtils.mod(g+f[this.gradientDirection]-1,4));1==g?(e="1",f=c,c=d,d=f):2==g?(f=c,c=d,d=f):3==g&&(e="1");b+="progid:DXImageTransform.Microsoft.gradient(startColorStr='"+c+"', endColorStr='"+d+"', gradientType='"+e+"')"}a.style.filter=b}; -mxShape.prototype.updateHtmlColors=function(a){var b=this.stroke;null!=b&&b!=mxConstants.NONE?(a.style.borderColor=b,this.isDashed?a.style.borderStyle="dashed":0k.x>0?1:-1:g.y==k.y?0:g.y>k.y>0?1:-1}));return d}; mxStackLayout.prototype.snap=function(a){if(null!=this.gridSize&&0this.gridSize/2?this.gridSize-b:-b}return a}; mxStackLayout.prototype.execute=function(a){if(null!=a){var b=this.getParentSize(a),c=this.isHorizontal(),d=this.graph.getModel(),e=null;null!=b&&(e=c?b.height-this.marginTop-this.marginBottom:b.width-this.marginLeft-this.marginRight);e-=2*this.border;var f=this.x0+this.border+this.marginLeft,g=this.y0+this.border+this.marginTop;if(this.graph.isSwimlane(a)){var k=this.graph.getCellStyle(a),l=mxUtils.getNumber(k,mxConstants.STYLE_STARTSIZE,mxConstants.DEFAULT_STARTSIZE);k=1==mxUtils.getValue(k,mxConstants.STYLE_HORIZONTAL, -!0);null!=b&&(l=k?Math.min(l,b.height):Math.min(l,b.width));c==k&&(e-=l);k?g+=l:f+=l}d.beginUpdate();try{l=0;k=null;for(var m=0,n=null,p=this.getLayoutCells(a),r=0;rthis.wrap||!c&&k.y+k.height+t.height+2*this.spacing>this.wrap)&&(k=null,c?g+=l+this.spacing:f+=l+this.spacing,l=0);l=Math.max(l,c?t.height:t.width);var u=0;if(!this.borderCollapse){var v=this.graph.getCellStyle(q); -u=mxUtils.getNumber(v,mxConstants.STYLE_STROKEWIDTH,1)}if(null!=k){var z=m+this.spacing+Math.floor(u/2);c?t.x=this.snap((this.allowGaps?Math.max(z,t.x):z)-this.marginLeft)+this.marginLeft:t.y=this.snap((this.allowGaps?Math.max(z,t.y):z)-this.marginTop)+this.marginTop}else this.keepFirstLocation||(c?t.x=this.allowGaps&&t.x>f?Math.max(this.snap(t.x-this.marginLeft)+this.marginLeft,f):f:t.y=this.allowGaps&&t.y>g?Math.max(this.snap(t.y-this.marginTop)+this.marginTop,g):g);c?t.y=g:t.x=f;this.fill&&null!= -e&&(c?t.height=e:t.width=e);c?t.width=this.snap(t.width):t.height=this.snap(t.height);this.setChildGeometry(q,t);n=q;k=t;m=c?k.x+k.width+Math.floor(u/2):k.y+k.height+Math.floor(u/2)}}this.resizeParent&&null!=b&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,b,k):this.resizeLast&&null!=b&&null!=k&&null!=n&&(c?k.width=b.width-k.x-this.spacing-this.marginRight-this.marginLeft:k.height=b.height-k.y-this.spacing-this.marginBottom,this.setChildGeometry(n,k))}finally{d.endUpdate()}}}; +!0);null!=b&&(l=k?Math.min(l,b.height):Math.min(l,b.width));c==k&&(e-=l);k?g+=l:f+=l}d.beginUpdate();try{l=0;k=null;for(var m=0,n=null,p=this.getLayoutCells(a),q=0;qthis.wrap||!c&&k.y+k.height+t.height+2*this.spacing>this.wrap)&&(k=null,c?g+=l+this.spacing:f+=l+this.spacing,l=0);l=Math.max(l,c?t.height:t.width);var u=0;if(!this.borderCollapse){var x=this.graph.getCellStyle(r); +u=mxUtils.getNumber(x,mxConstants.STYLE_STROKEWIDTH,1)}if(null!=k){var y=m+this.spacing+Math.floor(u/2);c?t.x=this.snap((this.allowGaps?Math.max(y,t.x):y)-this.marginLeft)+this.marginLeft:t.y=this.snap((this.allowGaps?Math.max(y,t.y):y)-this.marginTop)+this.marginTop}else this.keepFirstLocation||(c?t.x=this.allowGaps&&t.x>f?Math.max(this.snap(t.x-this.marginLeft)+this.marginLeft,f):f:t.y=this.allowGaps&&t.y>g?Math.max(this.snap(t.y-this.marginTop)+this.marginTop,g):g);c?t.y=g:t.x=f;this.fill&&null!= +e&&(c?t.height=e:t.width=e);c?t.width=this.snap(t.width):t.height=this.snap(t.height);this.setChildGeometry(r,t);n=r;k=t;m=c?k.x+k.width+Math.floor(u/2):k.y+k.height+Math.floor(u/2)}}this.resizeParent&&null!=b&&null!=k&&!this.graph.isCellCollapsed(a)?this.updateParentGeometry(a,b,k):this.resizeLast&&null!=b&&null!=k&&null!=n&&(c?k.width=b.width-k.x-this.spacing-this.marginRight-this.marginLeft:k.height=b.height-k.y-this.spacing-this.marginBottom,this.setChildGeometry(n,k))}finally{d.endUpdate()}}}; mxStackLayout.prototype.setChildGeometry=function(a,b){var c=this.graph.getCellGeometry(a);null!=c&&b.x==c.x&&b.y==c.y&&b.width==c.width&&b.height==c.height||this.graph.getModel().setGeometry(a,b)}; mxStackLayout.prototype.updateParentGeometry=function(a,b,c){var d=this.isHorizontal(),e=this.graph.getModel(),f=b.clone();d?(c=c.x+c.width+this.marginRight+this.border,f.width=this.resizeParentMax?Math.max(f.width,c):c):(c=c.y+c.height+this.marginBottom+this.border,f.height=this.resizeParentMax?Math.max(f.height,c):c);b.x==f.x&&b.y==f.y&&b.width==f.width&&b.height==f.height||e.setGeometry(a,f)}; function mxPartitionLayout(a,b,c,d){mxGraphLayout.call(this,a);this.horizontal=null!=b?b:!0;this.spacing=c||0;this.border=d||0}mxPartitionLayout.prototype=new mxGraphLayout;mxPartitionLayout.prototype.constructor=mxPartitionLayout;mxPartitionLayout.prototype.horizontal=null;mxPartitionLayout.prototype.spacing=null;mxPartitionLayout.prototype.border=null;mxPartitionLayout.prototype.resizeVertices=!0;mxPartitionLayout.prototype.isHorizontal=function(){return this.horizontal}; @@ -694,7 +704,7 @@ mxCompactTreeLayout.prototype.apply=function(a,b){var c=this.graph.getModel(),d= mxCompactTreeLayout.prototype.createLine=function(a,b,c){var d={};d.dx=a;d.dy=b;d.next=c;return d};mxCompactTreeLayout.prototype.adjustParents=function(){var a=[],b;for(b in this.parentsChanged)a.push(this.parentsChanged[b]);this.arrangeGroups(mxUtils.sortCells(a,!0),this.groupPadding,this.groupPaddingTop,this.groupPaddingRight,this.groupPaddingBottom,this.groupPaddingLeft)}; mxCompactTreeLayout.prototype.localEdgeProcessing=function(a){this.processNodeOutgoing(a);for(a=a.child;null!=a;)this.localEdgeProcessing(a),a=a.next}; mxCompactTreeLayout.prototype.processNodeOutgoing=function(a){for(var b=a.child,c=a.cell,d=0,e=[];null!=b;){d++;var f=b.x;this.horizontal&&(f=b.y);e.push(new WeightedCellSorter(b,f));b=b.next}e.sort(WeightedCellSorter.prototype.compare);f=a.width;var g=(d+1)*this.prefHozEdgeSep;f>g+2*this.prefHozEdgeSep&&(f-=2*this.prefHozEdgeSep);a=f/d;b=a/2;f>g+2*this.prefHozEdgeSep&&(b+=this.prefHozEdgeSep);f=this.minEdgeJetty-this.prefVertEdgeOff;g=this.getVertexBounds(c);for(var k=0;kd/2&&(f-=this.prefVertEdgeOff);b+=a}}; +m=this.getVertexBounds(l);l=this.graph.getEdgesBetween(c,l,!1);for(var n=[],p,q,r=0;rd/2&&(f-=this.prefVertEdgeOff);b+=a}}; function mxRadialTreeLayout(a){mxCompactTreeLayout.call(this,a,!1)}mxUtils.extend(mxRadialTreeLayout,mxCompactTreeLayout);mxRadialTreeLayout.prototype.angleOffset=.5;mxRadialTreeLayout.prototype.rootx=0;mxRadialTreeLayout.prototype.rooty=0;mxRadialTreeLayout.prototype.levelDistance=120;mxRadialTreeLayout.prototype.nodeDistance=10;mxRadialTreeLayout.prototype.autoRadius=!1;mxRadialTreeLayout.prototype.sortEdges=!1;mxRadialTreeLayout.prototype.rowMinX=[];mxRadialTreeLayout.prototype.rowMaxX=[]; mxRadialTreeLayout.prototype.rowMinCenX=[];mxRadialTreeLayout.prototype.rowMaxCenX=[];mxRadialTreeLayout.prototype.rowRadi=[];mxRadialTreeLayout.prototype.row=[];mxRadialTreeLayout.prototype.isVertexIgnored=function(a){return mxGraphLayout.prototype.isVertexIgnored.apply(this,arguments)||0==this.graph.getConnections(a).length}; mxRadialTreeLayout.prototype.execute=function(a,b){this.parent=a;this.edgeRouting=this.useBoundingBox=!1;mxCompactTreeLayout.prototype.execute.apply(this,arguments);var c=null,d=this.getVertexBounds(this.root);this.centerX=d.x+d.width/2;this.centerY=d.y+d.height/2;for(var e in this.visited){var f=this.getVertexBounds(this.visited[e]);c=null!=c?c:f.clone();c.add(f)}this.calcRowDims([this.node],0);var g=0,k=0;for(c=0;cthis.forceConstant&&(this.forceConstant= -.001);this.forceConstantSquared=this.forceConstant*this.forceConstant;for(d=0;db&&(b=.001);var c=this.dispX[a]/b*Math.min(b,this.temperature);b=this.dispY[a]/b*Math.min(b,this.temperature);this.dispX[a]=0;this.dispY[a]=0;this.cellLocation[a][0]+=c;this.cellLocation[a][1]+=b}}; mxFastOrganicLayout.prototype.calcAttraction=function(){for(var a=0;a>1,++e[f];return c}; -mxMedianHybridCrossingReduction.prototype.transpose=function(a,b){for(var c=!0,d=0;c&&10>d++;){var e=1==a%2&&1==d%2;c=!1;for(var f=0;fn&&(n=l);k[n]=m}var p=null,r=null,q=null,t=null,u=null;for(l=0;lq[x]&&F++,z[C]t[x]&&F++,E[C]d++;){var e=1==a%2&&1==d%2;c=!1;for(var f=0;fn&&(n=l);k[n]=m}var p=null,q=null,r=null,t=null,u=null;for(l=0;lr[v]&&C++,y[z]t[v]&&C++,A[z]a.medianValue?-1:b.medianValuev+1&&(m==d[l].length-1?(e.setGeneralPurposeVariable(l,z),p=!0):(m=d[l][m+1],v=m.getGeneralPurposeVariable(l),v=v-m.width/2-this.intraCellSpacing-e.width/2,v>z?(e.setGeneralPurposeVariable(l, -z),p=!0):v>e.getGeneralPurposeVariable(l)+1&&(e.setGeneralPurposeVariable(l,v),p=!0)));if(p){for(e=0;ex+1&&(m==d[l].length-1?(e.setGeneralPurposeVariable(l,y),p=!0):(m=d[l][m+1],x=m.getGeneralPurposeVariable(l),x=x-m.width/2-this.intraCellSpacing-e.width/2,x>y?(e.setGeneralPurposeVariable(l, +y),p=!0):x>e.getGeneralPurposeVariable(l)+1&&(e.setGeneralPurposeVariable(l,x),p=!0)));if(p){for(e=0;e=k&&l<=r?g.setGeneralPurposeVariable(a,l):lr&&(g.setGeneralPurposeVariable(a,r),this.currentXDelta+=l-r);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;d=k&&l<=q?g.setGeneralPurposeVariable(a,l):lq&&(g.setGeneralPurposeVariable(a,q),this.currentXDelta+=l-q);d[f].visited=!0}};mxCoordinateAssignment.prototype.calculatedWeightedValue=function(a,b){for(var c=0,d=0;de)return!1;f=b.getGeneralPurposeVariable(c);if(df){if(e==a.length-1)return!0;a=a[e+1];c=a.getGeneralPurposeVariable(c);c=c-a.width/2-this.intraCellSpacing-b.width/2;if(!(c>=d))return!1}return!0}; mxCoordinateAssignment.prototype.setCellLocations=function(a,b){this.rankTopY=[];this.rankBottomY=[];for(a=0;ak;k++){if(-1(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep,p-=this.prefHozEdgeSep);l=(p-n)/f;n+=l/2;p=this.minEdgeJetty-this.prefVertEdgeOff;for(m=0;mf/2&&(p-=this.prefVertEdgeOff),t=0;tk;k++){if(-1(f+1)*this.prefHozEdgeSep+2*this.prefHozEdgeSep&&(n+=this.prefHozEdgeSep,p-=this.prefHozEdgeSep);l=(p-n)/f;n+=l/2;p=this.minEdgeJetty-this.prefVertEdgeOff;for(m=0;mf/2&&(p-=this.prefVertEdgeOff),t=0;tf&&(f=l,e=k)}}0==c.length&&null!=e&&c.push(e)}return c}; +mxSwimlaneLayout.prototype.findRoots=function(a,b){var c=[];if(null!=a&&null!=b){var d=this.graph.model,e=null,f=-1E5,g;for(g in b){var k=b[g];if(null!=k&&d.isVertex(k)&&this.graph.isCellVisible(k)&&d.isAncestor(a,k)){for(var l=this.getEdges(k),m=0,n=0,p=0;pf&&(f=l,e=k)}}0==c.length&&null!=e&&c.push(e)}return c}; mxSwimlaneLayout.prototype.getEdges=function(a){var b=this.edgesCache.get(a);if(null!=b)return b;var c=this.graph.model;b=[];for(var d=this.graph.isCellCollapsed(a),e=c.getChildCount(a),f=0;f=this.swimlanes.length||!(r>k||(!b||p)&&r==k)||(e=this.traverse(n, -b,m[c],d,e,f,g,r))}}else if(null==e[l])for(c=0;c=this.swimlanes.length||!(q>k||(!b||p)&&q==k)||(e=this.traverse(n, +b,m[c],d,e,f,g,q))}}else if(null==e[l])for(c=0;c=a.x&&c.x<=a.x+a.width?g.x=c.x:c.y>=a.y&&c.y<=a.y+a.height&&(g.y=c.y),c.xa.x+a.width&&(g.x=a.x+a.width),c.ya.y+a.height&&(g.y=a.y+a.height));return g},EllipsePerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width/2,k=a.height/2,l=e+g,m=f+k;b=c.x;c=c.y;var n=parseInt(b-l),p=parseInt(c-m);if(0==n&&0!=p)return new mxPoint(l, m+k*p/Math.abs(p));if(0==n&&0==p)return new mxPoint(b,c);if(d){if(c>=f&&c<=f+a.height)return a=c-m,a=Math.sqrt(g*g*(1-a*a/(k*k)))||0,b<=e&&(a=-a),new mxPoint(l+a,c);if(b>=e&&b<=e+a.width)return a=b-l,a=Math.sqrt(k*k*(1-a*a/(g*g)))||0,c<=f&&(a=-a),new mxPoint(b,m+a)}e=p/n;m-=e*l;f=g*g*e*e+k*k;a=-2*l*f;k=Math.sqrt(a*a-4*f*(g*g*e*e*l*l+k*k*l*l-g*g*k*k));g=(-a+k)/(2*f);l=(-a-k)/(2*f);k=e*g+m;m=e*l+m;Math.sqrt(Math.pow(g-b,2)+Math.pow(k-c,2))c?new mxPoint(g,e):new mxPoint(g,e+a);if(k==c)return g>l?new mxPoint(b,k):new mxPoint(b+f,k);var m=g,n=k;d&&(l>=b&&l<=b+f?m=l:c>=e&&c<=e+a&&(n=c));return l-t&&qMath.PI-t)?c=d&&(e&&c.x>=n.x&&c.x<=r.x||!e&&c.y>=n.y&&c.y<=r.y)?e?new mxPoint(c.x,n.y):new mxPoint(n.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+k/2+l*Math.tan(q)/2,g+l):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+k/2-l*Math.tan(q)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+k,g+l/2+k*Math.tan(q)/2):new mxPoint(f,g+ -l/2-k*Math.tan(q)/2):(d&&(d=new mxPoint(a,m),c.y>=g&&c.y<=g+l?(d.x=e?a:b==mxConstants.DIRECTION_WEST?f+k:f,d.y=c.y):c.x>=f&&c.x<=f+k&&(d.x=c.x,d.y=e?b==mxConstants.DIRECTION_NORTH?g+l:g:m),a=d.x,m=d.y),c=e&&c.x<=f+k/2||!e&&c.y<=g+l/2?mxUtils.intersection(c.x,c.y,a,m,n.x,n.y,p.x,p.y):mxUtils.intersection(c.x,c.y,a,m,p.x,p.y,r.x,r.y));null==c&&(c=new mxPoint(a,m));return c},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var m=c.x,n=c.y,p=-Math.atan2(n- -a,m-l),r=Math.PI,q=Math.PI/2;new mxPoint(l,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;var u=new mxPoint;if(mf+k||m>e+g&&ne+g&&n>f+k)d=!1;if(d){if(t){if(m==l){if(n<=f)return new mxPoint(l,f);if(n>=f+k)return new mxPoint(l,f+k)}else if(m-t&&rMath.PI-t)?c=d&&(e&&c.x>=n.x&&c.x<=q.x||!e&&c.y>=n.y&&c.y<=q.y)?e?new mxPoint(c.x,n.y):new mxPoint(n.x,c.y):b==mxConstants.DIRECTION_NORTH?new mxPoint(f+k/2+l*Math.tan(r)/2,g+l):b==mxConstants.DIRECTION_SOUTH?new mxPoint(f+k/2-l*Math.tan(r)/2,g):b==mxConstants.DIRECTION_WEST?new mxPoint(f+k,g+l/2+k*Math.tan(r)/2):new mxPoint(f,g+ +l/2-k*Math.tan(r)/2):(d&&(d=new mxPoint(a,m),c.y>=g&&c.y<=g+l?(d.x=e?a:b==mxConstants.DIRECTION_WEST?f+k:f,d.y=c.y):c.x>=f&&c.x<=f+k&&(d.x=c.x,d.y=e?b==mxConstants.DIRECTION_NORTH?g+l:g:m),a=d.x,m=d.y),c=e&&c.x<=f+k/2||!e&&c.y<=g+l/2?mxUtils.intersection(c.x,c.y,a,m,n.x,n.y,p.x,p.y):mxUtils.intersection(c.x,c.y,a,m,p.x,p.y,q.x,q.y));null==c&&(c=new mxPoint(a,m));return c},HexagonPerimeter:function(a,b,c,d){var e=a.x,f=a.y,g=a.width,k=a.height,l=a.getCenterX();a=a.getCenterY();var m=c.x,n=c.y,p=-Math.atan2(n- +a,m-l),q=Math.PI,r=Math.PI/2;new mxPoint(l,a);b=null!=b?mxUtils.getValue(b.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;var t=b==mxConstants.DIRECTION_NORTH||b==mxConstants.DIRECTION_SOUTH;b=new mxPoint;var u=new mxPoint;if(mf+k||m>e+g&&ne+g&&n>f+k)d=!1;if(d){if(t){if(m==l){if(n<=f)return new mxPoint(l,f);if(n>=f+k)return new mxPoint(l,f+k)}else if(me+g){if(n==f+k/4)return new mxPoint(e+g,f+k/4);if(n==f+3*k/4)return new mxPoint(e+g,f+3*k/4)}else if(m==e){if(na)return new mxPoint(e,f+3*k/4)}else if(m==e+g){if(na)return new mxPoint(e+g,f+3*k/4)}if(n==f)return new mxPoint(l,f);if(n==f+k)return new mxPoint(l,f+k);mf+k/4&&nf+3*k/4&&(b=new mxPoint(e-Math.floor(.5*g),f+Math.floor(.5*k)),u=new mxPoint(e+g,f+Math.floor(1.25*k))):m>l&&(n>f+k/4&&nf+3*k/4&&(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(.5*k)),u=new mxPoint(e,f+Math.floor(1.25*k))))}else{if(n==a){if(m<=e)return new mxPoint(e,f+k/2);if(m>=e+g)return new mxPoint(e+g,f+k/2)}else if(n< f){if(m==e+g/4)return new mxPoint(e+g/4,f);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f)}else if(n>f+k){if(m==e+g/4)return new mxPoint(e+g/4,f+k);if(m==e+3*g/4)return new mxPoint(e+3*g/4,f+k)}else if(n==f){if(ml)return new mxPoint(e+3*g/4,f)}else if(n==f+k){if(ma)return new mxPoint(e+3*g/4,f+k)}if(m==e)return new mxPoint(e,a);if(m==e+g)return new mxPoint(e+g,a);ne+g/4&&me+3*g/4&&(b=new mxPoint(e+Math.floor(.5*g),f-Math.floor(.5*k)),u=new mxPoint(e+Math.floor(1.25*g),f+k)):n>a&&(m>e+g/4&&me+3*g/4&&(b=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k)),u=new mxPoint(e+Math.floor(1.25*g),f)))}d=l;p=a;m>=e&&m<= -e+g?(d=m,p=n=f&&n<=f+k&&(p=n,d=m-m?(b=new mxPoint(e+g,f),u=new mxPoint(e+g,f+ -k)):p>m&&pq&&pr-m&&p<=r||p<-r+m&&p>=-r?(b=new mxPoint(e,f),u=new mxPoint(e,f+k)):p<-m&&p>-q?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(.5*k)),u=new mxPoint(e,f+Math.floor(1.25*k))):p<-q&&p>-r+m&&(b=new mxPoint(e-Math.floor(.5*g),f+Math.floor(.5*k)),u=new mxPoint(e+g,f+Math.floor(1.25*k)))}else{m= -Math.atan2(k/2,g/4);if(p==m)return new mxPoint(e+Math.floor(.75*g),f);if(p==r-m)return new mxPoint(e+Math.floor(.25*g),f);if(p==r||p==-r)return new mxPoint(e,f+Math.floor(.5*k));if(0==p)return new mxPoint(e+g,f+Math.floor(.5*k));if(p==-m)return new mxPoint(e+Math.floor(.75*g),f+k);if(p==-r+m)return new mxPoint(e+Math.floor(.25*g),f+k);0m&&pr-m&& -pp&&p>-m?(b=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k)),u=new mxPoint(e+Math.floor(1.25*g),f)):p<-m&&p>-r+m?(b=new mxPoint(e,f+k),u=new mxPoint(e+g,f+k)):p<-r+m&&p>-r&&(b=new mxPoint(e-Math.floor(.25*g),f),u=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k)))}c=mxUtils.intersection(l,a,c.x,c.y,b.x,b.y,u.x,u.y)}return null==c?new mxPoint(l,a):c}}; +e+g?(d=m,p=n=f&&n<=f+k&&(p=n,d=m-m?(b=new mxPoint(e+g,f),u=new mxPoint(e+g,f+ +k)):p>m&&pr&&pq-m&&p<=q||p<-q+m&&p>=-q?(b=new mxPoint(e,f),u=new mxPoint(e,f+k)):p<-m&&p>-r?(b=new mxPoint(e+Math.floor(1.5*g),f+Math.floor(.5*k)),u=new mxPoint(e,f+Math.floor(1.25*k))):p<-r&&p>-q+m&&(b=new mxPoint(e-Math.floor(.5*g),f+Math.floor(.5*k)),u=new mxPoint(e+g,f+Math.floor(1.25*k)))}else{m= +Math.atan2(k/2,g/4);if(p==m)return new mxPoint(e+Math.floor(.75*g),f);if(p==q-m)return new mxPoint(e+Math.floor(.25*g),f);if(p==q||p==-q)return new mxPoint(e,f+Math.floor(.5*k));if(0==p)return new mxPoint(e+g,f+Math.floor(.5*k));if(p==-m)return new mxPoint(e+Math.floor(.75*g),f+k);if(p==-q+m)return new mxPoint(e+Math.floor(.25*g),f+k);0m&&pq-m&& +pp&&p>-m?(b=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k)),u=new mxPoint(e+Math.floor(1.25*g),f)):p<-m&&p>-q+m?(b=new mxPoint(e,f+k),u=new mxPoint(e+g,f+k)):p<-q+m&&p>-q&&(b=new mxPoint(e-Math.floor(.25*g),f),u=new mxPoint(e+Math.floor(.5*g),f+Math.floor(1.5*k)))}c=mxUtils.intersection(l,a,c.x,c.y,b.x,b.y,u.x,u.y)}return null==c?new mxPoint(l,a):c}}; function mxPrintPreview(a,b,c,d,e,f,g,k,l){this.graph=a;this.scale=null!=b?b:1/a.pageScale;this.border=null!=d?d:0;this.pageFormat=mxRectangle.fromRectangle(null!=c?c:a.pageFormat);this.title=null!=k?k:"Printer-friendly version";this.x0=null!=e?e:0;this.y0=null!=f?f:0;this.borderColor=g;this.pageSelector=null!=l?l:!0}mxPrintPreview.prototype.graph=null;mxPrintPreview.prototype.pageFormat=null;mxPrintPreview.prototype.addPageCss=!1;mxPrintPreview.prototype.pixelsPerInch=100; mxPrintPreview.prototype.pageMargin=27;mxPrintPreview.prototype.overflowClipMargin="1px";mxPrintPreview.prototype.gridSize=null;mxPrintPreview.prototype.gridSteps=null;mxPrintPreview.prototype.gridColor=null;mxPrintPreview.prototype.gridStrokeWidth=.5;mxPrintPreview.prototype.defaultCss='g[style*="filter: drop-shadow("] {\n filter: none !important;\n}\n@media screen {\n body {\n background: gray;\n transform: scale(0.7);\n transform-origin: 0 0;\n }\n body > div {\n margin-bottom: 20px;\n box-sizing: border-box;\n }\n a, a * {\n pointer-events: none;\n }\n}\n@media print {\n body {\n margin: 0px;\n }\n * {\n -webkit-print-color-adjust: exact;\n }\n}'; mxPrintPreview.prototype.scale=null;mxPrintPreview.prototype.border=0;mxPrintPreview.prototype.marginTop=0;mxPrintPreview.prototype.marginBottom=0;mxPrintPreview.prototype.x0=0;mxPrintPreview.prototype.y0=0;mxPrintPreview.prototype.autoOrigin=!0;mxPrintPreview.prototype.printOverlays=!1;mxPrintPreview.prototype.printControls=!1;mxPrintPreview.prototype.printBackgroundImage=!1;mxPrintPreview.prototype.backgroundColor="#ffffff";mxPrintPreview.prototype.borderColor=null; @@ -929,21 +939,21 @@ mxPrintPreview.prototype.title=null;mxPrintPreview.prototype.pageSelector=null;m mxPrintPreview.prototype.getDoctype=function(){var a="";8==document.documentMode?a='':8 svg {\n margin: "+ mxUtils.htmlEntities((c/d).toFixed(2))+"in;\n}\n");return b}; -mxPrintPreview.prototype.open=function(a,b,c,d,e,f,g){c=null;try{var k=this.graph.cellRenderer.initializeOverlay,l=null!=f;f=mxRectangle.fromRectangle(null!=f?f:this.pageFormat);var m=f.width+1,n=f.height+1;this.printOverlays&&(this.graph.cellRenderer.initializeOverlay=function(H,K){K.init(H.view.getDrawPane())});this.printControls&&(this.graph.cellRenderer.initControl=function(H,K,N,L){K.dialect=H.view.graph.dialect;K.init(H.view.getDrawPane())});this.wnd=null!=b?b:this.wnd;b=!1;null==this.wnd&& -(b=!0,this.wnd=window.open());var p=this.wnd.document;if(b){var r=this.getDoctype();null!=r&&0");p.writeln("");p.writeln("");this.writeHead(p,a);p.writeln("");p.writeln("")}var q=mxRectangle.fromRectangle(null!=g?this.graph.getBoundingBox(g):this.graph.getGraphBounds()),t=this.graph.getView().getScale(),u=t/this.scale,v=this.graph.getView().getTranslate();this.autoOrigin||(this.x0-=v.x*this.scale, -this.y0-=v.y*this.scale,q.width+=q.x,q.height+=q.y,q.x=0,this.border=q.y=0);var z=m-2*this.border,E=n-2*this.border;n+=this.marginTop+this.marginBottom;q.width/=u;q.height/=u;var C=Math.max(1,Math.ceil((q.width+this.x0)/z)),F=Math.max(1,Math.ceil((q.height+this.y0)/E));this.pageCount=C*F;var D=null;l&&(null==this.pendingCss&&(this.pageFormatClass={},this.pendingCss=""),D=mxUtils.htmlEntities("gePageFormat-"+String(f.width).replaceAll(".","_")+"-"+String(f.height).replaceAll(".","_")),null==this.pageFormatClass[D]&& -(this.pageFormatClass[D]=!0,this.pendingCss+=this.getPageClassCss(D,f)));var x=mxUtils.bind(this,function(H){null!=this.borderColor&&(H.style.borderColor=this.borderColor,H.style.borderStyle="solid",H.style.borderWidth="1px");H.style.background=this.backgroundColor;null!=D?H.classList.add(D):(H.style.width=f.width+"px",H.style.height=f.height+"px");p.body.appendChild(H)}),y=this.getCoverPages(m,n);if(null!=y)for(var B=0;B");p.writeln("");p.writeln("");this.writeHead(p,a);p.writeln("");p.writeln("")}var r=mxRectangle.fromRectangle(null!=g?this.graph.getBoundingBox(g):this.graph.getGraphBounds()),t=this.graph.getView().getScale(),u=t/this.scale,x=this.graph.getView().getTranslate();this.autoOrigin||(this.x0-=x.x*this.scale, +this.y0-=x.y*this.scale,r.width+=r.x,r.height+=r.y,r.x=0,this.border=r.y=0);var y=m-2*this.border,A=n-2*this.border;n+=this.marginTop+this.marginBottom;r.width/=u;r.height/=u;var z=Math.max(1,Math.ceil((r.width+this.x0)/y)),C=Math.max(1,Math.ceil((r.height+this.y0)/A));this.pageCount=z*C;var B=null;l&&(null==this.pendingCss&&(this.pageFormatClass={},this.pendingCss=""),B=mxUtils.htmlEntities("gePageFormat-"+String(f.width).replaceAll(".","_")+"-"+String(f.height).replaceAll(".","_")),null==this.pageFormatClass[B]&& +(this.pageFormatClass[B]=!0,this.pendingCss+=this.getPageClassCss(B,f)));var v=mxUtils.bind(this,function(G){null!=this.borderColor&&(G.style.borderColor=this.borderColor,G.style.borderStyle="solid",G.style.borderWidth="1px");G.style.background=this.backgroundColor;null!=B?G.classList.add(B):(G.style.width=f.width+"px",G.style.height=f.height+"px");p.body.appendChild(G)}),D=this.getCoverPages(m,n);if(null!=D)for(var E=0;E");a.writeln("");a.close();this.addPendingCss(a);mxEvent.release(a.body)}}catch(b){}}; mxPrintPreview.prototype.writeHead=function(a,b){null!=this.title&&a.writeln(""+mxUtils.htmlEntities(this.title)+"");mxClient.link("stylesheet",mxClient.basePath+"/css/common.css",a);a.writeln('")};mxPrintPreview.prototype.writePostfix=function(a){};mxPrintPreview.prototype.getRoot=function(){var a=this.graph.view.currentRoot;null==a&&(a=this.graph.getModel().getRoot());return a};mxPrintPreview.prototype.useCssTransforms=function(){return!mxClient.NO_FO&&!mxClient.IS_SF};mxPrintPreview.prototype.isCellVisible=function(a){return!0}; mxPrintPreview.prototype.drawBackgroundImage=function(a){a.redraw()}; -mxPrintPreview.prototype.addGraphFragment=function(a,b,c,d,e,f){var g=this.graph.getView();d=this.graph.container;this.graph.container=e;var k=g.getCanvas(),l=g.getBackgroundPane(),m=g.getDrawPane(),n=g.getOverlayPane(),p=c;if(this.graph.dialect==mxConstants.DIALECT_SVG){if(g.createSvg(),this.useCssTransforms()){var r=g.getDrawPane().parentNode;r.setAttribute("transformOrigin","0 0");r.setAttribute("transform","scale("+c+","+c+")translate("+a+","+b+")");c=1;b=a=0}}else g.createHtml();r=g.isEventsEnabled(); -g.setEventsEnabled(!1);var q=this.graph.isEnabled();this.graph.setEnabled(!1);var t=g.getTranslate();g.translate=new mxPoint(a,b);var u=this.graph.selectionCellsHandler.updateHandler;this.graph.selectionCellsHandler.updateHandler=function(){};var v=this.graph.cellRenderer.redraw,z=g.states,E=g.scale,C=null;if(this.printBackgroundImage){var F=this.getBackgroundImage();null!=F&&(C=new mxRectangle(Math.round(a*E+F.x),Math.round(b*E+F.y),F.width-1,F.height-1),C=new mxImageShape(C,F.src),C.dialect=this.graph.dialect)}if(this.clipping){var D= -new mxRectangle((f.x+t.x+1.5)*E,(f.y+t.y+1.5)*E,(f.width-1.5)*E/p,(f.height-1.5)*E/p),x=this;this.graph.cellRenderer.redraw=function(B,G,I){if(null!=B){var A=z.get(B.cell);if(null!=A&&(A=g.getBoundingBox(A,!1),null!=A&&0f.height?c.style.height="100%":c.style.width="100%")):this.isTextLabel(c)||c.parentNode.removeChild(c),c=e;g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(q);this.graph.container=d;this.graph.cellRenderer.redraw=v;this.graph.selectionCellsHandler.updateHandler=u;g.canvas=k;g.backgroundPane=l;g.drawPane=m;g.overlayPane=n;g.translate=t;a.destroy();g.setEventsEnabled(r)}}; +mxPrintPreview.prototype.addGraphFragment=function(a,b,c,d,e,f){var g=this.graph.getView();d=this.graph.container;this.graph.container=e;var k=g.getCanvas(),l=g.getBackgroundPane(),m=g.getDrawPane(),n=g.getOverlayPane(),p=c;if(this.graph.dialect==mxConstants.DIALECT_SVG){if(g.createSvg(),this.useCssTransforms()){var q=g.getDrawPane().parentNode;q.setAttribute("transformOrigin","0 0");q.setAttribute("transform","scale("+c+","+c+")translate("+a+","+b+")");c=1;b=a=0}}else g.createHtml();q=g.isEventsEnabled(); +g.setEventsEnabled(!1);var r=this.graph.isEnabled();this.graph.setEnabled(!1);var t=g.getTranslate();g.translate=new mxPoint(a,b);var u=this.graph.selectionCellsHandler.updateHandler;this.graph.selectionCellsHandler.updateHandler=function(){};var x=this.graph.cellRenderer.redraw,y=g.states,A=g.scale,z=null;if(this.printBackgroundImage){var C=this.getBackgroundImage();null!=C&&(z=new mxRectangle(Math.round(a*A+C.x),Math.round(b*A+C.y),C.width-1,C.height-1),z=new mxImageShape(z,C.src),z.dialect=this.graph.dialect)}if(this.clipping){var B= +new mxRectangle((f.x+t.x+1.5)*A,(f.y+t.y+1.5)*A,(f.width-1.5)*A/p,(f.height-1.5)*A/p),v=this;this.graph.cellRenderer.redraw=function(E,I,F){if(null!=E){var H=y.get(E.cell);if(null!=H&&(H=g.getBoundingBox(H,!1),null!=H&&0f.height?c.style.height="100%":c.style.width="100%")):this.isTextLabel(c)||c.parentNode.removeChild(c),c=e;g.overlayPane.parentNode.removeChild(g.overlayPane);this.graph.setEnabled(r);this.graph.container=d;this.graph.cellRenderer.redraw=x;this.graph.selectionCellsHandler.updateHandler=u;g.canvas=k;g.backgroundPane=l;g.drawPane=m;g.overlayPane=n;g.translate=t;a.destroy();g.setEventsEnabled(q)}}; mxPrintPreview.prototype.addGrid=function(a,b){0"==this.textarea.innerHTML?(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange= +mxCellEditor.prototype.updateTextAreaStyle=function(a){var b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE),c=mxUtils.getValue(a.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY),d=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,e=(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,f=[];(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE, +0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&f.push("underline");(mxUtils.getValue(a.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&f.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(b*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.textDecoration=f.join(" ");this.textarea.style.fontWeight=d?"bold":"normal";this.textarea.style.fontStyle=e?"italic":"";this.textarea.style.fontSize= +Math.round(b)+"px";this.textarea.style.zIndex=this.zIndex;this.textarea.style.fontFamily=mxUtils.parseCssFontFamily(c);this.textarea.style.writingMode="";b=mxUtils.getValue(a.style,mxConstants.STYLE_FONTCOLOR);if(null==b||b==mxConstants.NONE)b=this.graph.shapeForegroundColor;this.textarea.style.color=mxUtils.getLightDarkColor(b).cssText;b=this.getBackgroundColor(a);this.textarea.style.backgroundColor=null!=b?mxUtils.getLightDarkColor(b).cssText:"transparent";b=this.getBorderColor(a);this.textarea.style.border= +null!=b?"1px solid "+mxUtils.getLightDarkColor(b).cssText:"1px solid transparent";b=mxUtils.getValue(a.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);c=mxUtils.getValue(a.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT);this.textarea.removeAttribute("dir");b!=mxConstants.TEXT_DIRECTION_AUTO||null==a||null==a.text||a.text.dialect==mxConstants.DIALECT_STRICTHTML||mxUtils.isNode(a.text.value)||(b=a.text.getAutoDirection());if(b==mxConstants.TEXT_DIRECTION_LTR||b==mxConstants.TEXT_DIRECTION_RTL)this.textarea.setAttribute("dir", +b);else if(b==mxConstants.TEXT_DIRECTION_VERTICAL_LR||b==mxConstants.TEXT_DIRECTION_VERTICAL_RL)a=mxUtils.getValue(a.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE),c=a==mxConstants.ALIGN_TOP?"left":a==mxConstants.ALIGN_BOTTOM?"right":"center",this.textarea.style.writingMode=b;this.textarea.style.textAlign=c};mxCellEditor.prototype.setEditingValue=function(a,b){this.textarea.innerHTML=b}; +mxCellEditor.prototype.startEditing=function(a,b,c){this.stopEditing(!0);this.align=null;null==this.textarea&&this.init();null!=this.graph.tooltipHandler&&this.graph.tooltipHandler.hideTooltip();var d=this.graph.getView().getState(a);null!=d&&(this.updateTextAreaStyle(d),this.setEditingValue(d,this.getInitialValue(d,b)||""),this.initialValue=this.textarea.innerHTML,0==this.textarea.innerHTML.length||"
"==this.textarea.innerHTML?(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange= !0):this.clearOnChange=this.textarea.innerHTML==this.getEmptyLabelText(),this.textShape=d.text,this.editingCell=a,this.trigger=b,null==this.textShape&&(this.textShape=this.graph.cellRenderer.createTextShape(d,"",this.graph.dialect)),a=mxUtils.bind(this,function(){if(null!=this.editingCell)if(null!=this.textShape&&null!=this.textShape.node&&this.isHideLabel(d)&&(this.textNode=this.textShape.node,this.textNode.style.visibility="hidden"),this.resize(),this.graph.container.appendChild(this.textarea), mxClient.IS_IOS&&(this.graph.container.scrollTop=Math.max(this.graph.container.scrollTop,d.y+d.height-this.graph.container.clientHeight/3)),this.textarea.scrollIntoView({block:"nearest",inline:"nearest"}),this.textarea.focus(),null!=c){this.textarea.innerHTML=c;var e=document.createRange();e.selectNodeContents(this.textarea);e.collapse(!1);var f=window.getSelection();f.removeAllRanges();f.addRange(e)}else this.isSelectText()&&0=b.x&&d.x<=b.x+b.width&&(a=d.x),k=null!=d?d.y:Math.round(g+(k-g)/2),mxUtils.contains(c,a,k)||mxUtils.contains(b,a,k)||e.push(new mxPoint(a,k)),a=null!=d&&d.x>=c.x&&d.x<=c.x+c.width?d.x:f.getRoutingCenterX(c),mxUtils.contains(c,a,k)||mxUtils.contains(b,a,k)||e.push(new mxPoint(a,k)),1==e.length&&(null!=d&&1==e.length?mxUtils.contains(c,d.x,k)||mxUtils.contains(b,d.x,k)|| e.push(new mxPoint(d.x,k)):(f=Math.max(b.x,c.x),e.push(new mxPoint(f+(Math.min(b.x+b.width,c.x+c.width)-f)/2,k)))))},SegmentConnector:function(a,b,c,d,e){var f=mxEdgeStyle.scalePointArray(a.absolutePoints,a.view.scale);b=mxEdgeStyle.scaleCellState(b,a.view.scale);var g=mxEdgeStyle.scaleCellState(c,a.view.scale);c=[];var k=0Math.abs(p[0].x-m.x)&&(p[0].x=m.x),1>Math.abs(p[0].y-m.y)&&(p[0].y=m.y));q=f[n];null!=q&&null!=p[p.length-1]&&(1>Math.abs(p[p.length-1].x-q.x)&&(p[p.length-1].x=q.x),1>Math.abs(p[p.length-1].y-q.y)&&(p[p.length-1].y=q.y));d=p[0];var t=b,u=f[0],v=d;null!=u&&(t=null);for(r=0;2>r;r++){var z=null!=u&&u.x==v.x,E=null!=u&&u.y==v.y,C=null!=t&&v.y>=t.y&&v.y<=t.y+t.height,F= -null!=t&&v.x>=t.x&&v.x<=t.x+t.width;t=E||null==u&&C;v=z||null==u&&F;if(0!=r||!(t&&v||z&&E)){if(null!=u&&!E&&!z&&(C||F)){l=C?!1:!0;break}if(v||t){l=t;1==r&&(l=0==p.length%2?t:v);break}}t=g;u=f[n];null!=u&&(t=null);v=p[p.length-1];z&&E&&(p=p.slice(1))}l&&(null!=f[0]&&f[0].y!=d.y||null==f[0]&&null!=b&&(d.yb.y+b.height))?c.push(new mxPoint(m.x,d.y)):!l&&(null!=f[0]&&f[0].x!=d.x||null==f[0]&&null!=b&&(d.xb.x+b.width))&&c.push(new mxPoint(d.x,m.y));l?m.y=d.y:m.x=d.x;for(r=0;rg.y+g.height))?c.push(new mxPoint(m.x,d.y)):!l&&(null!=f[n]&&f[n].x!=d.x||null==f[n]&&null!=g&&(d.xg.x+g.width))&&c.push(new mxPoint(d.x,m.y)));if(null==f[0]&&null!=b)for(;0=Math.max(1,a.view.scale))e.push(f),k=f;null!=q&&null!=e[e.length-1]&&1>=Math.abs(q.x-e[e.length-1].x)&&1>=Math.abs(q.y-e[e.length-1].y)&&(e.splice(e.length-1,1),null!=e[e.length-1]&&(1>Math.abs(e[e.length-1].x-q.x)&& -(e[e.length-1].x=q.x),1>Math.abs(e[e.length-1].y-q.y)&&(e[e.length-1].y=q.y)))},orthBuffer:10,orthPointsFallback:!0,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308, +[],q=0;qMath.abs(p[0].x-m.x)&&(p[0].x=m.x),1>Math.abs(p[0].y-m.y)&&(p[0].y=m.y));r=f[n];null!=r&&null!=p[p.length-1]&&(1>Math.abs(p[p.length-1].x-r.x)&&(p[p.length-1].x=r.x),1>Math.abs(p[p.length-1].y-r.y)&&(p[p.length-1].y=r.y));d=p[0];var t=b,u=f[0],x=d;null!=u&&(t=null);for(q=0;2>q;q++){var y=null!=u&&u.x==x.x,A=null!=u&&u.y==x.y,z=null!=t&&x.y>=t.y&&x.y<=t.y+t.height,C= +null!=t&&x.x>=t.x&&x.x<=t.x+t.width;t=A||null==u&&z;x=y||null==u&&C;if(0!=q||!(t&&x||y&&A)){if(null!=u&&!A&&!y&&(z||C)){l=z?!1:!0;break}if(x||t){l=t;1==q&&(l=0==p.length%2?t:x);break}}t=g;u=f[n];null!=u&&(t=null);x=p[p.length-1];y&&A&&(p=p.slice(1))}l&&(null!=f[0]&&f[0].y!=d.y||null==f[0]&&null!=b&&(d.yb.y+b.height))?c.push(new mxPoint(m.x,d.y)):!l&&(null!=f[0]&&f[0].x!=d.x||null==f[0]&&null!=b&&(d.xb.x+b.width))&&c.push(new mxPoint(d.x,m.y));l?m.y=d.y:m.x=d.x;for(q=0;qg.y+g.height))?c.push(new mxPoint(m.x,d.y)):!l&&(null!=f[n]&&f[n].x!=d.x||null==f[n]&&null!=g&&(d.xg.x+g.width))&&c.push(new mxPoint(d.x,m.y)));if(null==f[0]&&null!=b)for(;0=Math.max(1,a.view.scale))e.push(f),k=f;null!=r&&null!=e[e.length-1]&&1>=Math.abs(r.x-e[e.length-1].x)&&1>=Math.abs(r.y-e[e.length-1].y)&&(e.splice(e.length-1,1),null!=e[e.length-1]&&(1>Math.abs(e[e.length-1].x-r.x)&& +(e[e.length-1].x=r.x),1>Math.abs(e[e.length-1].y-r.y)&&(e[e.length-1].y=r.y)))},orthBuffer:10,orthPointsFallback:!0,dirVectors:[[-1,0],[0,-1],[1,0],[0,1],[-1,0],[0,-1],[1,0]],wayPoints1:[[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0],[0,0]],routePatterns:[[[513,2308,2081,2562],[513,1090,514,2184,2114,2561],[513,1090,514,2564,2184,2562],[513,2308,2561,1090,514,2568,2308]],[[514,1057,513,2308,2081,2562],[514,2184,2114,2561],[514,2184,2562,1057,513,2564,2184],[514,1057,513,2568,2308, 2561]],[[1090,514,1057,513,2308,2081,2562],[2114,2561],[1090,2562,1057,513,2564,2184],[1090,514,1057,513,2308,2561,2568]],[[2081,2562],[1057,513,1090,514,2184,2114,2561],[1057,513,1090,514,2184,2562,2564],[1057,2561,1090,514,2568,2308]]],inlineRoutePatterns:[[null,[2114,2568],null,null],[null,[514,2081,2114,2568],null,null],[null,[2114,2561],null,null],[[2081,2562],[1057,2114,2568],[2184,2562],null]],vertexSeperations:[],limits:[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]],LEFT_MASK:32,TOP_MASK:64,RIGHT_MASK:128, BOTTOM_MASK:256,LEFT:1,TOP:2,RIGHT:4,BOTTOM:8,SIDE_MASK:480,CENTER_MASK:512,SOURCE_MASK:1024,TARGET_MASK:2048,VERTEX_MASK:3072,getJettySize:function(a,b){var c=mxUtils.getValue(a.style,b?mxConstants.STYLE_SOURCE_JETTY_SIZE:mxConstants.STYLE_TARGET_JETTY_SIZE,mxUtils.getValue(a.style,mxConstants.STYLE_JETTY_SIZE,mxEdgeStyle.orthBuffer));"auto"==c&&(mxUtils.getValue(a.style,b?mxConstants.STYLE_STARTARROW:mxConstants.STYLE_ENDARROW,mxConstants.NONE)!=mxConstants.NONE?(a=mxUtils.getNumber(a.style,b?mxConstants.STYLE_STARTSIZE: mxConstants.STYLE_ENDSIZE,mxConstants.DEFAULT_MARKERSIZE),c=Math.max(2,Math.ceil((a+mxEdgeStyle.orthBuffer)/mxEdgeStyle.orthBuffer))*mxEdgeStyle.orthBuffer):c=2*mxEdgeStyle.orthBuffer);return c},scalePointArray:function(a,b){var c=[];if(null!=a)for(var d=0;dx;x++)mxEdgeStyle.limits[x][1]=r[x][0]-F[x],mxEdgeStyle.limits[x][2]= -r[x][1]-F[x],mxEdgeStyle.limits[x][4]=r[x][0]+r[x][2]+F[x],mxEdgeStyle.limits[x][8]=r[x][1]+r[x][3]+F[x];F=r[0][1]+r[0][3]/2;q=r[1][1]+r[1][3]/2;x=r[0][0]+r[0][2]/2-(r[1][0]+r[1][2]/2);y=F-q;F=0;0>x?F=0>y?2:1:0>=y&&(F=3,0==x&&(F=2));q=null;null!=l&&(q=n);l=[[.5,.5],[.5,.5]];for(x=0;2>x;x++)null!=q&&(l[x][0]=(q.x-r[x][0])/r[x][2],1>=Math.abs(q.x-r[x][0])?b[x]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(q.x-r[x][0]-r[x][2])&&(b[x]=mxConstants.DIRECTION_MASK_EAST),l[x][1]=(q.y-r[x][1])/r[x][3],1>=Math.abs(q.y- -r[x][1])?b[x]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(q.y-r[x][1]-r[x][3])&&(b[x]=mxConstants.DIRECTION_MASK_SOUTH)),q=null,null!=m&&(q=p);x=r[0][1]-(r[1][1]+r[1][3]);p=r[0][0]-(r[1][0]+r[1][2]);q=r[1][1]-(r[0][1]+r[0][3]);t=r[1][0]-(r[0][0]+r[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(p-D,0);mxEdgeStyle.vertexSeperations[2]=Math.max(x-D,0);mxEdgeStyle.vertexSeperations[4]=Math.max(q-D,0);mxEdgeStyle.vertexSeperations[3]=Math.max(t-D,0);D=[];m=[];n=[];m[0]=p>=t?mxConstants.DIRECTION_MASK_WEST: -mxConstants.DIRECTION_MASK_EAST;n[0]=x>=q?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;m[1]=mxUtils.reversePortConstraints(m[0]);n[1]=mxUtils.reversePortConstraints(n[0]);p=p>=t?p:t;q=x>=q?x:q;t=[[0,0],[0,0]];u=!1;for(x=0;2>x;x++)0==b[x]&&(0==(m[x]&c[x])&&(m[x]=mxUtils.reversePortConstraints(m[x])),0==(n[x]&c[x])&&(n[x]=mxUtils.reversePortConstraints(n[x])),t[x][0]=n[x],t[x][1]=m[x]);0x;x++)0==b[x]&&(0==(t[x][0]&c[x])&&(t[x][0]=t[x][1]),D[x]=t[x][0]&c[x],D[x]|=(t[x][1]&c[x])<<8,D[x]|=(t[1-x][x]&c[x])<<16,D[x]|=(t[1-x][1-x]&c[x])<<24,0==(D[x]&15)&&(D[x]<<=8),0==(D[x]&3840)&&(D[x]=D[x]&15|D[x]>>8),0==(D[x]&983040)&&(D[x]=D[x]&65535|(D[x]&251658240)>> -8),b[x]=D[x]&15,c[x]==mxConstants.DIRECTION_MASK_WEST||c[x]==mxConstants.DIRECTION_MASK_NORTH||c[x]==mxConstants.DIRECTION_MASK_EAST||c[x]==mxConstants.DIRECTION_MASK_SOUTH)&&(b[x]=c[x]);c=b[0]==mxConstants.DIRECTION_MASK_EAST?3:b[0];D=b[1]==mxConstants.DIRECTION_MASK_EAST?3:b[1];c-=F;D-=F;1>c&&(c+=4);1>D&&(D+=4);c=mxEdgeStyle.routePatterns[c-1][D-1];mxEdgeStyle.wayPoints1[0][0]=r[0][0];mxEdgeStyle.wayPoints1[0][1]=r[0][1];switch(b[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-= -f;mxEdgeStyle.wayPoints1[0][1]+=l[0][1]*r[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=l[0][0]*r[0][2];mxEdgeStyle.wayPoints1[0][1]+=r[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=r[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=l[0][1]*r[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=l[0][0]*r[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;m=D=0<(b[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))? -0:1;for(x=0;x>5,q<<=F,15>=4),t=0<(c[x]&mxEdgeStyle.CENTER_MASK),(z||v)&&9>q?(u=z?0:1,q=t&&0==n?r[u][0]+l[u][0]*r[u][2]:t?r[u][1]+l[u][1]* -r[u][3]:mxEdgeStyle.limits[u][q],0==n?(q=(q-mxEdgeStyle.wayPoints1[f][0])*p[0],0e&&(e+=4);1>a&&(a+=4);b=routePatterns[e-1][a-1];0!=c&& +b*10)/10,Math.round(a.width/b*10)/10,Math.round(a.height/b*10)/10)}else c=null;return c},OrthConnector:function(a,b,c,d,e){var f=a.view.graph,g=null==l?!1:f.getModel().isEdge(l.cell),k=null==m?!1:f.getModel().isEdge(m.cell);f=mxEdgeStyle.scalePointArray(a.absolutePoints,a.view.scale);var l=mxEdgeStyle.scaleCellState(b,a.view.scale),m=mxEdgeStyle.scaleCellState(c,a.view.scale),n=f[0],p=f[f.length-1],q=null!=l?l.x:n.x,r=null!=l?l.y:n.y,t=null!=l?l.width:1,u=null!=l?l.height:1,x=null!=m?m.x:p.x,y=null!= +m?m.y:p.y,A=null!=m?m.width:1,z=null!=m?m.height:1;f=mxEdgeStyle.getJettySize(a,!0);var C=mxEdgeStyle.getJettySize(a,!1);null!=l&&m==l&&(f=C=Math.max(f,C));var B=C+f,v=!1;if(null!=n&&null!=p){v=p.x-n.x;var D=p.y-n.y;v=v*v+D*Dv;v++)mxEdgeStyle.limits[v][1]=q[v][0]-C[v],mxEdgeStyle.limits[v][2]= +q[v][1]-C[v],mxEdgeStyle.limits[v][4]=q[v][0]+q[v][2]+C[v],mxEdgeStyle.limits[v][8]=q[v][1]+q[v][3]+C[v];C=q[0][1]+q[0][3]/2;r=q[1][1]+q[1][3]/2;v=q[0][0]+q[0][2]/2-(q[1][0]+q[1][2]/2);D=C-r;C=0;0>v?C=0>D?2:1:0>=D&&(C=3,0==v&&(C=2));r=null;null!=l&&(r=n);l=[[.5,.5],[.5,.5]];for(v=0;2>v;v++)null!=r&&(l[v][0]=(r.x-q[v][0])/q[v][2],1>=Math.abs(r.x-q[v][0])?b[v]=mxConstants.DIRECTION_MASK_WEST:1>=Math.abs(r.x-q[v][0]-q[v][2])&&(b[v]=mxConstants.DIRECTION_MASK_EAST),l[v][1]=(r.y-q[v][1])/q[v][3],1>=Math.abs(r.y- +q[v][1])?b[v]=mxConstants.DIRECTION_MASK_NORTH:1>=Math.abs(r.y-q[v][1]-q[v][3])&&(b[v]=mxConstants.DIRECTION_MASK_SOUTH)),r=null,null!=m&&(r=p);v=q[0][1]-(q[1][1]+q[1][3]);p=q[0][0]-(q[1][0]+q[1][2]);r=q[1][1]-(q[0][1]+q[0][3]);t=q[1][0]-(q[0][0]+q[0][2]);mxEdgeStyle.vertexSeperations[1]=Math.max(p-B,0);mxEdgeStyle.vertexSeperations[2]=Math.max(v-B,0);mxEdgeStyle.vertexSeperations[4]=Math.max(r-B,0);mxEdgeStyle.vertexSeperations[3]=Math.max(t-B,0);B=[];m=[];n=[];m[0]=p>=t?mxConstants.DIRECTION_MASK_WEST: +mxConstants.DIRECTION_MASK_EAST;n[0]=v>=r?mxConstants.DIRECTION_MASK_NORTH:mxConstants.DIRECTION_MASK_SOUTH;m[1]=mxUtils.reversePortConstraints(m[0]);n[1]=mxUtils.reversePortConstraints(n[0]);p=p>=t?p:t;r=v>=r?v:r;t=[[0,0],[0,0]];u=!1;for(v=0;2>v;v++)0==b[v]&&(0==(m[v]&c[v])&&(m[v]=mxUtils.reversePortConstraints(m[v])),0==(n[v]&c[v])&&(n[v]=mxUtils.reversePortConstraints(n[v])),t[v][0]=n[v],t[v][1]=m[v]);0v;v++)0==b[v]&&(0==(t[v][0]&c[v])&&(t[v][0]=t[v][1]),B[v]=t[v][0]&c[v],B[v]|=(t[v][1]&c[v])<<8,B[v]|=(t[1-v][v]&c[v])<<16,B[v]|=(t[1-v][1-v]&c[v])<<24,0==(B[v]&15)&&(B[v]<<=8),0==(B[v]&3840)&&(B[v]=B[v]&15|B[v]>>8),0==(B[v]&983040)&&(B[v]=B[v]&65535|(B[v]&251658240)>> +8),b[v]=B[v]&15,c[v]==mxConstants.DIRECTION_MASK_WEST||c[v]==mxConstants.DIRECTION_MASK_NORTH||c[v]==mxConstants.DIRECTION_MASK_EAST||c[v]==mxConstants.DIRECTION_MASK_SOUTH)&&(b[v]=c[v]);c=b[0]==mxConstants.DIRECTION_MASK_EAST?3:b[0];B=b[1]==mxConstants.DIRECTION_MASK_EAST?3:b[1];c-=C;B-=C;1>c&&(c+=4);1>B&&(B+=4);c=mxEdgeStyle.routePatterns[c-1][B-1];mxEdgeStyle.wayPoints1[0][0]=q[0][0];mxEdgeStyle.wayPoints1[0][1]=q[0][1];switch(b[0]){case mxConstants.DIRECTION_MASK_WEST:mxEdgeStyle.wayPoints1[0][0]-= +f;mxEdgeStyle.wayPoints1[0][1]+=l[0][1]*q[0][3];break;case mxConstants.DIRECTION_MASK_SOUTH:mxEdgeStyle.wayPoints1[0][0]+=l[0][0]*q[0][2];mxEdgeStyle.wayPoints1[0][1]+=q[0][3]+f;break;case mxConstants.DIRECTION_MASK_EAST:mxEdgeStyle.wayPoints1[0][0]+=q[0][2]+f;mxEdgeStyle.wayPoints1[0][1]+=l[0][1]*q[0][3];break;case mxConstants.DIRECTION_MASK_NORTH:mxEdgeStyle.wayPoints1[0][0]+=l[0][0]*q[0][2],mxEdgeStyle.wayPoints1[0][1]-=f}f=0;m=B=0<(b[0]&(mxConstants.DIRECTION_MASK_EAST|mxConstants.DIRECTION_MASK_WEST))? +0:1;for(v=0;v>5,r<<=C,15>=4),t=0<(c[v]&mxEdgeStyle.CENTER_MASK),(y||x)&&9>r?(u=y?0:1,r=t&&0==n?q[u][0]+l[u][0]*q[u][2]:t?q[u][1]+l[u][1]* +q[u][3]:mxEdgeStyle.limits[u][r],0==n?(r=(r-mxEdgeStyle.wayPoints1[f][0])*p[0],0e&&(e+=4);1>a&&(a+=4);b=routePatterns[e-1][a-1];0!=c&& 0!=d||null==inlineRoutePatterns[e-1][a-1]||(b=inlineRoutePatterns[e-1][a-1]);return b}},mxStyleRegistry={values:[],putValue:function(a,b){mxStyleRegistry.values[a]=b},getValue:function(a){return mxStyleRegistry.values[a]},getName:function(a){for(var b in mxStyleRegistry.values)if(mxStyleRegistry.values[b]==a)return b;return null}};mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ELBOW,mxEdgeStyle.ElbowConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ENTITY_RELATION,mxEdgeStyle.EntityRelation); mxStyleRegistry.putValue(mxConstants.EDGESTYLE_LOOP,mxEdgeStyle.Loop);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SIDETOSIDE,mxEdgeStyle.SideToSide);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_TOPTOBOTTOM,mxEdgeStyle.TopToBottom);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_ORTHOGONAL,mxEdgeStyle.OrthConnector);mxStyleRegistry.putValue(mxConstants.EDGESTYLE_SEGMENT,mxEdgeStyle.SegmentConnector);mxStyleRegistry.putValue(mxConstants.PERIMETER_ELLIPSE,mxPerimeter.EllipsePerimeter); mxStyleRegistry.putValue(mxConstants.PERIMETER_RECTANGLE,mxPerimeter.RectanglePerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_RHOMBUS,mxPerimeter.RhombusPerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_TRIANGLE,mxPerimeter.TrianglePerimeter);mxStyleRegistry.putValue(mxConstants.PERIMETER_HEXAGON,mxPerimeter.HexagonPerimeter);function mxGraphView(a){this.graph=a;this.translate=new mxPoint;this.graphBounds=new mxRectangle;this.states=new mxDictionary}mxGraphView.prototype=new mxEventSource; @@ -1138,7 +1148,7 @@ mxGraphView.prototype.updateEdgeBounds=function(a){var b=a.absolutePoints,c=b[0] Math.max(1,m-k)}}; mxGraphView.prototype.getPoint=function(a,b){var c=a.getCenterX(),d=a.getCenterY();if(null==a.segments||null!=b&&!b.relative)null!=b&&(b=b.offset,null!=b&&(c+=b.x,d+=b.y));else{for(var e=a.absolutePoints.length,f=Math.round(((null!=b?b.x/2:0)+.5)*a.length),g=a.segments[0],k=0,l=1;f>=Math.round(k+g)&&l=f?0:f*f/(a*a+n*n));a>e&&(a=e);e=Math.sqrt(mxUtils.ptSegDistSq(g.x,g.y,k.x,k.y,b,c));-1==mxUtils.relativeCcw(g.x,g.y,k.x,k.y,b,c)&&(e=-e);return new mxPoint((d/2-m-a)/d*-2,e/this.scale)}}return new mxPoint}; mxGraphView.prototype.updateEdgeLabelOffset=function(a){var b=a.absolutePoints;a.absoluteOffset.x=a.getCenterX();a.absoluteOffset.y=a.getCenterY();if(null!=b&&0this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0this.minPageBreakDist)?Math.ceil(d.height/f.height)+1:0,k=a?Math.ceil(d.width/f.width)+1:0,l=(k-1)*f.width,m=(g-1)*f.height;null==this.horizontalPageBreaks&&0this.model.getChildCount(b)&&c--;var z=this.model.updateEdgeParent;this.model.updateEdgeParent=function(E,C){0>mxUtils.indexOf(a,E)&&z.apply(this,arguments)};this.model.add(b,a[l],c+l);this.model.updateEdgeParent=z;this.autoSizeCellsOnAdd&&this.autoSizeCell(a[l],!0);(null==k||k)&&this.isExtendParentsOnAdd(a[l])&&this.isExtendParent(a[l])&&this.extendParent(a[l]);(null==g||g)&&this.constrainChild(a[l]);null!=d&&this.cellConnected(a[l], +mxGraph.prototype.cellsAdded=function(a,b,c,d,e,f,g,k){if(null!=a&&null!=b&&null!=c){this.model.beginUpdate();try{var l=f?this.view.getState(b):null,m=null!=l?l.origin:null,n=new mxPoint(0,0);for(l=0;lthis.model.getChildCount(b)&&c--;var y=this.model.updateEdgeParent;this.model.updateEdgeParent=function(A,z){0>mxUtils.indexOf(a,A)&&y.apply(this,arguments)};this.model.add(b,a[l],c+l);this.model.updateEdgeParent=y;this.autoSizeCellsOnAdd&&this.autoSizeCell(a[l],!0);(null==k||k)&&this.isExtendParentsOnAdd(a[l])&&this.isExtendParent(a[l])&&this.extendParent(a[l]);(null==g||g)&&this.constrainChild(a[l]);null!=d&&this.cellConnected(a[l], d,!0);null!=e&&this.cellConnected(a[l],e,!1)}this.fireEvent(new mxEventObject(mxEvent.CELLS_ADDED,"cells",a,"parent",b,"index",c,"source",d,"target",e,"absolute",f))}finally{this.model.endUpdate()}}};mxGraph.prototype.autoSizeCell=function(a,b){if(null!=b?b:1){b=this.model.getChildCount(a);for(var c=0;c"),e=mxUtils.getSizeForString(k,g,f[mxConstants.STYLE_FONTFAMILY],b,f[mxConstants.STYLE_FONTSTYLE]),b=e.width+d,e=e.height+a,mxUtils.getValue(f,mxConstants.STYLE_HORIZONTAL,!0)||(f=e,e=b,b=f),c&&(b=this.snap(b+this.gridSize/ @@ -1264,9 +1274,9 @@ this.constrainChildCells(a)}finally{this.model.endUpdate()}}return e};mxGraph.pr mxGraph.prototype.scaleCell=function(a,b,c,d){var e=this.model.getGeometry(a);if(null!=e){var f=this.getCurrentCellStyle(a);e=e.clone();var g=e.x,k=e.y,l=e.width,m=e.height;e.scale(b,c,"fixed"==f[mxConstants.STYLE_ASPECT]);"1"==f[mxConstants.STYLE_RESIZE_WIDTH]?e.width=l*b:"0"==f[mxConstants.STYLE_RESIZE_WIDTH]&&(e.width=l);"1"==f[mxConstants.STYLE_RESIZE_HEIGHT]?e.height=m*c:"0"==f[mxConstants.STYLE_RESIZE_HEIGHT]&&(e.height=m);this.isCellMovable(a)||(e.x=g,e.y=k);this.isCellResizable(a)||(e.width= l,e.height=m);this.model.isVertex(a)?this.cellResized(a,e,!0,d):this.model.setGeometry(a,e)}};mxGraph.prototype.extendParent=function(a){if(null!=a){var b=this.model.getParent(a),c=this.getCellGeometry(b);null==b||null==c||this.isCellCollapsed(b)||(a=this.getCellGeometry(a),null!=a&&!a.relative&&(c.width=a&&u.y+u.height<=p&&u.y>=b&&u.x+u.width<=n)&&f.push(t);v&&!l||this.getCells(a,b,c,d,t,f,g,k,l)}}}return f};mxGraph.prototype.getCellsBeyond=function(a,b,c,d,e){var f=[];if(d||e)if(null==c&&(c=this.getDefaultParent()),null!=c)for(var g=this.model.getChildCount(c),k=0;k=a)&&(!e||m.y>=b)&&f.push(l)}return f}; -mxGraph.prototype.findTreeRoots=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!1;var d=[];if(null!=a){for(var e=this.getModel(),f=e.getChildCount(a),g=null,k=0,l=0;lk&&(k=n,g=m)}}0==d.length&&null!=g&&d.push(g)}return d}; +mxGraph.prototype.getCells=function(a,b,c,d,e,f,g,k,l){f=null!=f?f:[];if(0=a&&u.y+u.height<=p&&u.y>=b&&u.x+u.width<=n)&&f.push(t);x&&!l||this.getCells(a,b,c,d,t,f,g,k,l)}}}return f};mxGraph.prototype.getCellsBeyond=function(a,b,c,d,e){var f=[];if(d||e)if(null==c&&(c=this.getDefaultParent()),null!=c)for(var g=this.model.getChildCount(c),k=0;k=a)&&(!e||m.y>=b)&&f.push(l)}return f}; +mxGraph.prototype.findTreeRoots=function(a,b,c){b=null!=b?b:!1;c=null!=c?c:!1;var d=[];if(null!=a){for(var e=this.getModel(),f=e.getChildCount(a),g=null,k=0,l=0;lk&&(k=n,g=m)}}0==d.length&&null!=g&&d.push(g)}return d}; mxGraph.prototype.traverse=function(a,b,c,d,e,f){if(null!=c&&null!=a&&(b=null!=b?b:!0,f=null!=f?f:!1,e=e||new mxDictionary,null==d||!e.get(d))&&(e.put(d,!0),d=c(a,d),null==d||d)&&(d=this.model.getEdgeCount(a),0c||Math.abs(this.mouseDownY-b.getY())>c)){this.delayedSelection=!1;this.cellWasClicked=!0;this.graph.isCellSelected(this.cell)||mxEvent.isAltDown(b.getEvent())||(this.graph.isToggleEvent(b.getEvent())?a.addSelectionCell(this.cell):this.graph.isAncestorSelected(this.cell)||a.setSelectionCell(this.cell)); var d=a.getSelectionCells();this.graph.isToggleEvent(b.getEvent())&&mxEvent.isAltDown(b.getEvent())&&!a.isSelectionEmpty()||(d=d.concat(this.cell));this.start(this.cell,this.mouseDownX,this.mouseDownY,this.getCells(null,d))}d=null!=this.first?this.getDelta(b):null;if(b.isConsumed()||!a.isMouseDown||null==this.cell||null==d||null==this.bounds||this.suspended)!this.isMoveEnabled()&&!this.isCloneEnabled()||!this.updateCursor||b.isConsumed()||null==b.getState()&&null==b.sourceState||a.isMouseDown||(d= a.getCursorForMouseEvent(b),null==d&&a.isEnabled()&&a.isCellMovable(b.getCell())&&(d=a.getModel().isEdge(b.getCell())?mxConstants.CURSOR_MOVABLE_EDGE:mxConstants.CURSOR_MOVABLE_VERTEX),null!=d&&null!=b.sourceState&&b.sourceState.setCursor(d));else if(mxEvent.isMultiTouchEvent(b.getEvent()))this.reset();else{if(null!=this.shape||this.livePreviewActive||this.cloning||Math.abs(d.x)>c||Math.abs(d.y)>c){null==this.highlight&&(this.highlight=new mxCellHighlight(this.graph,mxConstants.DROP_TARGET_COLOR, -3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()),f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,r){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k, +3));c=a.isCloneEvent(b.getEvent())&&a.isCellsCloneable()&&this.isCloneEnabled();var e=a.isGridEnabledEvent(b.getEvent()),f=b.getCell();f=null!=f&&0>mxUtils.indexOf(this.cells,f)?f:a.getCellAt(b.getGraphX(),b.getGraphY(),null,null,null,mxUtils.bind(this,function(n,p,q){return 0<=mxUtils.indexOf(this.cells,n.cell)}));var g=!0,k=null;this.cloning=c;a.isDropEnabled()&&this.highlightEnabled&&(k=a.getDropTarget(this.cells,b.getEvent(),f,c));var l=a.getView().getState(k),m=!1;null!=l&&(c||this.isValidDropTarget(k, b))?(this.target!=k&&(this.target=k,this.setHighlightColor(mxConstants.DROP_TARGET_COLOR)),m=!0):(this.target=null,this.connectOnDrop&&null!=f&&1==this.cells.length&&a.getModel().isVertex(f)&&a.isCellConnectable(f)&&(l=a.getView().getState(f),null!=l&&(f=null==a.getEdgeValidationError(null,this.cell,f)?mxConstants.VALID_COLOR:mxConstants.INVALID_CONNECT_TARGET_COLOR,this.setHighlightColor(f),m=!0)));null!=l&&m?this.highlight.highlight(l):this.highlight.hide();null!=this.guide&&this.useGuidesForEvent(b)? (d=this.guide.move(this.bounds,d,e,c),g=!1):d=a.snapDelta(d,this.bounds,!e,!1,!1);null!=this.guide&&g&&this.guide.hide();this.isConstrainedEvent(b)&&(Math.abs(d.x)>Math.abs(d.y)?d.y=0:d.x=0);this.checkPreview();if(this.currentDx!=d.x||this.currentDy!=d.y)this.currentDx=d.x,this.currentDy=d.y,this.updatePreview()}this.updateHint(b);this.consumeMouseEvent(mxEvent.MOUSE_MOVE,b);mxEvent.consume(b.getEvent())}}; mxGraphHandler.prototype.isConstrainedEvent=function(a){return(null==this.target||this.graph.isCloneEvent(a.getEvent()))&&this.graph.isConstrainedEvent(a.getEvent())};mxGraphHandler.prototype.updatePreview=function(a){this.livePreviewUsed&&!a?null!=this.cells&&(this.setHandlesVisibleForCells(this.graph.selectionCellsHandler.getHandledSelectionCells(),!1),this.updateLivePreview(this.currentDx,this.currentDy)):this.updatePreviewShape()}; @@ -1602,10 +1612,10 @@ mxConnectionHandler.prototype.reset=function(){null!=this.shape&&(this.shape.des mxConnectionHandler.prototype.drawPreview=function(){this.updatePreview(null==this.error);null!=this.edgeState&&(this.edgeState.shape=this.shape,this.graph.cellRenderer.postConfigureShape(this.edgeState),this.edgeState.shape=null);this.shape.redraw()};mxConnectionHandler.prototype.updatePreview=function(a){this.shape.strokewidth=this.getEdgeWidth(a);this.shape.stroke=this.getEdgeColor(a)};mxConnectionHandler.prototype.getEdgeColor=function(a){return a?mxConstants.VALID_COLOR:mxConstants.INVALID_COLOR}; mxConnectionHandler.prototype.getEdgeWidth=function(a){return a?3:1}; mxConnectionHandler.prototype.connect=function(a,b,c,d){if(null!=b||this.isCreateTarget(c)||this.graph.allowDanglingEdges){var e=this.graph.getModel(),f=!1,g=null;e.beginUpdate();try{if(null!=a&&null==b&&!this.graph.isIgnoreTerminalEvent(c)&&this.isCreateTarget(c)&&(b=this.createTargetVertex(c,a),null!=b)){d=this.graph.getDropTarget([b],c,d);f=!0;if(null!=d&&this.graph.getModel().isEdge(d))d=this.graph.getDefaultParent();else{var k=this.graph.getView().getState(d);if(null!=k){var l=e.getGeometry(b); -l.x-=k.origin.x;l.y-=k.origin.y}}this.graph.addCell(b,d)}var m=this.graph.getDefaultParent(),n=this.graph.getReferenceTerminal(a),p=this.graph.getReferenceTerminal(b),r=m;null!=n&&null!=p?r=e.getNearestCommonAncestor(n,p):null!=n&&(r=e.getParent(n));null==r||e.isEdge(r)||r==e.getRoot()||(m=r);p=n=null;null!=this.edgeState&&(n=this.edgeState.cell.value,p=this.edgeState.cell.style);g=this.insertEdge(m,null,n,a,b,p);if(null!=g){this.graph.setConnectionConstraint(g,a,!0,this.sourceConstraint);this.graph.setConnectionConstraint(g, -b,!1,this.constraintHandler.currentConstraint);null!=this.edgeState&&e.setGeometry(g,this.edgeState.cell.geometry);if(this.isInsertBefore(g,a,b,c,d)&&(null==this.constraintHandler.currentConstraint||this.constraintHandler.currentConstraint.perimeter)){for(l=a;null!=l.parent&&null!=l.geometry&&l.geometry.relative&&l.parent!=g.parent;)l=this.graph.model.getParent(l);null!=l&&null!=l.parent&&l.parent==g.parent&&e.add(m,g,l.parent.getIndex(l))}var q=e.getGeometry(g);null==q&&(q=new mxGeometry,q.relative= -!0,e.setGeometry(g,q));if(null!=this.waypoints&&0d&&(a+=c,a=e?this.graph.snap(a/f)*f:Math.round(a/f)*f);if(0==d|| -3==d||5==d)p+=b,p=e?this.graph.snap(p/f)*f:Math.round(p/f)*f;else if(2==d||4==d||7==d)r+=b,r=e?this.graph.snap(r/f)*f:Math.round(r/f)*f;e=r-p;c=q-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(p=r-e,a=q-c)));l&&(e+=e-m,c+=c-n,p+=t-(p+e/2),a+=u-(a+c/2));0>e&&(p+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(p+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width* +mxVertexHandler.prototype.union=function(a,b,c,d,e,f,g,k,l){e=null!=e?e&&this.graph.gridEnabled:this.graph.gridEnabled;if(this.singleSizer)return d=a.x+a.width+b,g=a.y+a.height+c,e&&(d=this.graph.snap(d/f)*f,g=this.graph.snap(g/f)*f),f=new mxRectangle(a.x,a.y,0,0),f.add(new mxRectangle(d,g,0,0)),f;var m=a.width,n=a.height,p=a.x-g.x*f,q=p+m;a=a.y-g.y*f;var r=a+n,t=p+m/2,u=a+n/2;4d&&(a+=c,a=e?this.graph.snap(a/f)*f:Math.round(a/f)*f);if(0==d|| +3==d||5==d)p+=b,p=e?this.graph.snap(p/f)*f:Math.round(p/f)*f;else if(2==d||4==d||7==d)q+=b,q=e?this.graph.snap(q/f)*f:Math.round(q/f)*f;e=q-p;c=r-a;k&&(k=this.graph.getCellGeometry(this.state.cell),null!=k&&(k=k.width/k.height,1==d||2==d||7==d||6==d?e=c*k:c=e/k,0==d&&(p=q-e,a=r-c)));l&&(e+=e-m,c+=c-n,p+=t-(p+e/2),a+=u-(a+c/2));0>e&&(p+=e,e=Math.abs(e));0>c&&(a+=c,c=Math.abs(c));d=new mxRectangle(p+g.x*f,a+g.y*f,e,c);null!=this.minBounds&&(d.width=Math.max(d.width,this.minBounds.x*f+this.minBounds.width* f+Math.max(0,this.x0*f-d.x)),d.height=Math.max(d.height,this.minBounds.y*f+this.minBounds.height*f+Math.max(0,this.y0*f-d.y)));return d};mxVertexHandler.prototype.redraw=function(a){this.selectionBounds=this.getSelectionBounds(this.state);this.bounds=new mxRectangle(this.selectionBounds.x,this.selectionBounds.y,this.selectionBounds.width,this.selectionBounds.height);this.drawPreview();a||this.redrawHandles()}; mxVertexHandler.prototype.getHandlePadding=function(){var a=new mxPoint(0,0),b=this.tolerance;null!=this.sizers&&0H.length?H[0]:H[1]+" "+H[0]+" "+H[0]+" "+H[1]})();A.btn.style.color=q.pickerButtonColor;A.btn.style.font="12px sans-serif";A.btn.style.textAlign="center";try{A.btn.style.cursor="pointer"}catch(H){A.btn.style.cursor="hand"}A.btn.onmousedown=function(){q.hidePicker()}; -A.btnS.style.lineHeight=A.btn.style.height;switch(t){case 0:var J="hs.png";break;case 1:J="hv.png"}A.padM.style.backgroundImage="url(data:image/gif;base64,R0lGODlhDwAPAKEBAAAAAP///////////yH5BAEKAAIALAAAAAAPAA8AAAIklB8Qx53b4otSUWcvyiz4/4AeQJbmKY4p1HHapBlwPL/uVRsFADs=)";A.padM.style.backgroundRepeat="no-repeat";A.sldM.style.backgroundImage="url(data:image/gif;base64,R0lGODlhBwALAKECAAAAAP///6g8eKg8eCH5BAEKAAIALAAAAAAHAAsAAAITTIQYcLnsgGxvijrxqdQq6DRJAQA7)";A.sldM.style.backgroundRepeat="no-repeat"; -A.pad.style.backgroundImage="url('"+mxJSColor.getDir()+J+"')";A.pad.style.backgroundRepeat="no-repeat";A.pad.style.backgroundPosition="0 0";f();g();mxJSColor.picker.owner=q;document.getElementsByTagName("body")[0].appendChild(A.boxB)}function e(y){return[2*y.pickerInset+2*y.pickerFace+mxJSColor.images.pad[0]+(y.slider?2*y.pickerInset+2*mxJSColor.images.arrow[0]+mxJSColor.images.sld[0]:0),y.pickerClosable?4*y.pickerInset+3*y.pickerFace+mxJSColor.images.pad[1]+y.pickerButtonHeight:2*y.pickerInset+2* -y.pickerFace+mxJSColor.images.pad[1]]}function f(){switch(t){case 0:var y=1;break;case 1:y=2}mxJSColor.picker.padM.style.backgroundPosition=q.pickerFace+q.pickerInset+Math.round(q.hsv[0]/6*(mxJSColor.images.pad[0]-1))-Math.floor(mxJSColor.images.cross[0]/2)+"px "+(q.pickerFace+q.pickerInset+Math.round((1-q.hsv[y])*(mxJSColor.images.pad[1]-1))-Math.floor(mxJSColor.images.cross[1]/2))+"px";y=mxJSColor.picker.sld.childNodes;switch(t){case 0:for(var B=c(q.hsv[0],q.hsv[1],1),G=0;G.213*this.rgb[0]+.715*this.rgb[1]+.072*this.rgb[2]?"#FFF":"#000");y&D||!k()||f();y&x||!k()||g()};this.fromHSV=function(y,B,G,I){0>y&&(y=0);6B&&(B=0);1G&&(G=0);1y&&(y=0);1B&&(B=0);1G&&(G=0);1=d&&"0"!="01230120022455012603010202"[d]&&("01230120022455012603010202"[d]!=b[e-1]&&(b[e]="01230120022455012603010202"[d],e++),3=e)for(;3>=e;)b[e]="0",e++;return b.join("")}; @@ -1995,104 +1969,105 @@ Editor.prototype.setModified=function(a){this.modified=a};Editor.prototype.setFi Editor.prototype.createUndoManager=function(){var a=this.graph,b=new mxUndoManager;this.undoListener=function(f,h){b.undoableEditHappened(h.getProperty("edit"))};var e=mxUtils.bind(this,function(f,h){this.undoListener.apply(this,arguments)});a.getModel().addListener(mxEvent.UNDO,e);a.getView().addListener(mxEvent.UNDO,e);e=function(f,h){f=h.getProperty("edit").changes;f=a.getSelectionCellsForChanges(f);h=!1;if(0P.clientHeight-F&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(d&&(d=document.createElement("img"),d.setAttribute("src",Dialog.prototype.closeImage),d.setAttribute("title",mxResources.get("close")), -d.className="geDialogClose",d.style.top=K+14+"px",d.style.left=D+e+38-w+"px",d.style.zIndex=this.zIndex,mxEvent.addListener(d,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(d),this.dialogImg=d,!p)){var I=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(Z){I=!0}),null,mxUtils.bind(this,function(Z){I&&(a.hideDialog(!0),I=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=k){var Z=k();null!=Z&&(z=e=Z.w,C=f=Z.h)}Z=Editor.inlineFullscreen|| -null==a.embedViewport?this.getDocumentSize():mxUtils.clone(a.embedViewport);H=Z.height;this.bg.style.height=H+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=this.getDocumentSize().height+"px");e=null!=document.body?Math.min(z,document.body.scrollWidth-F):z;f=Math.min(C,H-F);Z=Math.max(1,Math.round((Z.width-e-F)/2));var S=Math.max(1,Math.round((H-f-a.footerHeight)/3));S=this.getPosition(Z,S,e,f);Z=S.x;S=S.y;var Y=mxUtils.getDocumentScrollOrigin(document);Z+=Y.x;S+=Y.y;Editor.inlineFullscreen|| -null==a.embedViewport||(S+=a.embedViewport.y,Z+=a.embedViewport.x);P.style.left=Z+"px";P.style.top=S+"px";P.style.width=e+"px";P.style.height=f+"px";!n&&b.clientHeight>P.clientHeight-F&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=S+14+"px",this.dialogImg.style.left=Z+e+38-w+"px")});null!=a.embedViewport?a.addListener("embedViewportChanged",this.resizeListener):mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=g;this.container=P;a.editor.fireEvent(new mxEventObject("showDialog"))} +function Dialog(a,b,e,f,h,d,g,m,p,k,t){this.editorUi=a;var w=p?57:0,z=e,B=f,D=p?0:64,E=Editor.inlineFullscreen||null==a.embedViewport?this.getDocumentSize():mxUtils.clone(a.embedViewport);null==a.embedViewport&&null!=window.innerHeight&&(E.height=window.innerHeight);var G=E.height;E=Math.max(1,Math.round((E.width-e-D)/2));var I=Math.max(1,Math.round((G-f-a.footerHeight)/3));b.style.maxHeight="100%";e=null!=document.body?Math.min(e,document.body.scrollWidth-D):e;f=Math.min(f,G-D);0P.clientHeight-D&&(b.style.overflowY="auto");b.style.overflowX="hidden";if(d&&(d=document.createElement("img"),d.setAttribute("src",Dialog.prototype.closeImage),d.setAttribute("title",mxResources.get("close")), +d.className="geDialogClose",d.style.top=I+14+"px",d.style.left=E+e+38-w+"px",d.style.zIndex=this.zIndex,mxEvent.addListener(d,"click",mxUtils.bind(this,function(){a.hideDialog(!0)})),document.body.appendChild(d),this.dialogImg=d,!t)){var L=!1;mxEvent.addGestureListeners(this.bg,mxUtils.bind(this,function(U){L=!0}),null,mxUtils.bind(this,function(U){L&&(a.hideDialog(!0),L=!1)}))}this.resizeListener=mxUtils.bind(this,function(){if(null!=k){var U=k();null!=U&&(z=e=U.w,B=f=U.h)}U=Editor.inlineFullscreen|| +null==a.embedViewport?this.getDocumentSize():mxUtils.clone(a.embedViewport);G=U.height;this.bg.style.height=G+"px";Editor.inlineFullscreen||null==a.embedViewport||(this.bg.style.height=this.getDocumentSize().height+"px");e=null!=document.body?Math.min(z,document.body.scrollWidth-D):z;f=Math.min(B,G-D);U=Math.max(1,Math.round((U.width-e-D)/2));var Y=Math.max(1,Math.round((G-f-a.footerHeight)/3));Y=this.getPosition(U,Y,e,f);U=Y.x;Y=Y.y;var R=mxUtils.getDocumentScrollOrigin(document);U+=R.x;Y+=R.y;Editor.inlineFullscreen|| +null==a.embedViewport||(Y+=a.embedViewport.y,U+=a.embedViewport.x);P.style.left=U+"px";P.style.top=Y+"px";P.style.width=e+"px";P.style.height=f+"px";!m&&b.clientHeight>P.clientHeight-D&&(b.style.overflowY="auto");null!=this.dialogImg&&(this.dialogImg.style.top=Y+14+"px",this.dialogImg.style.left=U+e+38-w+"px")});null!=a.embedViewport?a.addListener("embedViewportChanged",this.resizeListener):mxEvent.addListener(window,"resize",this.resizeListener);this.onDialogClose=g;this.container=P;a.editor.fireEvent(new mxEventObject("showDialog"))} Dialog.prototype.zIndex=mxPopupMenu.prototype.zIndex-2; Dialog.prototype.noColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkEzRDlBMUUwODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkEzRDlBMUUxODYxMTExRTFCMzA4RDdDMjJBMEMxRDM3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QTNEOUExREU4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QTNEOUExREY4NjExMTFFMUIzMDhEN0MyMkEwQzFEMzciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz5xh3fmAAAABlBMVEX////MzMw46qqDAAAAGElEQVR42mJggAJGKGAYIIGBth8KAAIMAEUQAIElnLuQAAAAAElFTkSuQmCC":IMAGE_PATH+ -"/nocolor.png";Dialog.prototype.defaultColorImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAKUlEQVQI1wXBMREAIAwEsHAMjJVQKZVW6U8CDpdH0QxLnLjxoqJjYvMBewMJ51TWcscAAAAASUVORK5CYII=":IMAGE_PATH+"/defaultcolor.png"; -Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png"; +"/nocolor.png";Dialog.prototype.closeImage=mxClient.IS_SVG?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEV7mr3///+wksspAAAAAnRSTlP/AOW3MEoAAAAdSURBVAgdY9jXwCDDwNDRwHCwgeExmASygSL7GgB12QiqNHZZIwAAAABJRU5ErkJggg==":IMAGE_PATH+"/close.png"; Dialog.prototype.clearImage=mxClient.IS_SVG?"data:image/gif;base64,R0lGODlhDQAKAIABAMDAwP///yH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IFdpbmRvd3MiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OUIzOEM1NzI4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OUIzOEM1NzM4NjEyMTFFMUEzMkNDMUE3NjZERDE2QjIiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo5QjM4QzU3MDg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo5QjM4QzU3MTg2MTIxMUUxQTMyQ0MxQTc2NkREMTZCMiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAEALAAAAAANAAoAAAIXTGCJebD9jEOTqRlttXdrB32PJ2ncyRQAOw==":IMAGE_PATH+ "/clear.gif";Dialog.prototype.bgOpacity=80;Dialog.prototype.getDocumentSize=function(){return mxUtils.getDocumentSize()};Dialog.prototype.getPosition=function(a,b){return new mxPoint(a,b)}; Dialog.prototype.close=function(a,b){if(null!=this.onDialogClose){if(0==this.onDialogClose(a,b))return!1;this.onDialogClose=null}null!=this.dialogImg&&null!=this.dialogImg.parentNode&&(this.dialogImg.parentNode.removeChild(this.dialogImg),this.dialogImg=null);null!=this.bg&&null!=this.bg.parentNode&&this.bg.parentNode.removeChild(this.bg);null!=this.editorUi.embedViewport?this.editorUi.removeListener(this.resizeListener):mxEvent.removeListener(window,"resize",this.resizeListener);null!=this.container.parentNode&& this.container.parentNode.removeChild(this.container)}; -var ErrorDialog=function(a,b,e,f,h,d,g,n,q,k,p){q=null!=q?q:!0;var w=document.createElement("div");w.style.textAlign="center";if(null!=b){var z=document.createElement("div");z.style.padding="0px";z.style.margin="0px";z.style.fontSize="18px";z.style.paddingBottom="16px";z.style.marginBottom="10px";z.style.borderBottom="1px solid #c0c0c0";z.style.color="gray";z.style.whiteSpace="nowrap";z.style.textOverflow="ellipsis";z.style.overflow="hidden";mxUtils.write(z,b);z.setAttribute("title",b);w.appendChild(z)}b= -document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";"string"===typeof e&&(e=e.replace(/\n/g,"
"));b.innerHTML=Graph.sanitizeHtml(e);w.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=d&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();d()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=k&&(k=mxUtils.button(k,function(){null!=p&&p()}),k.className="geBtn",e.appendChild(k)); -var C=mxUtils.button(f,function(){q&&a.hideDialog();null!=h&&h()});C.className="geBtn";e.appendChild(C);null!=g&&(f=mxUtils.button(g,function(){q&&a.hideDialog();null!=n&&n()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){C.focus()};w.appendChild(e);this.container=w},PrintDialog=function(a,b,e){this.create(a,b,e)}; -PrintDialog.prototype.create=function(a){function b(C){var F=g.checked||k.checked,D=parseInt(w.value)/100;isNaN(D)&&(D=1,w.value="100%");mxClient.IS_SF&&(D*=.75);var H=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,K=1/e.pageScale;if(F){var G=g.checked?1:parseInt(p.value);isNaN(G)||(K=mxUtils.getScaleForPageCount(G,e,H))}var P=G=0;H=mxRectangle.fromRectangle(H);H.width=Math.ceil(H.width*D);H.height=Math.ceil(H.height*D);K*=D;!F&&e.pageVisible?(D=e.getPageLayout(),G-=D.x*H.width,P-=D.y*H.height): -F=!0;F=PrintDialog.createPrintPreview(e,K,H,0,G,P,F);F.open();C&&PrintDialog.printPreview(F)}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var h=document.createElement("tbody");var d=document.createElement("tr");var g=document.createElement("input");g.setAttribute("type","checkbox");var n=document.createElement("td");n.setAttribute("colspan","2");n.style.fontSize="10pt";n.appendChild(g);var q=document.createElement("span");mxUtils.write(q," "+mxResources.get("fitPage")); -n.appendChild(q);mxEvent.addListener(q,"click",function(C){g.checked=!g.checked;k.checked=!g.checked;mxEvent.consume(C)});mxEvent.addListener(g,"change",function(){k.checked=!g.checked});d.appendChild(n);h.appendChild(d);d=d.cloneNode(!1);var k=document.createElement("input");k.setAttribute("type","checkbox");n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(k);q=document.createElement("span");mxUtils.write(q," "+mxResources.get("posterPrint")+":");n.appendChild(q);mxEvent.addListener(q, -"click",function(C){k.checked=!k.checked;g.checked=!k.checked;mxEvent.consume(C)});d.appendChild(n);var p=document.createElement("input");p.setAttribute("value","1");p.setAttribute("type","number");p.setAttribute("min","1");p.setAttribute("size","4");p.setAttribute("disabled","disabled");p.style.width="50px";n=document.createElement("td");n.style.fontSize="10pt";n.appendChild(p);mxUtils.write(n," "+mxResources.get("pages")+" (max)");d.appendChild(n);h.appendChild(d);mxEvent.addListener(k,"change", -function(){k.checked?p.removeAttribute("disabled"):p.setAttribute("disabled","disabled");g.checked=!k.checked});d=d.cloneNode(!1);n=document.createElement("td");mxUtils.write(n,mxResources.get("pageScale")+":");d.appendChild(n);n=document.createElement("td");var w=document.createElement("input");w.setAttribute("value","100 %");w.setAttribute("size","5");w.style.width="50px";n.appendChild(w);d.appendChild(n);h.appendChild(d);d=document.createElement("tr");n=document.createElement("td");n.colSpan=2; -n.style.paddingTop="20px";n.setAttribute("align","right");q=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});q.className="geBtn";a.editor.cancelFirst&&n.appendChild(q);if(PrintDialog.previewEnabled){var z=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});z.className="geBtn";n.appendChild(z)}z=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});z.className="geBtn gePrimaryBtn";n.appendChild(z);a.editor.cancelFirst|| -n.appendChild(q);d.appendChild(n);h.appendChild(d);f.appendChild(h);this.container=f};PrintDialog.printPreview=function(a){try{null!=a.wnd&&window.setTimeout(function(){a.wnd.focus();a.wnd.print();a.wnd.close()},500)}catch(b){}}; -PrintDialog.createPrintPreview=function(a,b,e,f,h,d,g){b=new mxPrintPreview(a,b,e,f,h,d);b.title=mxResources.get("preview");b.addPageCss=!mxClient.IS_SF;b.printBackgroundImage=!0;b.autoOrigin=g;g=a.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";b.backgroundColor=g;var n=b.isTextLabel;b.isTextLabel=function(k){return"geHint"==!k.className&&n.apply(this,arguments)};var q=b.getLinkForCellState;b.getLinkForCellState=function(k){return a.getAbsoluteUrl(q.apply(this,arguments))};return b}; +var ErrorDialog=function(a,b,e,f,h,d,g,m,p,k,t){p=null!=p?p:!0;var w=document.createElement("div");w.style.textAlign="center";if(null!=b){var z=document.createElement("div");z.style.padding="0px";z.style.margin="0px";z.style.fontSize="18px";z.style.paddingBottom="16px";z.style.marginBottom="10px";z.style.borderBottom="1px solid #c0c0c0";z.style.color="gray";z.style.whiteSpace="nowrap";z.style.textOverflow="ellipsis";z.style.overflow="hidden";mxUtils.write(z,b);z.setAttribute("title",b);w.appendChild(z)}b= +document.createElement("div");b.style.lineHeight="1.2em";b.style.padding="6px";"string"===typeof e&&(e=e.replace(/\n/g,"
"));b.innerHTML=Graph.sanitizeHtml(e);w.appendChild(b);e=document.createElement("div");e.style.marginTop="12px";e.style.textAlign="center";null!=d&&(b=mxUtils.button(mxResources.get("tryAgain"),function(){a.hideDialog();d()}),b.className="geBtn",e.appendChild(b),e.style.textAlign="center");null!=k&&(k=mxUtils.button(k,function(){null!=t&&t()}),k.className="geBtn",e.appendChild(k)); +var B=mxUtils.button(f,function(){p&&a.hideDialog();null!=h&&h()});B.className="geBtn";e.appendChild(B);null!=g&&(f=mxUtils.button(g,function(){p&&a.hideDialog();null!=m&&m()}),f.className="geBtn gePrimaryBtn",e.appendChild(f));this.init=function(){B.focus()};w.appendChild(e);this.container=w},PrintDialog=function(a,b,e){this.create(a,b,e)}; +PrintDialog.prototype.create=function(a){function b(B){var D=g.checked||k.checked,E=parseInt(w.value)/100;isNaN(E)&&(E=1,w.value="100%");mxClient.IS_SF&&(E*=.75);var G=e.pageFormat||mxConstants.PAGE_FORMAT_A4_PORTRAIT,I=1/e.pageScale;if(D){var H=g.checked?1:parseInt(t.value);isNaN(H)||(I=mxUtils.getScaleForPageCount(H,e,G))}var P=H=0;G=mxRectangle.fromRectangle(G);G.width=Math.ceil(G.width*E);G.height=Math.ceil(G.height*E);I*=E;!D&&e.pageVisible?(E=e.getPageLayout(),H-=E.x*G.width,P-=E.y*G.height): +D=!0;D=PrintDialog.createPrintPreview(e,I,G,0,H,P,D);D.open();B&&PrintDialog.printPreview(D)}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var h=document.createElement("tbody");var d=document.createElement("tr");var g=document.createElement("input");g.setAttribute("type","checkbox");var m=document.createElement("td");m.setAttribute("colspan","2");m.style.fontSize="10pt";m.appendChild(g);var p=document.createElement("span");mxUtils.write(p," "+mxResources.get("fitPage")); +m.appendChild(p);mxEvent.addListener(p,"click",function(B){g.checked=!g.checked;k.checked=!g.checked;mxEvent.consume(B)});mxEvent.addListener(g,"change",function(){k.checked=!g.checked});d.appendChild(m);h.appendChild(d);d=d.cloneNode(!1);var k=document.createElement("input");k.setAttribute("type","checkbox");m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(k);p=document.createElement("span");mxUtils.write(p," "+mxResources.get("posterPrint")+":");m.appendChild(p);mxEvent.addListener(p, +"click",function(B){k.checked=!k.checked;g.checked=!k.checked;mxEvent.consume(B)});d.appendChild(m);var t=document.createElement("input");t.setAttribute("value","1");t.setAttribute("type","number");t.setAttribute("min","1");t.setAttribute("size","4");t.setAttribute("disabled","disabled");t.style.width="50px";m=document.createElement("td");m.style.fontSize="10pt";m.appendChild(t);mxUtils.write(m," "+mxResources.get("pages")+" (max)");d.appendChild(m);h.appendChild(d);mxEvent.addListener(k,"change", +function(){k.checked?t.removeAttribute("disabled"):t.setAttribute("disabled","disabled");g.checked=!k.checked});d=d.cloneNode(!1);m=document.createElement("td");mxUtils.write(m,mxResources.get("pageScale")+":");d.appendChild(m);m=document.createElement("td");var w=document.createElement("input");w.setAttribute("value","100 %");w.setAttribute("size","5");w.style.width="50px";m.appendChild(w);d.appendChild(m);h.appendChild(d);d=document.createElement("tr");m=document.createElement("td");m.colSpan=2; +m.style.paddingTop="20px";m.setAttribute("align","right");p=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});p.className="geBtn";a.editor.cancelFirst&&m.appendChild(p);if(PrintDialog.previewEnabled){var z=mxUtils.button(mxResources.get("preview"),function(){a.hideDialog();b(!1)});z.className="geBtn";m.appendChild(z)}z=mxUtils.button(mxResources.get(PrintDialog.previewEnabled?"print":"ok"),function(){a.hideDialog();b(!0)});z.className="geBtn gePrimaryBtn";m.appendChild(z);a.editor.cancelFirst|| +m.appendChild(p);d.appendChild(m);h.appendChild(d);f.appendChild(h);this.container=f};PrintDialog.printPreview=function(a){try{null!=a.wnd&&window.setTimeout(function(){a.wnd.focus();a.wnd.print();a.wnd.close()},500)}catch(b){}}; +PrintDialog.createPrintPreview=function(a,b,e,f,h,d,g){b=new mxPrintPreview(a,b,e,f,h,d);b.title=mxResources.get("preview");b.addPageCss=!mxClient.IS_SF;b.printBackgroundImage=!0;b.autoOrigin=g;g=a.background;if(null==g||""==g||g==mxConstants.NONE)g="#ffffff";b.backgroundColor=g;var m=b.isTextLabel;b.isTextLabel=function(k){return"geHint"==!k.className&&m.apply(this,arguments)};var p=b.getLinkForCellState;b.getLinkForCellState=function(k){return a.getAbsoluteUrl(p.apply(this,arguments))};return b}; PrintDialog.previewEnabled=!0; -var PageSetupDialog=function(a){function b(){var D=w;null!=D&&null!=D.originalSrc&&(D=a.createImageForPageLink(D.originalSrc,null));null!=D&&null!=D.src?(p.style.backgroundImage="url("+D.src+")",p.style.display="inline-block"):(p.style.backgroundImage="",p.style.display="none");p.style.backgroundColor="";null!=z&&z!=mxConstants.NONE&&(p.style.backgroundColor=z,p.style.display="inline-block")}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var h=document.createElement("tbody"); -var d=document.createElement("tr");var g=document.createElement("td");g.style.verticalAlign="top";g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("paperSize")+":");d.appendChild(g);g=document.createElement("td");g.style.verticalAlign="top";g.style.fontSize="10pt";var n=PageSetupDialog.addPageFormatPanel(g,"pagesetupdialog",e.pageFormat);d.appendChild(g);h.appendChild(d);d=document.createElement("tr");g=document.createElement("td");mxUtils.write(g,mxResources.get("gridSize")+":");d.appendChild(g); -g=document.createElement("td");g.style.whiteSpace="nowrap";var q=document.createElement("input");q.setAttribute("type","number");q.setAttribute("min","0");q.style.width="40px";q.style.marginLeft="6px";q.value=e.getGridSize();g.appendChild(q);mxEvent.addListener(q,"change",function(){var D=parseInt(q.value);q.value=Math.max(1,isNaN(D)?e.getGridSize():D)});d.appendChild(g);h.appendChild(d);d=document.createElement("tr");g=document.createElement("td");mxUtils.write(g,mxResources.get("background")+":"); -d.appendChild(g);g=document.createElement("td");var k=document.createElement("button");k.className="geBtn";k.style.margin="0px";mxUtils.write(k,mxResources.get("change")+"...");var p=document.createElement("div");p.style.display="inline-block";p.style.verticalAlign="middle";p.style.backgroundPosition="center center";p.style.backgroundRepeat="no-repeat";p.style.backgroundSize="contain";p.style.border="1px solid lightGray";p.style.borderRadius="4px";p.style.marginRight="14px";p.style.height="32px"; -p.style.width="64px";p.style.cursor="pointer";p.style.padding="4px";var w=e.backgroundImage,z=e.background,C=e.shadowVisible,F=function(D){a.showBackgroundImageDialog(function(H,K,G,P){K||(null!=H&&null!=H.src&&Graph.isPageLink(H.src)&&(H={originalSrc:H.src}),w=H,C=P);z=G;b()},w,z,!0);mxEvent.consume(D)};mxEvent.addListener(k,"click",F);mxEvent.addListener(p,"click",F);b();g.appendChild(p);g.appendChild(k);d.appendChild(g);h.appendChild(d);d=document.createElement("tr");g=document.createElement("td"); -g.colSpan=2;g.style.paddingTop="16px";g.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";a.editor.cancelFirst&&g.appendChild(k);F=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var D=parseInt(q.value);isNaN(D)||e.gridSize===D||e.setGridSize(D);D=new ChangePageSetup(a,z,w,n.get());D.ignoreColor=e.background==z;D.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=w?w.src:null);null!=C&& -(D.shadowVisible=C);e.pageFormat.width==D.previousFormat.width&&e.pageFormat.height==D.previousFormat.height&&D.ignoreColor&&D.ignoreImage&&D.shadowVisible==e.shadowVisible||e.model.execute(D)});F.className="geBtn gePrimaryBtn";g.appendChild(F);a.editor.cancelFirst||g.appendChild(k);d.appendChild(g);h.appendChild(d);f.appendChild(h);this.container=f}; +var PageSetupDialog=function(a){function b(){var E=w;null!=E&&null!=E.originalSrc&&(E=a.createImageForPageLink(E.originalSrc,null));null!=E&&null!=E.src?(t.style.backgroundImage="url("+E.src+")",t.style.display="inline-block"):(t.style.backgroundImage="",t.style.display="none");t.style.backgroundColor="";null!=z&&z!=mxConstants.NONE&&(t.style.backgroundColor=z,t.style.display="inline-block")}var e=a.editor.graph,f=document.createElement("table");f.style.width="100%";f.style.height="100%";var h=document.createElement("tbody"); +var d=document.createElement("tr");var g=document.createElement("td");g.style.verticalAlign="top";g.style.fontSize="10pt";mxUtils.write(g,mxResources.get("paperSize")+":");d.appendChild(g);g=document.createElement("td");g.style.verticalAlign="top";g.style.fontSize="10pt";var m=PageSetupDialog.addPageFormatPanel(g,"pagesetupdialog",e.pageFormat);d.appendChild(g);h.appendChild(d);d=document.createElement("tr");g=document.createElement("td");mxUtils.write(g,mxResources.get("gridSize")+":");d.appendChild(g); +g=document.createElement("td");g.style.whiteSpace="nowrap";var p=document.createElement("input");p.setAttribute("type","number");p.setAttribute("min","0");p.style.width="40px";p.style.marginLeft="6px";p.value=e.getGridSize();g.appendChild(p);mxEvent.addListener(p,"change",function(){var E=parseInt(p.value);p.value=Math.max(1,isNaN(E)?e.getGridSize():E)});d.appendChild(g);h.appendChild(d);d=document.createElement("tr");g=document.createElement("td");mxUtils.write(g,mxResources.get("background")+":"); +d.appendChild(g);g=document.createElement("td");var k=document.createElement("button");k.className="geBtn";k.style.margin="0px";mxUtils.write(k,mxResources.get("change")+"...");var t=document.createElement("div");t.style.display="inline-block";t.style.verticalAlign="middle";t.style.backgroundPosition="center center";t.style.backgroundRepeat="no-repeat";t.style.backgroundSize="contain";t.style.border="1px solid lightGray";t.style.borderRadius="4px";t.style.marginRight="14px";t.style.height="32px"; +t.style.width="64px";t.style.cursor="pointer";t.style.padding="4px";var w=e.backgroundImage,z=e.background,B=e.shadowVisible,D=function(E){a.showBackgroundImageDialog(function(G,I,H,P){I||(null!=G&&null!=G.src&&Graph.isPageLink(G.src)&&(G={originalSrc:G.src}),w=G,B=P);z=H;b()},w,z,!0);mxEvent.consume(E)};mxEvent.addListener(k,"click",D);mxEvent.addListener(t,"click",D);b();g.appendChild(t);g.appendChild(k);d.appendChild(g);h.appendChild(d);d=document.createElement("tr");g=document.createElement("td"); +g.colSpan=2;g.style.paddingTop="16px";g.setAttribute("align","right");k=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});k.className="geBtn";a.editor.cancelFirst&&g.appendChild(k);D=mxUtils.button(mxResources.get("apply"),function(){a.hideDialog();var E=parseInt(p.value);isNaN(E)||e.gridSize===E||e.setGridSize(E);E=new ChangePageSetup(a,z,w,m.get());E.ignoreColor=e.background==z;E.ignoreImage=(null!=e.backgroundImage?e.backgroundImage.src:null)===(null!=w?w.src:null);null!=B&& +(E.shadowVisible=B);e.pageFormat.width==E.previousFormat.width&&e.pageFormat.height==E.previousFormat.height&&E.ignoreColor&&E.ignoreImage&&E.shadowVisible==e.shadowVisible||e.model.execute(E)});D.className="geBtn gePrimaryBtn";g.appendChild(D);a.editor.cancelFirst||g.appendChild(k);d.appendChild(g);h.appendChild(d);f.appendChild(h);this.container=f}; PageSetupDialog.addPageFormatPanel=function(a,b,e,f){b="format-"+b;var h=document.createElement("input");h.setAttribute("name",b);h.setAttribute("type","radio");h.setAttribute("value","portrait");var d=document.createElement("input");d.setAttribute("name",b);d.setAttribute("type","radio");d.setAttribute("value","landscape");var g=document.createElement("select");g.style.marginBottom="4px";g.style.borderRadius="4px";g.style.borderWidth="1px";g.style.borderStyle="solid";g.style.boxSizing="border-box"; -g.style.padding="2px";g.style.width="206px";var n=document.createElement("div");n.style.whiteSpace="nowrap";n.style.marginLeft="4px";n.style.width="210px";n.style.height="24px";h.style.marginRight="6px";n.appendChild(h);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));n.appendChild(b);d.style.marginLeft="10px";d.style.marginRight="6px";n.appendChild(d);var q=document.createElement("span");q.style.width="100px";mxUtils.write(q,mxResources.get("landscape")); -n.appendChild(q);var k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.marginLeft="4px";k.style.fontSize="12px";k.style.width="210px";k.style.height="24px";var p=document.createElement("input");p.setAttribute("size","7");p.setAttribute("title",mxResources.get("width"));p.style.textAlign="right";k.appendChild(p);mxUtils.write(k," x ");var w=document.createElement("input");w.setAttribute("size","7");w.setAttribute("title",mxResources.get("height"));w.style.textAlign="right";k.appendChild(w); -var z=document.createElement("select");z.style.marginLeft="4px";z.style.maxWidth="78px";z.style.width="78px";for(var C=[{label:mxResources.get("points"),unit:mxConstants.POINTS},{label:mxResources.get("inches"),unit:mxConstants.INCHES},{label:mxResources.get("millimeters"),unit:mxConstants.MILLIMETERS}],F=0;F=I)p.value=Editor.toUnit(e.width,z.value);I=parseFloat(w.value);if(isNaN(I)||0>=I)w.value=Editor.toUnit(e.height,z.value);I=new mxRectangle(0,0,Math.floor(Editor.fromUnit(parseFloat(p.value),z.value)),Math.floor(Editor.fromUnit(parseFloat(w.value),z.value)));Z||I.width==e.width&&I.height==e.height||(e=I,null!=f&&f(e))};mxEvent.addListener(b,"click",function(I){h.checked=!0;P(I);mxEvent.consume(I)}); -mxEvent.addListener(q,"click",function(I){d.checked=!0;P(I);mxEvent.consume(I)});mxEvent.addListener(p,"blur",P);mxEvent.addListener(p,"click",P);mxEvent.addListener(w,"blur",P);mxEvent.addListener(w,"click",P);mxEvent.addListener(d,"change",P);mxEvent.addListener(h,"change",P);mxEvent.addListener(g,"change",function(I){P(I,"custom"==g.value);mxEvent.consume(I)});mxEvent.addListener(z,"change",function(I){p.value=Editor.toUnit(Editor.fromUnit(p.value,Editor.pageSizeUnit),z.value);w.value=Editor.toUnit(Editor.fromUnit(w.value, -Editor.pageSizeUnit),z.value);Editor.pageSizeUnit=z.value;P(I,!0);mxEvent.consume(I)});P(null,!0);return{set:function(I){e=I;G(null,null,!0)},get:function(){return e},widthInput:p,heightInput:w}}; +g.style.padding="2px";g.style.width="210px";var m=document.createElement("div");m.style.whiteSpace="nowrap";m.style.marginLeft="4px";m.style.width="210px";m.style.height="24px";h.style.marginRight="6px";m.appendChild(h);b=document.createElement("span");b.style.maxWidth="100px";mxUtils.write(b,mxResources.get("portrait"));m.appendChild(b);d.style.marginLeft="10px";d.style.marginRight="6px";m.appendChild(d);var p=document.createElement("span");p.style.width="100px";mxUtils.write(p,mxResources.get("landscape")); +m.appendChild(p);var k=document.createElement("div");k.style.whiteSpace="nowrap";k.style.marginLeft="4px";k.style.fontSize="12px";k.style.width="210px";k.style.height="24px";var t=document.createElement("input");t.setAttribute("size","7");t.setAttribute("title",mxResources.get("width"));t.style.textAlign="right";k.appendChild(t);mxUtils.write(k," x ");var w=document.createElement("input");w.setAttribute("size","7");w.setAttribute("title",mxResources.get("height"));w.style.textAlign="right";k.appendChild(w); +var z=document.createElement("select");z.style.marginLeft="4px";z.style.maxWidth="78px";z.style.width="78px";for(var B=[{label:mxResources.get("points"),unit:mxConstants.POINTS},{label:mxResources.get("inches"),unit:mxConstants.INCHES},{label:mxResources.get("millimeters"),unit:mxConstants.MILLIMETERS}],D=0;D=L)t.value=Editor.toUnit(e.width,z.value);L=parseFloat(w.value);if(isNaN(L)||0>=L)w.value=Editor.toUnit(e.height,z.value);L=new mxRectangle(0,0,Math.floor(Editor.fromUnit(parseFloat(t.value),z.value)),Math.floor(Editor.fromUnit(parseFloat(w.value),z.value)));U||L.width==e.width&&L.height==e.height||(e=L,null!=f&&f(e))};mxEvent.addListener(b,"click",function(L){h.checked=!0;P(L);mxEvent.consume(L)}); +mxEvent.addListener(p,"click",function(L){d.checked=!0;P(L);mxEvent.consume(L)});mxEvent.addListener(t,"blur",P);mxEvent.addListener(t,"click",P);mxEvent.addListener(w,"blur",P);mxEvent.addListener(w,"click",P);mxEvent.addListener(d,"change",P);mxEvent.addListener(h,"change",P);mxEvent.addListener(g,"change",function(L){P(L,"custom"==g.value);mxEvent.consume(L)});mxEvent.addListener(z,"change",function(L){t.value=Editor.toUnit(Editor.fromUnit(t.value,Editor.pageSizeUnit),z.value);w.value=Editor.toUnit(Editor.fromUnit(w.value, +Editor.pageSizeUnit),z.value);Editor.pageSizeUnit=z.value;P(L,!0);mxEvent.consume(L)});P(null,!0);return{set:function(L){e=L;H(null,null,!0)},get:function(){return e},widthInput:t,heightInput:w}}; PageSetupDialog.getFormats=function(){return[{key:"letter",title:'US-Letter (8,5" x 11")',format:mxConstants.PAGE_FORMAT_LETTER_PORTRAIT},{key:"legal",title:'US-Legal (8,5" x 14")',format:new mxRectangle(0,0,850,1400)},{key:"tabloid",title:'US-Tabloid (11" x 17")',format:new mxRectangle(0,0,1100,1700)},{key:"executive",title:'US-Executive (7" x 10")',format:new mxRectangle(0,0,700,1E3)},{key:"a0",title:"A0 (841 mm x 1189 mm)",format:new mxRectangle(0,0,3300,4681)},{key:"a1",title:"A1 (594 mm x 841 mm)", format:new mxRectangle(0,0,2339,3300)},{key:"a2",title:"A2 (420 mm x 594 mm)",format:new mxRectangle(0,0,1654,2336)},{key:"a3",title:"A3 (297 mm x 420 mm)",format:new mxRectangle(0,0,1169,1654)},{key:"a4",title:"A4 (210 mm x 297 mm)",format:mxConstants.PAGE_FORMAT_A4_PORTRAIT},{key:"a5",title:"A5 (148 mm x 210 mm)",format:new mxRectangle(0,0,583,827)},{key:"a6",title:"A6 (105 mm x 148 mm)",format:new mxRectangle(0,0,413,583)},{key:"a7",title:"A7 (74 mm x 105 mm)",format:new mxRectangle(0,0,291,413)}, {key:"b4",title:"B4 (250 mm x 353 mm)",format:new mxRectangle(0,0,980,1390)},{key:"b5",title:"B5 (176 mm x 250 mm)",format:new mxRectangle(0,0,690,980)},{key:"16-9",title:"16:9 (1600 x 900)",format:new mxRectangle(0,0,900,1600)},{key:"16-10",title:"16:10 (1920 x 1200)",format:new mxRectangle(0,0,1200,1920)},{key:"4-3",title:"4:3 (1600 x 1200)",format:new mxRectangle(0,0,1200,1600)},{key:"custom",title:mxResources.get("custom"),format:null}]}; -var FilenameDialog=function(a,b,e,f,h,d,g,n,q,k,p){q=null!=q?q:!0;var w=document.createElement("div"),z=document.createElement("div");z.style.width="100%";z.style.display="grid";z.style.gap="5px 8px";z.style.gridAutoColumns="auto 1fr";z.style.boxSizing="border-box";z.style.padding="3px";var C=document.createElement("div");C.style.display="inline-flex";C.style.alignItems="center";C.style.justifyContent="flex-end";C.style.minWidth="0";var F=document.createElement("div");F.style.display="inline-block"; -F.style.textOverflow="ellipsis";F.style.whiteSpace="nowrap";F.style.overflow="hidden";F.style.fontSize="10pt";F.style.padding="2px 0";F.setAttribute("title",h||mxResources.get("filename"));mxUtils.write(F,(h||mxResources.get("filename"))+":");C.appendChild(F);z.appendChild(C);var D=document.createElement("input");D.setAttribute("value",b||"");D.style.flexGrow="1";var H=mxUtils.button(e,function(){if(null==d||d(D.value))q&&a.hideDialog(),f(D.value)});H.className="geBtn gePrimaryBtn";this.init=function(){if(null!= -h||null==g)if(null!=p?Editor.selectFilename(D):(D.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?D.select():document.execCommand("selectAll",!1,null)),Graph.fileSupport){var K=z.parentNode;if(null!=K){var G=null;mxEvent.addListener(K,"dragleave",function(P){null!=G&&(G.style.backgroundColor="",G=null);P.stopPropagation();P.preventDefault()});mxEvent.addListener(K,"dragover",mxUtils.bind(this,function(P){null==G&&(!mxClient.IS_IE||10'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(g,n){a.apply(this,arguments);if(null!=this.shiftPreview1){var q=this.view.canvas; -null!=q.ownerSVGElement&&(q=q.ownerSVGElement);var k=this.gridSize*this.view.scale*this.view.gridSteps;k=-Math.round(k-mxUtils.mod(this.view.translate.x*this.view.scale+g,k))+"px "+-Math.round(k-mxUtils.mod(this.view.translate.y*this.view.scale+n,k))+"px";q.style.backgroundPosition=k}};mxGraph.prototype.updatePageBreaks=function(g,n,q){var k=this.view.scale,p=this.view.translate,w=this.pageFormat,z=k*this.pageScale,C=this.view.getBackgroundPageBounds();n=C.width;q=C.height;var F=new mxRectangle(k* -p.x,k*p.y,w.width*z,w.height*z),D=(g=g&&Math.min(F.width,F.height)>this.minPageBreakDist)?Math.ceil(q/F.height)-1:0,H=g?Math.ceil(n/F.width)-1:0,K=C.x+n,G=C.y+q;null==this.horizontalPageBreaks&&0document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):h.panningHandler.usePopupTrigger=!1;h.init(this.diagramContainer);mxClient.IS_SVG&&null!=h.view.getDrawPane()&& -(b=h.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=h.graphHandler){var p=h.graphHandler.start;h.graphHandler.start=function(){null!=f.hoverIcons&&f.hoverIcons.reset();p.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(L){var U=mxUtils.getOffset(this.diagramContainer);0mxUtils.indexOf(this.toolbar.staticElements,L)&&(L.parentNode.removeChild(L),U.push(L));L=ba}L=this.toolbar.fontMenu;ba=this.toolbar.sizeMenu;if(null==G)this.toolbar.createTextToolbar();else{for(var ja=0;ja'};var a=mxGraph.prototype.panGraph;mxGraph.prototype.panGraph=function(g,m){a.apply(this,arguments);if(null!=this.shiftPreview1){var p=this.view.canvas;null!= +p.ownerSVGElement&&(p=p.ownerSVGElement);var k=this.gridSize*this.view.scale*this.view.gridSteps;k=-Math.round(k-mxUtils.mod(this.view.translate.x*this.view.scale+g,k))+"px "+-Math.round(k-mxUtils.mod(this.view.translate.y*this.view.scale+m,k))+"px";p.style.backgroundPosition=k}};mxGraph.prototype.updatePageBreaks=function(g,m,p){var k=this.view.scale,t=this.view.translate,w=this.pageFormat,z=k*this.pageScale,B=this.view.getBackgroundPageBounds();m=B.width;p=B.height;var D=new mxRectangle(k*t.x,k* +t.y,w.width*z,w.height*z),E=(g=g&&Math.min(D.width,D.height)>this.minPageBreakDist)?Math.ceil(p/D.height)-1:0,G=g?Math.ceil(m/D.width)-1:0,I=B.x+m,H=B.y+p;null==this.horizontalPageBreaks&&0').src;Editor.checkmarkImage=Graph.createSvgImage(22,18,'').src;this.selectionStateListener=mxUtils.bind(this,function(M,V){this.clearSelectionState()}); +h.getSelectionModel().addListener(mxEvent.CHANGE,this.selectionStateListener);h.getModel().addListener(mxEvent.CHANGE,this.selectionStateListener);h.addListener(mxEvent.EDITING_STARTED,this.selectionStateListener);h.addListener(mxEvent.EDITING_STOPPED,this.selectionStateListener);h.getView().addListener("unitChanged",this.selectionStateListener);if(this.editor.chromeless&&!this.editor.editable){this.footerHeight=0;h.isEnabled=function(){return!1};h.panningHandler.isForcePanningEvent=function(M){for(var V= +M.getSource();null!=V&&V!=h.container;){if("foreignObject"===V.nodeName||"text"===V.nodeName)return!1;V=V.parentNode}return!mxEvent.isPopupTrigger(M.getEvent())};var g=h.panningHandler.start;h.panningHandler.start=function(){g.apply(this,arguments);mxUtils.clearSelection()}}this.actions=new Actions(this);this.menus=this.createMenus();if(!h.standalone){var m=!1,p=!1;this.setDefaultStyle=function(M){try{h.getModel().isEdge(M)?p=h.pasteEdgeStyle=!1:m=!1;var V=h.getCellStyle(M,!1),ca=[],ia=[],sa;for(sa in V)ca.push(V[sa]), +ia.push(sa);h.getModel().isEdge(M)?h.currentEdgeStyle={}:h.currentVertexStyle={};this.fireEvent(new mxEventObject("styleChanged","keys",ia,"values",ca,"cells",[M],"force",!0));h.getModel().isEdge(M)?p=h.pasteEdgeStyle=!0:m=!0}catch(la){this.handleError(la)}};this.clearDefaultStyle=function(){h.currentEdgeStyle=mxUtils.clone(h.defaultEdgeStyle);h.currentVertexStyle=mxUtils.clone(h.defaultVertexStyle);m=p=h.pasteEdgeStyle=!1;this.fireEvent(new mxEventObject("styleChanged","keys",[],"values",[],"cells", +[]))};h.addListener("cellsInserted",function(M,V){h.pasteCellStyles(h.includeDescendants(V.getProperty("cells")))});h.addListener("textInserted",function(M,V){h.pasteCellStyles(V.getProperty("cells"))});this.createDivs();this.createUi();this.refresh();var k=mxUtils.bind(this,function(M){null==M&&(M=window.event);return h.isEditing()||null!=M&&this.isSelectionAllowed(M)});this.container!=document.body||this.editor.chromeless&&!this.editor.editable||(this.menubarContainer.onselectstart=k,this.menubarContainer.onmousedown= +k,this.toolbarContainer.onselectstart=k,this.toolbarContainer.onmousedown=k,this.diagramContainer.onselectstart=k,this.diagramContainer.onmousedown=k,this.sidebarContainer.onselectstart=k,this.sidebarContainer.onmousedown=k,this.formatContainer.onselectstart=k,this.formatContainer.onmousedown=k,this.footerContainer.onselectstart=k,this.footerContainer.onmousedown=k,null!=this.tabContainer&&(this.tabContainer.onselectstart=k),mxClient.IS_IOS&&(b=function(){var M=null;if(/iP(hone|od|ad)/.test(navigator.platform)){var V= +navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);try{M=[parseInt(V[1],10),parseInt(V[2],10),parseInt(V[3]||0,10)]}catch(ca){}}return M}(),null!=b&&16<=b[0]&&(mxUtils.setPrefixedStyle(this.menubarContainer.style,"userSelect","none"),mxUtils.setPrefixedStyle(this.diagramContainer.style,"userSelect","none"),mxUtils.setPrefixedStyle(this.sidebarContainer.style,"userSelect","none"),mxUtils.setPrefixedStyle(this.formatContainer.style,"userSelect","none"),mxUtils.setPrefixedStyle(this.footerContainer.style, +"userSelect","none"),null!=this.tabContainer&&mxUtils.setPrefixedStyle(this.tabContainer.style,"userSelect","none"))));!this.editor.chromeless||this.editor.editable?(b=function(M){if(null!=M){var V=mxEvent.getSource(M);if("A"==V.nodeName)for(;null!=V;){if("geHint"==V.className)return!0;V=V.parentNode}}return k(M)},mxClient.IS_IE&&("undefined"===typeof document.documentMode||9>document.documentMode)?mxEvent.addListener(this.diagramContainer,"contextmenu",b):this.diagramContainer.oncontextmenu=b):h.panningHandler.usePopupTrigger= +!1;h.init(this.diagramContainer);mxClient.IS_SVG&&null!=h.view.getDrawPane()&&(b=h.view.getDrawPane().ownerSVGElement,null!=b&&(b.style.position="absolute"));this.hoverIcons=this.createHoverIcons();if(null!=h.graphHandler){var t=h.graphHandler.start;h.graphHandler.start=function(){null!=f.hoverIcons&&f.hoverIcons.reset();t.apply(this,arguments)}}mxEvent.addListener(this.diagramContainer,"mousemove",mxUtils.bind(this,function(M){var V=mxUtils.getOffset(this.diagramContainer);0mxUtils.indexOf(this.toolbar.staticElements,M)&&(M.parentNode.removeChild(M),V.push(M));M=ca}M=this.toolbar.fontMenu;ca=this.toolbar.sizeMenu;if(null==H)this.toolbar.createTextToolbar();else{for(var ia= +0;iag.length?35*g.length:140;z.className="geToolbarContainer geSidebarContainer geShapePicker";z.setAttribute("title",mxResources.get("sidebarTooltip"));z.style.left=a+"px";z.style.top=b+"px";z.style.width=h+"px";mxClient.IS_POINTER&&(z.style.touchAction="none");n||mxUtils.setPrefixedStyle(z.style,"transform","translate(-22px,-22px)");null!=w.background&&w.background!=mxConstants.NONE&&(z.style.backgroundColor= -w.background);w.container.appendChild(z);h=mxUtils.bind(this,function(D){var H=document.createElement("a");H.className="geItem";H.style.cssText="position:relative;display:inline-block;position:relative;width:30px;height:30px;cursor:pointer;overflow:hidden;padding:1px";z.appendChild(H);null!=F&&"1"!=urlParams.sketch?this.sidebar.graph.pasteStyle(F,[D]):this.sidebar.graph.pasteCellStyles([D],w.currentVertexStyle,w.currentEdgeStyle);var K=D.geometry;w.model.isEdge(D)&&(K=K.getTerminalPoint(!1),K=new mxRectangle(0, -0,K.x,K.y));null!=K&&H.appendChild(this.sidebar.createVertexTemplateFromCells([D],K.width,K.height,"",!0,!1,null,!1,mxUtils.bind(this,function(G){if(!mxEvent.isShiftDown(G)||null==e&&w.isSelectionEmpty()){var P=w.cloneCell(D);if(null!=f)f(P);else{var I=q([P]);w.model.isEdge(P)?P.geometry.translate(I.x,I.y):(P.geometry.x=I.x,P.geometry.y=I.y);w.model.beginUpdate();try{w.addCell(P),w.model.isVertex(P)&&w.isAutoSizeCell(P)&&w.updateCellSize(P)}finally{w.model.endUpdate()}w.setSelectionCell(P);w.scrollCellToVisible(P); -p&&w.startEditing(P);null!=C.hoverIcons&&C.hoverIcons.update(w.view.getState(P))}}else P=w.getEditableCells(null!=e?[e]:w.getSelectionCells()),w.updateShapes(D,P);null!=d&&d(G);mxEvent.consume(G)}),25,25,null,null,e))});for(k=0;k<(n?Math.min(g.length,4):g.length);k++)h(g[k]);g=z.offsetTop+z.clientHeight-(w.container.scrollTop+w.container.offsetHeight);0g.length?35*g.length:140;z.className="geToolbarContainer geSidebarContainer geShapePicker";z.setAttribute("title",mxResources.get("sidebarTooltip"));z.style.left=Math.round(a)+"px";z.style.top=Math.round(b)+"px";z.style.width=h+"px";mxClient.IS_POINTER&&(z.style.touchAction="none");m||mxUtils.setPrefixedStyle(z.style,"transform","translate(-22px,-22px)");w.container.appendChild(z);h=mxUtils.bind(this,function(E){var G= +document.createElement("a");G.className="geItem";G.style.display="inline-block";G.style.position="relative";G.style.overflow="hidden";G.style.cursor="pointer";G.style.width="30px";G.style.height="30px";G.style.padding="1px";z.appendChild(G);null!=D&&"1"!=urlParams.sketch?this.sidebar.graph.pasteStyle(D,[E]):this.sidebar.graph.pasteCellStyles([E],w.currentVertexStyle,w.currentEdgeStyle);var I=E.geometry;w.model.isEdge(E)&&(I=I.getTerminalPoint(!1),I=new mxRectangle(0,0,I.x,I.y));null!=I&&G.appendChild(this.sidebar.createVertexTemplateFromCells([E], +I.width,I.height,"",!0,!1,null,!1,mxUtils.bind(this,function(H){if(!mxEvent.isShiftDown(H)||null==e&&w.isSelectionEmpty()){var P=w.cloneCell(E);if(null!=f)f(P);else{var L=p([P]);w.model.isEdge(P)?P.geometry.translate(L.x,L.y):(P.geometry.x=L.x,P.geometry.y=L.y);w.model.beginUpdate();try{w.addCell(P),w.model.isVertex(P)&&w.isAutoSizeCell(P)&&w.updateCellSize(P)}finally{w.model.endUpdate()}w.setSelectionCell(P);w.scrollCellToVisible(P);t&&w.startEditing(P);null!=B.hoverIcons&&B.hoverIcons.update(w.view.getState(P))}}else P= +w.getEditableCells(null!=e?[e]:w.getSelectionCells()),w.updateShapes(E,P);null!=d&&d(H);mxEvent.consume(H)}),25,25,null,null,e))});for(k=0;k<(m?Math.min(g.length,4):g.length);k++)h(g[k]);g=z.offsetTop+z.clientHeight-(w.container.scrollTop+w.container.offsetHeight);0=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=ta,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=ta,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale); -this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;if(a.isFastZoomEnabled()){null==na&&""!=sa.getAttribute("filter")&&(na=sa.getAttribute("filter"),sa.removeAttribute("filter"));X=new mxPoint(a.container.scrollLeft,a.container.scrollTop);M=Math.round(Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100*20)/(20*this.view.scale);ta=ea||null==T?a.container.scrollLeft+a.container.clientWidth/2:T.x+a.container.scrollLeft-a.container.offsetLeft; -var Sa=ea||null==T?a.container.scrollTop+a.container.clientHeight/2:T.y+a.container.scrollTop-a.container.offsetTop;sa.style.transformOrigin=ta+"px "+Sa+"px";sa.style.transform="scale("+M+")";ja.style.transformOrigin=ta+"px "+Sa+"px";ja.style.transform="scale("+M+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node?(ta=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(ta.style,"transform-origin",(ea||null==T?a.container.clientWidth/2+a.container.scrollLeft-ta.offsetLeft+ -"px":T.x+a.container.scrollLeft-ta.offsetLeft-a.container.offsetLeft+"px")+" "+(ea||null==T?a.container.clientHeight/2+a.container.scrollTop-ta.offsetTop+"px":T.y+a.container.scrollTop-ta.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(ta.style,"transform","scale("+M+")")):a.view.validateBackgroundStyles(M,ta,Sa);a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset();a.fireEvent(new mxEventObject("zoomPreview", -"factor",M))}pa(a.isFastZoomEnabled()?ra:0)};mxEvent.addGestureListeners(a.container,function(M){null!=O&&window.clearTimeout(O)},null,function(M){1!=a.cumulativeZoomFactor&&pa(0)});mxEvent.addListener(a.container,"scroll",function(M){null==O||a.isMouseDown||1==a.cumulativeZoomFactor||pa(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(M,ea,ra,ta,Sa){a.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!ra&&a.isScrollWheelEvent(M))ra= -a.view.getTranslate(),ta=40/a.view.scale,mxEvent.isShiftDown(M)?a.view.setTranslate(ra.x+(ea?-ta:ta),ra.y):a.view.setTranslate(ra.x,ra.y+(ea?ta:-ta));else if(ra||a.isZoomWheelEvent(M))for(var ma=mxEvent.getSource(M);null!=ma;){if(ma==a.container)return a.tooltipHandler.hideTooltip(),T=null!=ta&&null!=Sa?new mxPoint(ta,Sa):new mxPoint(mxEvent.getClientX(M),mxEvent.getClientY(M)),ca=ra,ra=a.zoomFactor,ta=null,M.ctrlKey&&null!=M.deltaY&&40>Math.abs(M.deltaY)&&Math.round(M.deltaY)!=M.deltaY?ra=1+Math.abs(M.deltaY)/ -20*(ra-1):null!=M.movementY&&"pointermove"==M.type&&(ra=1+Math.max(1,Math.abs(M.movementY))/20*(ra-1),ta=-1),a.lazyZoom(ea,null,ta,ra),mxEvent.consume(M),!1;ma=ma.parentNode}}),a.container);a.panningHandler.zoomGraph=function(M){a.cumulativeZoomFactor=M.scale;a.lazyZoom(0=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale+.05)/this.view.scale:(this.cumulativeZoomFactor*=ua,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale):.15>=this.view.scale*this.cumulativeZoomFactor?this.cumulativeZoomFactor*=(this.view.scale-.05)/this.view.scale:(this.cumulativeZoomFactor/=ua,this.cumulativeZoomFactor=Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100/this.view.scale); +this.cumulativeZoomFactor=Math.max(.05,Math.min(this.view.scale*this.cumulativeZoomFactor,160))/this.view.scale;if(a.isFastZoomEnabled()){null==W&&""!=sa.getAttribute("filter")&&(W=sa.getAttribute("filter"),sa.removeAttribute("filter"));aa=new mxPoint(a.container.scrollLeft,a.container.scrollTop);J=Math.round(Math.round(this.view.scale*this.cumulativeZoomFactor*100)/100*20)/(20*this.view.scale);ua=da||null==O?a.container.scrollLeft+a.container.clientWidth/2:O.x+a.container.scrollLeft-a.container.offsetLeft; +var Qa=da||null==O?a.container.scrollTop+a.container.clientHeight/2:O.y+a.container.scrollTop-a.container.offsetTop;sa.style.transformOrigin=ua+"px "+Qa+"px";sa.style.transform="scale("+J+")";ia.style.transformOrigin=ua+"px "+Qa+"px";ia.style.transform="scale("+J+")";null!=a.view.backgroundPageShape&&null!=a.view.backgroundPageShape.node?(ua=a.view.backgroundPageShape.node,mxUtils.setPrefixedStyle(ua.style,"transform-origin",(da||null==O?a.container.clientWidth/2+a.container.scrollLeft-ua.offsetLeft+ +"px":O.x+a.container.scrollLeft-ua.offsetLeft-a.container.offsetLeft+"px")+" "+(da||null==O?a.container.clientHeight/2+a.container.scrollTop-ua.offsetTop+"px":O.y+a.container.scrollTop-ua.offsetTop-a.container.offsetTop+"px")),mxUtils.setPrefixedStyle(ua.style,"transform","scale("+J+")")):a.view.validateBackgroundStyles(J,ua,Qa);a.view.getDecoratorPane().style.opacity="0";a.view.getOverlayPane().style.opacity="0";null!=e.hoverIcons&&e.hoverIcons.reset();a.fireEvent(new mxEventObject("zoomPreview", +"factor",J))}ka(a.isFastZoomEnabled()?ma:0)};mxEvent.addGestureListeners(a.container,function(J){null!=la&&window.clearTimeout(la)},null,function(J){1!=a.cumulativeZoomFactor&&ka(0)});mxEvent.addListener(a.container,"scroll",function(J){null==la||a.isMouseDown||1==a.cumulativeZoomFactor||ka(0)});mxEvent.addMouseWheelListener(mxUtils.bind(this,function(J,da,ma,ua,Qa){a.fireEvent(new mxEventObject("wheel"));if(null==this.dialogs||0==this.dialogs.length)if(!a.scrollbars&&!ma&&a.isScrollWheelEvent(J))ma= +a.view.getTranslate(),ua=40/a.view.scale,mxEvent.isShiftDown(J)?a.view.setTranslate(ma.x+(da?-ua:ua),ma.y):a.view.setTranslate(ma.x,ma.y+(da?ua:-ua));else if(ma||a.isZoomWheelEvent(J))for(var pa=mxEvent.getSource(J);null!=pa;){if(pa==a.container)return a.tooltipHandler.hideTooltip(),O=null!=ua&&null!=Qa?new mxPoint(ua,Qa):new mxPoint(mxEvent.getClientX(J),mxEvent.getClientY(J)),Z=ma,ma=a.zoomFactor,ua=null,J.ctrlKey&&null!=J.deltaY&&40>Math.abs(J.deltaY)&&Math.round(J.deltaY)!=J.deltaY?ma=1+Math.abs(J.deltaY)/ +20*(ma-1):null!=J.movementY&&"pointermove"==J.type&&(ma=1+Math.max(1,Math.abs(J.movementY))/20*(ma-1),ua=-1),a.lazyZoom(da,null,ua,ma),mxEvent.consume(J),!1;pa=pa.parentNode}}),a.container);a.panningHandler.zoomGraph=function(J){a.cumulativeZoomFactor=J.scale;a.lazyZoom(0'],{type:"text/html"})});navigator.clipboard.write([a])["catch"](f)};EditorUi.prototype.writeHtmlToClipboard=function(a,b){a=new ClipboardItem({"text/plain":new Blob([Editor.convertHtmlToText(a)],{type:"text/plain"}),"text/html":new Blob([a],{type:"text/html"})});navigator.clipboard.write([a])["catch"](b)}; EditorUi.prototype.writeTextToClipboard=function(a,b){navigator.clipboard.writeText(a)["catch"](b)};EditorUi.prototype.extractGraphModelFromHtml=function(a){var b=null;try{var e=a.indexOf("<mxGraphModel ");if(0<=e){var f=a.lastIndexOf("</mxGraphModel>");f>e&&(b=a.substring(e,f+21).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}}catch(h){}return b}; EditorUi.prototype.readGraphModelFromClipboard=function(a){this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(b){null!=b?a(b):this.readGraphModelFromClipboardWithType(mxUtils.bind(this,function(e){if(null!=e){var f=decodeURIComponent(e);this.isCompatibleString(f)&&(e=f)}a(e)}),"text")}),"html")}; -EditorUi.prototype.readGraphModelFromClipboardWithType=function(a,b){navigator.clipboard.read().then(mxUtils.bind(this,function(e){if(null!=e&&0':"")+Graph.sanitizeHtml(a);asHtml=!0;a=b.getElementsByTagName("style");if(null!=a)for(;0this.maxTooltipWidth||f>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/e,this.maxTooltipHeight/f))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==d||d;d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;k=mxUtils.getCurrentStyle(this.tooltip);this.graph2.shapeBackgroundColor=k.backgroundColor;null!=b&&(b=this.graph2.cloneCells(b),this.graph2.pasteCellStyles(q.includeDescendants(b),p?q.currentVertexStyle: -q.defaultVertexStyle,p?q.currentEdgeStyle:q.defaultEdgeStyle,null,q.pasteEdgeStyle),this.graph2.addCells(b));mxClient.NO_FO=d;p=this.graph2.getGraphBounds();n&&0e||p.height>f)?(e=Math.round(100*Math.min(e/p.width,f/p.height))/100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/p.width,this.maxTooltipHeight/p.height))/100),p=this.graph2.getGraphBounds()):(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+e+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin= -"0 0",p.width*=e,p.height*=e)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="");e=p.width+2*this.tooltipBorder+4;f=p.height+2*this.tooltipBorder;this.tooltip.style.overflow="visible";this.tooltip.style.width=e+"px";n=e;this.tooltipTitles&&null!=h&&0e&&(this.tooltip.style.width=n+"px");this.tooltip.style.height=f+"px";h=-Math.round(p.x-this.tooltipBorder)+(n>e?(n-e)/2:0);e=-Math.round(p.y-this.tooltipBorder);g=null!=g?g:this.getTooltipOffset(a,p);a=g.x;g=g.y;mxClient.IS_SVG?0!=h||0!=e?this.graph2.view.canvas.setAttribute("transform","translate("+h+","+e+")"):this.graph2.view.canvas.removeAttribute("transform"): -(this.graph2.view.drawPane.style.left=h+"px",this.graph2.view.drawPane.style.top=e+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=a+"px";this.tooltip.style.top=g+"px";mxUtils.fit(this.tooltip,this.tooltipBorder);this.lastCreated=Date.now()}; +this.graph2.view.scale=!m&&(e>this.maxTooltipWidth||f>this.maxTooltipHeight)?Math.round(100*Math.min(this.maxTooltipWidth/e,this.maxTooltipHeight/f))/100:1;this.tooltip.style.display="block";this.graph2.labelsVisible=null==d||d;d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;null!=b&&(b=this.graph2.cloneCells(b),this.graph2.pasteCellStyles(p.includeDescendants(b),t?p.currentVertexStyle:p.defaultVertexStyle,t?p.currentEdgeStyle:p.defaultEdgeStyle,null,p.pasteEdgeStyle),this.graph2.addCells(b)); +mxClient.NO_FO=d;t=this.graph2.getGraphBounds();m&&0e||t.height>f)?(e=Math.round(100*Math.min(e/t.width,f/t.height))/100,mxClient.NO_FO?(this.graph2.view.setScale(Math.round(100*Math.min(this.maxTooltipWidth/t.width,this.maxTooltipHeight/t.height))/100),t=this.graph2.getGraphBounds()):(this.graph2.view.getDrawPane().ownerSVGElement.style.transform="scale("+e+")",this.graph2.view.getDrawPane().ownerSVGElement.style.transformOrigin="0 0",t.width*=e,t.height*=e)):mxClient.NO_FO||(this.graph2.view.getDrawPane().ownerSVGElement.style.transform= +"");e=t.width+2*this.tooltipBorder+4;f=t.height+2*this.tooltipBorder;this.tooltip.style.overflow="visible";this.tooltip.style.width=e+"px";m=e;this.tooltipTitles&&null!=h&&0e&&(this.tooltip.style.width=m+"px");this.tooltip.style.height=f+"px";h=-Math.round(t.x-this.tooltipBorder)+(m>e?(m-e)/2:0);e=-Math.round(t.y-this.tooltipBorder);g=null!=g?g:this.getTooltipOffset(a,t);a=g.x;g=g.y;mxClient.IS_SVG?0!=h||0!=e?this.graph2.view.canvas.setAttribute("transform","translate("+h+","+e+")"):this.graph2.view.canvas.removeAttribute("transform"):(this.graph2.view.drawPane.style.left= +h+"px",this.graph2.view.drawPane.style.top=e+"px");this.tooltip.style.position="absolute";this.tooltip.style.left=a+"px";this.tooltip.style.top=g+"px";mxUtils.fit(this.tooltip,this.tooltipBorder);this.lastCreated=Date.now()}; Sidebar.prototype.showTooltip=function(a,b,e,f,h,d){if(this.enableTooltips&&this.showTooltips&&this.currentElt!=a){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);var g=mxUtils.bind(this,function(){this.createTooltip(a,b,e,f,h,d)});null!=this.tooltip&&"none"!=this.tooltip.style.display?g():this.thread=window.setTimeout(g,this.tooltipDelay);this.currentElt=a}}; Sidebar.prototype.hideTooltip=function(){null!=this.thread&&(window.clearTimeout(this.thread),this.thread=null);null!=this.tooltip&&(this.tooltip.style.display="none",this.currentElt=null);this.tooltipMouseDown=null};Sidebar.prototype.addDataEntry=function(a,b,e,f,h){null==a&&(a="");null!=f&&(a+=" "+f);return this.addEntry(a,mxUtils.bind(this,function(){return this.createVertexTemplateFromData(h,b,e,f)}))}; Sidebar.prototype.addEntries=function(a){for(var b=0;bmxUtils.indexOf(this.ignoredStyles,f[0])&&b.push(f[0]+"="+f[1])}}return b.join(";")};Sidebar.prototype.addLibForStyle=function(a,b){""!=a&&(null==this.styleToLibs&&(this.styleToLibs={}),null==this.styleToLibs[a]&&(this.styleToLibs[a]=[]),this.styleToLibs[a].push(b))}; Sidebar.prototype.getLibsForStyle=function(a){return null!=this.styleToLibs?this.styleToLibs[a]:null}; -Sidebar.prototype.addEntry=function(a,b){if(null!=this.currentSearchEntryLibrary){var e=this,f=this.createVertexTemplateFromCells;this.createVertexTemplateFromCells=function(n,q,k,p,w){if(null!=n)for(q=0;qHeading

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

',"Textbox",null,null,"text textbox textarea"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;",120,80,"","Ellipse",null,null,"oval ellipse state"),this.createVertexTemplateEntry("whiteSpace=wrap;html=1;aspect=fixed;",80,80,"","Square",null,null,"square"),this.createVertexTemplateEntry("ellipse;whiteSpace=wrap;html=1;aspect=fixed;", @@ -2350,12 +2322,12 @@ g.vertex=!0;g.insert(e.cloneCell(d,"Item 1"));g.insert(e.cloneCell(d,"Item 2")); g.geometry.setTerminalPoint(new mxPoint(0,50),!0);g.geometry.setTerminalPoint(new mxPoint(50,0),!1);g.geometry.points=[new mxPoint(50,50),new mxPoint(0,0)];g.geometry.relative=!0;g.edge=!0;return this.createEdgeTemplateFromCells([g],g.geometry.width,g.geometry.height,"Curve")})),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;startArrow=classic;html=1;",100,100,"","Bidirectional Arrow",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("shape=flexArrow;endArrow=classic;html=1;", 50,50,"","Arrow",null,"line lines connector connectors connection connections arrow arrows directional directed"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;",50,50,"","Dashed Line",null,"line lines connector connectors connection connections arrow arrows dashed undirected no"),this.createEdgeTemplateEntry("endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;",50,50,"","Dotted Line",null,"line lines connector connectors connection connections arrow arrows dotted undirected no"), this.createEdgeTemplateEntry("endArrow=none;html=1;",50,50,"","Line",null,"line lines connector connectors connection connections arrow arrows simple undirected plain blank no"),this.createEdgeTemplateEntry("endArrow=classic;startArrow=classic;html=1;",50,50,"","Bidirectional Connector",null,"line lines connector connectors connection connections arrow arrows bidirectional"),this.createEdgeTemplateEntry("endArrow=classic;html=1;",50,50,"","Directional Connector",null,"line lines connector connectors connection connections arrow arrows directional directed"), -this.createEdgeTemplateEntry("shape=link;html=1;",100,0,"","Link",null,"line lines connector connectors connection connections arrow arrows link"),this.addEntry("line lines connector connectors connection connections arrow arrows edge title",mxUtils.bind(this,function(){var g=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.setTerminalPoint(new mxPoint(100,0),!1);g.geometry.relative=!0;g.edge=!0;var n=new mxCell("Label", -new mxGeometry(0,0,0,0),h+";align=center;verticalAlign=middle;");n.geometry.relative=!0;n.setConnectable(!1);n.vertex=!0;g.insert(n);return this.createEdgeTemplateFromCells([g],100,0,"Connector with Label")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge title multiplicity",mxUtils.bind(this,function(){var g=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.setTerminalPoint(new mxPoint(160, -0),!1);g.geometry.relative=!0;g.edge=!0;var n=new mxCell("Label",new mxGeometry(0,0,0,0),h+";align=center;verticalAlign=middle;");n.geometry.relative=!0;n.setConnectable(!1);n.vertex=!0;g.insert(n);n=new mxCell("Source",new mxGeometry(-1,0,0,0),h+";align=left;verticalAlign=bottom;");n.geometry.relative=!0;n.setConnectable(!1);n.vertex=!0;g.insert(n);return this.createEdgeTemplateFromCells([g],160,0,"Connector with 2 Labels")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge title multiplicity", -mxUtils.bind(this,function(){var g=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.setTerminalPoint(new mxPoint(160,0),!1);g.geometry.relative=!0;g.edge=!0;var n=new mxCell("Label",new mxGeometry(0,0,0,0),h+";align=center;verticalAlign=middle;");n.geometry.relative=!0;n.setConnectable(!1);n.vertex=!0;g.insert(n);n=new mxCell("Source",new mxGeometry(-1,0,0,0),h+";align=left;verticalAlign=bottom;");n.geometry.relative=!0; -n.setConnectable(!1);n.vertex=!0;g.insert(n);n=new mxCell("Target",new mxGeometry(1,0,0,0),h+";align=right;verticalAlign=bottom;");n.geometry.relative=!0;n.setConnectable(!1);n.vertex=!0;g.insert(n);return this.createEdgeTemplateFromCells([g],160,0,"Connector with 3 Labels")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge shape symbol message mail email",mxUtils.bind(this,function(){var g=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;"); -g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.setTerminalPoint(new mxPoint(100,0),!1);g.geometry.relative=!0;g.edge=!0;var n=new mxCell("",new mxGeometry(0,0,20,14),"shape=message;html=1;outlineConnect=0;");n.geometry.relative=!0;n.vertex=!0;n.geometry.offset=new mxPoint(-10,-7);g.insert(n);return this.createEdgeTemplateFromCells([g],100,0,"Connector with Symbol")}))];this.addPaletteFunctions("general",mxResources.get("general"),null!=a?a:!0,b);this.setCurrentSearchEntryLibrary()}; +this.createEdgeTemplateEntry("shape=link;html=1;",100,0,"","Link",null,"line lines connector connectors connection connections arrow arrows link"),this.addEntry("line lines connector connectors connection connections arrow arrows edge title",mxUtils.bind(this,function(){var g=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.setTerminalPoint(new mxPoint(100,0),!1);g.geometry.relative=!0;g.edge=!0;var m=new mxCell("Label", +new mxGeometry(0,0,0,0),h+";align=center;verticalAlign=middle;");m.geometry.relative=!0;m.setConnectable(!1);m.vertex=!0;g.insert(m);return this.createEdgeTemplateFromCells([g],100,0,"Connector with Label")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge title multiplicity",mxUtils.bind(this,function(){var g=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.setTerminalPoint(new mxPoint(160, +0),!1);g.geometry.relative=!0;g.edge=!0;var m=new mxCell("Label",new mxGeometry(0,0,0,0),h+";align=center;verticalAlign=middle;");m.geometry.relative=!0;m.setConnectable(!1);m.vertex=!0;g.insert(m);m=new mxCell("Source",new mxGeometry(-1,0,0,0),h+";align=left;verticalAlign=bottom;");m.geometry.relative=!0;m.setConnectable(!1);m.vertex=!0;g.insert(m);return this.createEdgeTemplateFromCells([g],160,0,"Connector with 2 Labels")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge title multiplicity", +mxUtils.bind(this,function(){var g=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;");g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.setTerminalPoint(new mxPoint(160,0),!1);g.geometry.relative=!0;g.edge=!0;var m=new mxCell("Label",new mxGeometry(0,0,0,0),h+";align=center;verticalAlign=middle;");m.geometry.relative=!0;m.setConnectable(!1);m.vertex=!0;g.insert(m);m=new mxCell("Source",new mxGeometry(-1,0,0,0),h+";align=left;verticalAlign=bottom;");m.geometry.relative=!0; +m.setConnectable(!1);m.vertex=!0;g.insert(m);m=new mxCell("Target",new mxGeometry(1,0,0,0),h+";align=right;verticalAlign=bottom;");m.geometry.relative=!0;m.setConnectable(!1);m.vertex=!0;g.insert(m);return this.createEdgeTemplateFromCells([g],160,0,"Connector with 3 Labels")})),this.addEntry("line lines connector connectors connection connections arrow arrows edge shape symbol message mail email",mxUtils.bind(this,function(){var g=new mxCell("",new mxGeometry(0,0,0,0),"endArrow=classic;html=1;"); +g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.setTerminalPoint(new mxPoint(100,0),!1);g.geometry.relative=!0;g.edge=!0;var m=new mxCell("",new mxGeometry(0,0,20,14),"shape=message;html=1;outlineConnect=0;");m.geometry.relative=!0;m.vertex=!0;m.geometry.offset=new mxPoint(-10,-7);g.insert(m);return this.createEdgeTemplateFromCells([g],100,0,"Connector with Symbol")}))];this.addPaletteFunctions("general",mxResources.get("general"),null!=a?a:!0,b);this.setCurrentSearchEntryLibrary()}; Sidebar.prototype.addMiscPalette=function(a){var b=this;this.setCurrentSearchEntryLibrary("general","misc");var e=[this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;fontSize=24;fontStyle=1;verticalAlign=middle;align=center;",100,40,"Title","Title",null,null,"text heading title"),this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;",100,80,"
  • Value 1
  • Value 2
  • Value 3
", "Unordered List"),this.createVertexTemplateEntry("text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;",100,80,"
  1. Value 1
  2. Value 2
  3. Value 3
","Ordered List"),this.createVertexTemplateEntry("shape=table;startSize=0;container=1;collapsible=0;childLayout=tableLayout;fontSize=11;fillColor=none;strokeColor=none;",60,60,"","Vertical List"),this.addDataEntry("vertical list",60,60,"Vertical List","7VjbbqMwEP0aXldcQrp9hfSyUvel3R9wwwRba2xkJiX063eMnaRNgxR2V1EUIYHkGWYGzznjI0SQ5NXmwbCa/9QFyCC5C5LcaI1uVW1ykDKIQ1EEySKI45DuIL4feBr1T8OaGVB4SkLsEt6YXIPzOEeDnfSOhrPaLpG9WlfWIDP4It6tLyR7qRUyocCQHfW2lKxuRB/tIriQxRPr9Bq3dbZWtqJsXyyy2SshZa6lttWUVu6FRv+GA6ffNxiEzWDvvcs3/gC6AjQdhbSiQO4i5g6ekIMoOX72scbZ5S5zDyQtPJbHcU1G4vqsW2qKayPeLZzSI3eIddOKSjIFj8CKA1emi26X9REwoTgYYbFGXfsICSv0y1eNqCtvGI9CeJTHwuj6FzMlbEOOkFVrobAHLs3oIijz8FsapNRxTna0t+my4QZzrWjHNEK2LLAGW2gOR2N+KuXxX1Eepf9O+ewL5T8QKvJEg9TTxlEw+QxLZKrsTxfHSvqD1HKB8FKzpQ1tSSLcYVM2ek/KENmagFpJO1YLLooC1HG+xs1Ezy6YuzdwJEcHNBH0GZOipJctXL2soQaEKp9c9fRUHpP/zqMvtgd7dDUmqXfFkM7aWhXNl+HY7fOkeUknibgoieg+k34GxZgPKcbwJEyKMUhrevWKcTMpxiUqRhKeTTG+DylGMinGeMW4uXrFuJ0E4gIEYna+T4ooHFKI2aQQ4xXi9toUgsz9zyUX/vHf0x8="), this.addEntry("vertical list",mxUtils.bind(this,function(){var f=new mxCell("Link",new mxGeometry(0,0,60,40),"text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;align=center;verticalAlign=middle;fontColor=#0000EE;fontStyle=4;");f.vertex=!0;this.graph.setLinkForCell(f,"https://www.draw.io");return this.createVertexTemplateFromCells([f],f.geometry.width,f.geometry.height,"Vertical List")})),this.addDataEntry("table",180,120,"Table 1","7VnbcpswEP0aXjtcYsd9NUnTh/Yl6Q8o1trSVEiMWAeTr+8KhGlSe2xwJpMSZvCMdtmVteccwY4IkjTb3VmWi5+GgwqS2yBJrTHYjLJdCkoFcSh5kNwEcRzSL4i/Hbkb1XfDnFnQeE5C3CQ8MbWFxtM4CqyUdxSC5W6I7NG5lgUyiw/y2flCsldGI5MaLNlRbSvF8kLW0U2EkIr/YJXZYjtPay3XlO0ni+Zk+/WARdgdral2+YLuwGSAtqKQUnIUPmLR1B0KkBvRpnkwQlY0js0+t4OIBh6lw4glPRG7NyWVJYyVzw4o5TF5jWJRykwxDd+B8VeupeHVPsua35AaZRzaUguw0qGIJvcRCtboh48G0WTesB6G8CBD3Jr8F7MbaEPWUqn2b7TRjvfcSI01cLMlXQRlGn6ZBTOqOCU76my6XLjF1GhaMYnDTQuswBKKwaTHw0i/egPOr87nnFaMkql7WCHTm3rDCMyU3xulkAgPOVu50JJ2fbN/tIvu2DjGsiGE1srp6UZIzkEfJqqfGGpawd4+QcNuNJSf5CQ/8570+Mk6LHvPxhSVphnSHtpqXvzD+X6dZ8lgNslgsAx2L0kbkSrmkyouVcX+xTwiWVxPfcKH6hOql6S/R9uwmJ4Mp+m6Hn3b8HWSwWAZjLdtiMJJFpfKYox9QxRNjcNHbBwW79g4RD2O5T7vsyE6fQz43z8Mepw2TkL4RM3DdCJ5uS5G0D2Q2X0rasL//pT0Bw=="), @@ -2418,18 +2390,18 @@ g.geometry.setTerminalPoint(new mxPoint(15,90),!1);g.geometry.relative=!0;g.edge g.geometry.setTerminalPoint(new mxPoint(60,100),!1);g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!0);return b.createVertexTemplateFromCells([d,g],120,100,"Activity")}),this.addEntry("uml activity composite state",function(){var d=new mxCell("Composite State",new mxGeometry(0,0,160,60),"swimlane;fontStyle=1;align=center;verticalAlign=middle;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=0;resizeLast=1;container=0;fontColor=#000000;collapsible=0;rounded=1;arcSize=30;strokeColor=#ff0000;fillColor=#ffffc0;swimlaneFillColor=#ffffc0;dropTarget=0;"); d.vertex=!0;var g=new mxCell("Subtitle",new mxGeometry(0,0,200,26),"text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;spacingLeft=4;spacingRight=4;whiteSpace=wrap;overflow=hidden;rotatable=0;fontColor=#000000;");g.vertex=!0;d.insert(g);g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");g.geometry.setTerminalPoint(new mxPoint(80,120),!1);g.geometry.relative=!0;g.edge=!0;d.insertEdge(g, !0);return b.createVertexTemplateFromCells([d,g],160,120,"Composite State")}),this.addEntry("uml activity condition",function(){var d=new mxCell("Condition",new mxGeometry(0,0,80,40),"rhombus;whiteSpace=wrap;html=1;fontColor=#000000;fillColor=#ffffc0;strokeColor=#ff0000;");d.vertex=!0;var g=new mxCell("no",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");g.geometry.setTerminalPoint(new mxPoint(180,20),!1); -g.geometry.relative=!0;g.geometry.x=-1;g.edge=!0;d.insertEdge(g,!0);var n=new mxCell("yes",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;");n.geometry.setTerminalPoint(new mxPoint(40,100),!1);n.geometry.relative=!0;n.geometry.x=-1;n.edge=!0;d.insertEdge(n,!0);return b.createVertexTemplateFromCells([d,g,n],180,100,"Condition")}),this.addEntry("uml activity fork join",function(){var d=new mxCell("",new mxGeometry(0, +g.geometry.relative=!0;g.geometry.x=-1;g.edge=!0;d.insertEdge(g,!0);var m=new mxCell("yes",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;align=left;verticalAlign=top;endArrow=open;endSize=8;strokeColor=#ff0000;");m.geometry.setTerminalPoint(new mxPoint(40,100),!1);m.geometry.relative=!0;m.geometry.x=-1;m.edge=!0;d.insertEdge(m,!0);return b.createVertexTemplateFromCells([d,g,m],180,100,"Condition")}),this.addEntry("uml activity fork join",function(){var d=new mxCell("",new mxGeometry(0, 0,200,10),"shape=line;html=1;strokeWidth=6;strokeColor=#ff0000;");d.vertex=!0;var g=new mxCell("",new mxGeometry(0,0,0,0),"edgeStyle=orthogonalEdgeStyle;html=1;verticalAlign=bottom;endArrow=open;endSize=8;strokeColor=#ff0000;");g.geometry.setTerminalPoint(new mxPoint(100,80),!1);g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!0);return b.createVertexTemplateFromCells([d,g],200,80,"Fork/Join")}),this.createVertexTemplateEntry("ellipse;html=1;shape=endState;fillColor=#000000;strokeColor=#ff0000;", 30,30,"","End",null,null,"uml activity state end"),this.createVertexTemplateEntry('shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};',100,300,":Object","Lifeline",null,null,"uml sequence participant lifeline"),this.createVertexTemplateEntry('shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};participant=umlActor;', 20,300,"","Actor Lifeline",null,null,"uml sequence participant lifeline actor"),this.createVertexTemplateEntry('shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};participant=umlBoundary;',50,300,"","Boundary Lifeline",null,null,"uml sequence participant lifeline boundary"),this.createVertexTemplateEntry('shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};participant=umlEntity;', 40,300,"","Entity Lifeline",null,null,"uml sequence participant lifeline entity"),this.createVertexTemplateEntry('shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;html=1;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};participant=umlControl;',40,300,"","Control Lifeline",null,null,"uml sequence participant lifeline control"),this.createVertexTemplateEntry("shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;", 300,200,"frame","Frame",null,null,"uml sequence frame"),this.createVertexTemplateEntry("shape=umlDestroy;whiteSpace=wrap;html=1;strokeWidth=3;targetShapes=umlLifeline;",30,30,"","Destruction",null,null,"uml sequence destruction destroy"),this.addEntry("uml sequence invoke invocation call activation bar",function(){var d=new mxCell("",new mxGeometry(0,0,10,80),'html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};'); d.vertex=!0;var g=new mxCell("dispatch",new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;startArrow=oval;endArrow=block;startSize=8;curved=0;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=5;");g.geometry.setTerminalPoint(new mxPoint(-70,5),!0);g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!1);return b.createVertexTemplateFromCells([d,g],10,80,"Found Message")}),this.addEntry("uml sequence invoke call delegation synchronous invocation activation bar",function(){var d=new mxCell("",new mxGeometry(0, -0,10,80),'html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};');d.vertex=!0;var g=new mxCell("dispatch",new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=5;");g.geometry.setTerminalPoint(new mxPoint(-70,5),!0);g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!1);var n=new mxCell("return", -new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=-5;");n.geometry.setTerminalPoint(new mxPoint(-70,75),!1);n.geometry.relative=!0;n.edge=!0;d.insertEdge(n,!0);return b.createVertexTemplateFromCells([d,g,n],10,80,"Synchronous Invocation")}),this.addEntry("uml sequence self call recursion delegation activation bar",function(){var d=new mxCell("",new mxGeometry(-5,20,10,40),'html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};'); +0,10,80),'html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};');d.vertex=!0;var g=new mxCell("dispatch",new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=5;");g.geometry.setTerminalPoint(new mxPoint(-70,5),!0);g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!1);var m=new mxCell("return", +new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=0;exitY=1;exitDx=0;exitDy=-5;");m.geometry.setTerminalPoint(new mxPoint(-70,75),!1);m.geometry.relative=!0;m.edge=!0;d.insertEdge(m,!0);return b.createVertexTemplateFromCells([d,g,m],10,80,"Synchronous Invocation")}),this.addEntry("uml sequence self call recursion delegation activation bar",function(){var d=new mxCell("",new mxGeometry(-5,20,10,40),'html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};'); d.vertex=!0;var g=new mxCell("self call",new mxGeometry(0,0,0,0),"html=1;align=left;spacingLeft=2;endArrow=block;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=0;rounded=0;");g.geometry.setTerminalPoint(new mxPoint(0,0),!0);g.geometry.points=[new mxPoint(30,30)];g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!1);return b.createVertexTemplateFromCells([d,g],10,60,"Self Call")}),this.addEntry("uml sequence invoke call delegation callback activation bar",function(){var d=new mxCell("",new mxGeometry(0, -0,10,80),'html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};');d.vertex=!0;var g=new mxCell("callback",new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=5;");g.geometry.setTerminalPoint(new mxPoint(80,5),!0);g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!1);var n=new mxCell("return", -new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=-5;");n.geometry.setTerminalPoint(new mxPoint(80,75),!1);n.geometry.relative=!0;n.edge=!0;d.insertEdge(n,!0);return b.createVertexTemplateFromCells([d,g,n],10,80,"Callback")}),this.createVertexTemplateEntry('html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};', +0,10,80),'html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};');d.vertex=!0;var g=new mxCell("callback",new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=5;");g.geometry.setTerminalPoint(new mxPoint(80,5),!0);g.geometry.relative=!0;g.edge=!0;d.insertEdge(g,!1);var m=new mxCell("return", +new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=-5;");m.geometry.setTerminalPoint(new mxPoint(80,75),!1);m.geometry.relative=!0;m.edge=!0;d.insertEdge(m,!0);return b.createVertexTemplateFromCells([d,g,m],10,80,"Callback")}),this.createVertexTemplateEntry('html=1;points=[[0,0,0,0,5],[0,1,0,0,-5],[1,0,0,0,5],[1,1,0,0,-5]];perimeter=orthogonalPerimeter;outlineConnect=0;targetShapes=umlLifeline;portConstraint=eastwest;newEdgeStyle={"curved":0,"rounded":0};', 10,80,"","Activation Bar",null,null,"uml sequence activation bar"),this.createEdgeTemplateEntry("html=1;verticalAlign=bottom;startArrow=oval;startFill=1;endArrow=block;startSize=8;curved=0;rounded=0;",60,0,"dispatch","Found Message 1",null,"uml sequence message call invoke dispatch"),this.createEdgeTemplateEntry("html=1;verticalAlign=bottom;startArrow=circle;startFill=1;endArrow=open;startSize=6;endSize=8;curved=0;rounded=0;",80,0,"dispatch","Found Message 2",null,"uml sequence message call invoke dispatch"), this.createEdgeTemplateEntry("html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;",80,0,"dispatch","Message",null,"uml sequence message call invoke dispatch"),this.addEntry("uml sequence return message",function(){var d=new mxCell("return",new mxGeometry(0,0,0,0),"html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;");d.geometry.setTerminalPoint(new mxPoint(80,0),!0);d.geometry.setTerminalPoint(new mxPoint(0,0),!1);d.geometry.relative=!0;d.edge=!0;return b.createEdgeTemplateFromCells([d], 80,0,"Return")}),this.addEntry("uml relation",function(){var d=new mxCell("name",new mxGeometry(0,0,0,0),"endArrow=block;endFill=1;html=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=top;");d.geometry.setTerminalPoint(new mxPoint(0,0),!0);d.geometry.setTerminalPoint(new mxPoint(160,0),!1);d.geometry.relative=!0;d.geometry.x=-1;d.edge=!0;var g=new mxCell("1",new mxGeometry(-1,0,0,0),"edgeLabel;resizable=0;html=1;align=left;verticalAlign=bottom;");g.geometry.relative=!0;g.setConnectable(!1); @@ -2441,185 +2413,189 @@ d.geometry.setTerminalPoint(new mxPoint(0,0),!0);d.geometry.setTerminalPoint(new 0,"Use","Dependency",null,"uml dependency use"),this.createEdgeTemplateEntry("endArrow=block;endSize=16;endFill=0;html=1;",160,0,"Extends","Generalization",null,"uml generalization extend"),this.createEdgeTemplateEntry("endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;",160,0,"","Association 2",null,"uml association"),this.createEdgeTemplateEntry("endArrow=open;startArrow=circlePlus;endFill=0;startFill=0;endSize=8;html=1;",160,0,"","Inner Class",null,"uml inner class"),this.createEdgeTemplateEntry("endArrow=open;startArrow=cross;endFill=0;startFill=0;endSize=8;startSize=10;html=1;", 160,0,"","Terminate",null,"uml terminate"),this.createEdgeTemplateEntry("endArrow=block;dashed=1;endFill=0;endSize=12;html=1;",160,0,"","Implementation",null,"uml realization implementation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=0;endSize=24;html=1;",160,0,"","Aggregation 2",null,"uml aggregation"),this.createEdgeTemplateEntry("endArrow=diamondThin;endFill=1;endSize=24;html=1;",160,0,"","Composition 2",null,"uml composition"),this.createEdgeTemplateEntry("endArrow=open;endFill=1;endSize=12;html=1;", 160,0,"","Association 3",null,"uml association")];this.addPaletteFunctions("uml",mxResources.get("uml"),a||!1,h);this.setCurrentSearchEntryLibrary()};Sidebar.prototype.createTitle=function(a){var b=document.createElement("a");b.setAttribute("title",mxResources.get("sidebarTooltip"));b.className="geTitle";var e=document.createElement("span");mxUtils.write(e,a);b.appendChild(e);return b}; -Sidebar.prototype.createThumb=function(a,b,e,f,h,d,g,n,q,k,p,w){this.graph.labelsVisible=null==d||d;d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.shapeBackgroundColor=null!=k?k:Editor.isDarkMode()?"#2a252f":"#f1f3f4";this.graph.view.scaleAndTranslate(null!=w?w:1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();null==w&&(k=Math.floor(100*Math.min((b-2*this.thumbBorder)/a.width,(e-2*this.thumbBorder)/a.height))/100,this.graph.view.scaleAndTranslate(k,(b- -a.width*k)/2/k-a.x,(e-a.height*k)/2/k-a.y));this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(k=this.graph.container.cloneNode(!1),k.innerHTML=this.graph.container.innerHTML):k=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0);this.graph.getModel().clear();this.graph.view.scaleAndTranslate(1,0,0);this.graph.shapeBackgroundColor=Editor.isDarkMode()?"#2a252f":"#f1f3f4";mxClient.NO_FO=d;k.style.position="relative";k.style.overflow= -null!=w?"visible":"hidden";k.style.left=(null!=p?p:this.thumbBorder)+"px";k.style.top=k.style.left;k.style.width=b+"px";k.style.height=e+"px";k.style.visibility="";k.style.minWidth="";k.style.minHeight="";this.disablePointerEvents(k);f.appendChild(k);this.sidebarTitles&&null!=h&&0!=g&&(f.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",b=document.createElement("div"),b.style.color=Editor.isDarkMode()?"#A0A0A0":"#303030",b.style.fontSize=this.sidebarTitleSize+"px",b.style.textAlign="center", -b.style.whiteSpace="nowrap",b.style.overflow="hidden",b.style.textOverflow="ellipsis",mxClient.IS_IE&&(b.style.height=this.sidebarTitleSize+12+"px"),b.style.paddingTop="4px",mxUtils.write(b,h),f.appendChild(b));return a}; +Sidebar.prototype.createThumb=function(a,b,e,f,h,d,g,m,p,k,t,w){this.graph.labelsVisible=null==d||d;d=mxClient.NO_FO;mxClient.NO_FO=Editor.prototype.originalNoForeignObject;this.graph.shapeForegroundColor="light-dark(#000000, #c0c0c0)";this.graph.shapeBackgroundColor=null!=k?k:"light-dark(#f1f3f4, #1b1d1e)";this.graph.view.scaleAndTranslate(null!=w?w:1,0,0);this.graph.addCells(a);a=this.graph.getGraphBounds();null==w&&(k=Math.floor(100*Math.min((b-2*this.thumbBorder)/a.width,(e-2*this.thumbBorder)/ +a.height))/100,this.graph.view.scaleAndTranslate(k,(b-a.width*k)/2/k-a.x,(e-a.height*k)/2/k-a.y));this.graph.dialect!=mxConstants.DIALECT_SVG||mxClient.NO_FO||null==this.graph.view.getCanvas().ownerSVGElement?(k=this.graph.container.cloneNode(!1),k.innerHTML=this.graph.container.innerHTML):k=this.graph.view.getCanvas().ownerSVGElement.cloneNode(!0);this.graph.getModel().clear();this.graph.view.scaleAndTranslate(1,0,0);this.graph.shapeBackgroundColor="#f1f3f4";mxClient.NO_FO=d;k.style.position="relative"; +k.style.overflow=null!=w?"visible":"hidden";k.style.left=(null!=t?t:this.thumbBorder)+"px";k.style.top=k.style.left;k.style.width=b+"px";k.style.height=e+"px";k.style.visibility="";k.style.minWidth="";k.style.minHeight="";this.disablePointerEvents(k);f.appendChild(k);this.sidebarTitles&&null!=h&&0!=g&&(f.style.height=this.thumbHeight+0+this.sidebarTitleSize+8+"px",b=document.createElement("div"),b.style.color=Editor.isDarkMode()?"#A0A0A0":"#303030",b.style.fontSize=this.sidebarTitleSize+"px",b.style.textAlign= +"center",b.style.whiteSpace="nowrap",b.style.overflow="hidden",b.style.textOverflow="ellipsis",mxClient.IS_IE&&(b.style.height=this.sidebarTitleSize+12+"px"),b.style.paddingTop="4px",mxUtils.write(b,h),f.appendChild(b));return a}; Sidebar.prototype.createSection=function(a){return mxUtils.bind(this,function(){var b=document.createElement("div");b.setAttribute("title",a);b.style.textOverflow="ellipsis";b.style.whiteSpace="nowrap";b.style.textAlign="center";b.style.overflow="hidden";b.style.width="100%";b.style.padding="14px 0";mxUtils.write(b,a);return b})}; -Sidebar.prototype.createItem=function(a,b,e,f,h,d,g,n,q,k,p,w,z,C){n=null!=n?n:!0;k=null!=k?k:this.thumbWidth;p=null!=p?p:this.thumbHeight;var F=document.createElement("a");F.className="geItem";F.style.overflow="hidden";var D=2*this.thumbBorder;F.style.width=k+D+"px";F.style.height=p+D+"px";F.style.padding=this.thumbPadding+"px";mxEvent.addListener(F,"click",function(K){mxEvent.consume(K)});var H=new mxRectangle(0,0,h,d);null!=a&&0M&&null!=Ja&&!mxEvent.isShiftDown(Na)&&(mxUtils.getValue(Ja.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(ra,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(Ja.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ja.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ja.style, -mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(ra,mxConstants.STYLE_SHAPE)||1500this.dropTargetDelay&&!this.isDropStyleTargetIgnored(Ja)&&(ma.model.isVertex(Ja.cell)&&null!=w||ma.model.isEdge(Ja.cell)&&ma.model.isEdge(f[0]))){if(ma.isCellEditable(Ja.cell)){I=Ja;var ua=ma.model.isEdge(Ja.cell)?ma.view.getPoint(Ja):new mxPoint(Ja.getCenterX(),Ja.getCenterY());ua=new mxRectangle(ua.x-this.refreshTarget.width/2,ua.y-this.refreshTarget.height/ -2,this.refreshTarget.width,this.refreshTarget.height);U.style.left=Math.floor(ua.x)+"px";U.style.top=Math.floor(ua.y)+"px";null==ba&&(ma.container.appendChild(U),ba=U.parentNode);n(Fa,Ha,ua,U)}}else null==I||!mxUtils.contains(I,Fa,Ha)||1500M&&M>this.dropTargetDelay||ma.model.isEdge(Qa)?Ja:null,null!=G&&ua){La=[ja,sa,S,Y,V,L];for(ua=0;uaJ&&null!=Ja&&!mxEvent.isShiftDown(Ha)&&(mxUtils.getValue(Ja.style,mxConstants.STYLE_SHAPE)!=mxUtils.getValue(ma,mxConstants.STYLE_SHAPE)&&(mxUtils.getValue(Ja.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ja.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE)!=mxConstants.NONE||mxUtils.getValue(Ja.style, +mxConstants.STYLE_GRADIENTCOLOR,mxConstants.NONE)!=mxConstants.NONE)||"image"==mxUtils.getValue(ma,mxConstants.STYLE_SHAPE)||1500this.dropTargetDelay&&!this.isDropStyleTargetIgnored(Ja)&&(pa.model.isVertex(Ja.cell)&&null!=w||pa.model.isEdge(Ja.cell)&&pa.model.isEdge(f[0]))){if(pa.isCellEditable(Ja.cell)){L=Ja;var ta=pa.model.isEdge(Ja.cell)?pa.view.getPoint(Ja):new mxPoint(Ja.getCenterX(),Ja.getCenterY());ta=new mxRectangle(ta.x-this.refreshTarget.width/2,ta.y-this.refreshTarget.height/ +2,this.refreshTarget.width,this.refreshTarget.height);V.style.left=Math.floor(ta.x)+"px";V.style.top=Math.floor(ta.y)+"px";null==ca&&(pa.container.appendChild(V),ca=V.parentNode);m(Ba,Ea,ta,V)}}else null==L||!mxUtils.contains(L,Ba,Ea)||1500J&&J>this.dropTargetDelay||pa.model.isEdge(La)?Ja:null,null!=H&&ta){Ia=[ia,sa,Y,R,T,M];for(ta=0;taq||Math.abs(p.y-mxEvent.getClientY(C))>q))&&null!=this.dragElement&&"none"==this.dragElement.style.display&&(this.dragElement.style.display="",mxUtils.setOpacity(a,100*z));g.apply(this,arguments)};b.mouseUp=function(C){try{mxEvent.isPopupTrigger(C)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||(null!=f&&f(C),mxEvent.isConsumed(C)||w.itemClicked(e,b,C,a)),n.apply(b,arguments),mxUtils.setOpacity(a,100*z),p=null, -w.currentElt=a}catch(F){b.reset(),w.editorUi.handleError(F)}}};Sidebar.prototype.createVertexTemplateEntry=function(a,b,e,f,h,d,g,n){null!=n&&null!=h&&(n+=" "+h);n=null!=n&&0p||Math.abs(t.y-mxEvent.getClientY(B))>p))&&null!=this.dragElement&&"none"==this.dragElement.style.display&&(this.dragElement.style.display="",mxUtils.setOpacity(a,100*z));g.apply(this,arguments)};b.mouseUp=function(B){try{mxEvent.isPopupTrigger(B)||null!=this.currentGraph||null==this.dragElement||"none"!=this.dragElement.style.display||(null!=f&&f(B),mxEvent.isConsumed(B)||w.itemClicked(e,b,B,a)),m.apply(b,arguments),mxUtils.setOpacity(a,100*z),t=null, +w.currentElt=a}catch(D){b.reset(),w.editorUi.handleError(D)}}};Sidebar.prototype.createVertexTemplateEntry=function(a,b,e,f,h,d,g,m){null!=m&&null!=h&&(m+=" "+h);m=null!=m&&0mxUtils.indexOf(h,z)){C=this.getTagsForStencil(w,z);var H=null!=n?n[z]:null;null!=H&&C.push(H);p.push(this.createVertexTemplateEntry("shape="+w+z.toLowerCase()+f,Math.round(F*g),Math.round(D*g),"",z.replace(/_/g," "),null,null,this.filterTags(C.join(" "))))}}), -!0,!0);this.addPaletteFunctions(a,b,!1,p)}else this.addPalette(a,b,!1,mxUtils.bind(this,function(w){null==f&&(f="");null!=d&&d.call(this,w);if(null!=q)for(var z=0;zmxUtils.indexOf(h,F))&&w.appendChild(this.createVertexTemplate("shape="+C+F.toLowerCase()+f,Math.round(H*g),Math.round(K*g),"",F.replace(/_/g," "),!0))}),!0)}))}; +Sidebar.prototype.addImagePalette=function(a,b,e,f,h,d,g){for(var m=[],p=0;pmxUtils.indexOf(h,z)){B=this.getTagsForStencil(w,z);var G=null!=m?m[z]:null;null!=G&&B.push(G);t.push(this.createVertexTemplateEntry("shape="+w+z.toLowerCase()+f,Math.round(D*g),Math.round(E*g),"",z.replace(/_/g," "),null,null,this.filterTags(B.join(" "))))}}), +!0,!0);this.addPaletteFunctions(a,b,!1,t)}else this.addPalette(a,b,!1,mxUtils.bind(this,function(w){null==f&&(f="");null!=d&&d.call(this,w);if(null!=p)for(var z=0;zmxUtils.indexOf(h,D))&&w.appendChild(this.createVertexTemplate("shape="+B+D.toLowerCase()+f,Math.round(G*g),Math.round(I*g),"",D.replace(/_/g," "),!0))}),!0)}))}; Sidebar.prototype.destroy=function(){null!=this.graph&&(null!=this.graph.container&&null!=this.graph.container.parentNode&&this.graph.container.parentNode.removeChild(this.graph.container),this.graph.destroy(),this.graph=null);null!=this.escapeListener&&(this.editorUi.editor.graph.removeListener(this.escapeListener),this.escapeListener=null);null!=this.pointerUpHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerup":"mouseup",this.pointerUpHandler),this.pointerUpHandler=null);null!= this.pointerDownHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerdown":"mousedown",this.pointerDownHandler),this.pointerDownHandler=null);null!=this.pointerMoveHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointermove":"mousemove",this.pointerMoveHandler),this.pointerMoveHandler=null);null!=this.pointerOutHandler&&(mxEvent.removeListener(document,mxClient.IS_POINTER?"pointerout":"mouseout",this.pointerOutHandler),this.pointerOutHandler=null)};(function(){var a=[["nbsp","160"],["shy","173"]],b=mxUtils.parseXml;mxUtils.parseXml=function(f){for(var h=0;hca||Math.abs(g.y-T.getGraphY())>ca){var na=null;mxEvent.isShiftDown(T.getEvent())|| -(na=this.selectionCellsHandler.getHandler(X.cell));if(null!=na&&null!=na.bends&&0W||Math.abs(g.y-aa.getGraphY())>W){var ka=null;mxEvent.isShiftDown(aa.getEvent())|| +(ka=this.selectionCellsHandler.getHandler(Z.cell));if(null!=ka&&null!=ka.bends&&0'+e+""));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)}; -Graph.createSvgDarkModeCss=function(a){a=null!=a?"."+a:"";return"svg"+a+":not(mjx-container > svg) { filter: invert(100%) hue-rotate(180deg); }\nsvg"+a+" foreignObject img,\nsvg"+a+" image:not(svg"+a+" switch image),\nsvg"+a+" svg:not(mjx-container > svg)\n{ filter: invert(100%) hue-rotate(180deg) }"}; -Graph.createSvgDarkModeStyle=function(a,b,e,f){var h=mxUtils.createElementNs(a,mxConstants.NS_SVG,"style");null!=a.setAttributeNS?h.setAttributeNS("type","text/css"):h.setAttribute("type","text/css");var d=Graph.createSvgDarkModeCss(e);"auto"==b&&(d="@media (prefers-color-scheme: dark) {\n"+d+"\n",null!=f&&(d+="svg"+(null!=e?"."+e:"")+" { background-color: "+Graph.invertColor(f)+" !important; }\n"),d+="}");h.appendChild(a.createTextNode(d));return h}; -Graph.invertColor=function(a,b){null==b&&(b=document.createElement("canvas"),b.width=1,b.height=1,b=b.getContext("2d"),b.filter="invert(100%) hue-rotate(180deg)");b.fillStyle=a;b.fillRect(0,0,1,1);a=b.getImageData(0,0,1,1);return"#"+(16777216|a.data[2]|a.data[1]<<8|a.data[0]<<16).toString(16).substring(1)}; +Graph.createSvgImage=function(a,b,e,f,h){e=unescape(encodeURIComponent(Graph.svgDoctype+''+e+""));return new mxImage("data:image/svg+xml;base64,"+(window.btoa?btoa(e):Base64.encode(e,!0)),a,b)}; Graph.getSvgFromDataUri=function(a){return null!=a&&"data:image/svg"==a.substring(0,14)?Graph.xmlDeclaration+"\n"+Graph.svgDoctype+"\n"+decodeURIComponent(escape(atob(a.substring(a.indexOf(",")+1)))):null}; -Graph.createSvgNode=function(a,b,e,f,h){var d=mxUtils.createXmlDocument(),g=null!=d.createElementNS?d.createElementNS(mxConstants.NS_SVG,"svg"):d.createElement("svg");null!=h&&(null!=g.style?g.style.backgroundColor=h:g.setAttribute("style","background-color:"+h));null==d.createElementNS?(g.setAttribute("xmlns",mxConstants.NS_SVG),g.setAttribute("xmlns:xlink",mxConstants.NS_XLINK)):g.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",mxConstants.NS_XLINK);g.setAttribute("version","1.1"); -g.setAttribute("width",e+"px");g.setAttribute("height",f+"px");g.setAttribute("viewBox",a+" "+b+" "+e+" "+f);d.appendChild(g);return g}; -Graph.htmlToPng=function(a,b,e,f,h,d){h=null!=h?h:"";d=null!=d?d:Editor.htmlRasterScale;var g=document.createElement("canvas");g.width=b*d;g.height=e*d;var n=document.createElement("img");n.onload=mxUtils.bind(this,function(){try{var k=g.getContext("2d");k.scale(d,d);k.drawImage(n,0,0);f(g.toDataURL())}catch(p){f(null)}});var q=mxUtils.createXmlDocument();q=null!=q.createElementNS?q.createElementNS(mxConstants.NS_SVG,"svg"):q.createElement("svg");a=(new mxSvgCanvas2D(q)).convertHtml(a);n.onerror= -function(k){f(null)};n.src="data:image/svg+xml,"+encodeURIComponent(''+(""!=h?'":"")+'
'+a+"
")};Graph.zapGremlins=function(a){return mxUtils.zapGremlins(a)}; -Graph.stringToBytes=function(a){for(var b=Array(a.length),e=0;e'+(""!=h?'":"")+'
'+a+"
")}; +Graph.addLightDarkColors=function(a,b,e,f){function h(z,B,D){return null!=f?f(z,B,D):mxUtils.isValidColor(D)?(null==p&&null!=b&&(p={}),null!=p&&(p[B]=z.style.getPropertyValue(B)),D=mxUtils.getLightDarkColor(D,null,null,e),z.style.setProperty(B,D.cssText),!0):!1}for(var d=a.getElementsByTagName("*"),g=!1,m=0;mpageSize){var P=w.startIndex||0;K=H.slice(Math.max(0,P),Math.min(H.length,P+pageSize))}K=f.getOpposites(K,D).concat(K);var I=p.cloneCells(K);for(G=0;GZ.geometry.x?-.8:.5(w.startIndex||0)+pageSize){var Y=p.createVertex(null,null,mxResources.get("nextPage")+" ("+(Math.ceil((w.startIndex||0)/pageSize)+2)+"/"+Math.ceil(H.length/pageSize)+")",0,0,120,30,"fillColor=green;fontColor=white;strokeColor=green;rounded=1;");Y.referenceCell= -F;Y.startIndex=(w.startIndex||0)+pageSize;I.splice(0,0,Y)}for(var V in p.getModel().cells){var L=p.getModel().getCell(V);L!=p.rootCell&&!p.getModel().isAncestor(p.rootCell,L)&&p.getModel().isVertex(L)&&p.removeCells([L])}p.addCells(I);var U=p.getModel().getGeometry(p.rootCell);null!=U&&(U=U.clone(),U.x=z-U.width/2,U.y=C-U.height/3,p.getModel().setGeometry(p.rootCell,U));w=[];for(V in p.getModel().cells)L=p.getModel().getCell(V),L!=p.rootCell&&p.getModel().isVertex(L)&&p.getModel().getParent(L)==p.getDefaultParent()&& -(w.push(L),U=p.getModel().getGeometry(L),null!=U&&(U.x=z-U.width/2,U.y=C-U.height/2));var ba=w.length,ja=2*Math.PI/ba,sa=Math.max(minSize,Math.min(p.container.scrollWidth/2.5-80,p.container.scrollHeight/2.5-80));for(z=0;zpageSize){var P=w.startIndex||0;I=G.slice(Math.max(0,P),Math.min(G.length,P+pageSize))}I=f.getOpposites(I,E).concat(I);var L=t.cloneCells(I);for(H=0;HU.geometry.x?-.8:.5(w.startIndex||0)+pageSize){var R=t.createVertex(null,null,mxResources.get("nextPage")+" ("+(Math.ceil((w.startIndex||0)/pageSize)+2)+"/"+Math.ceil(G.length/pageSize)+")",0,0,120,30,"fillColor=green;fontColor=white;strokeColor=green;rounded=1;");R.referenceCell= +D;R.startIndex=(w.startIndex||0)+pageSize;L.splice(0,0,R)}for(var T in t.getModel().cells){var M=t.getModel().getCell(T);M!=t.rootCell&&!t.getModel().isAncestor(t.rootCell,M)&&t.getModel().isVertex(M)&&t.removeCells([M])}t.addCells(L);var V=t.getModel().getGeometry(t.rootCell);null!=V&&(V=V.clone(),V.x=z-V.width/2,V.y=B-V.height/3,t.getModel().setGeometry(t.rootCell,V));w=[];for(T in t.getModel().cells)M=t.getModel().getCell(T),M!=t.rootCell&&t.getModel().isVertex(M)&&t.getModel().getParent(M)==t.getDefaultParent()&& +(w.push(M),V=t.getModel().getGeometry(M),null!=V&&(V.x=z-V.width/2,V.y=B-V.height/2));var ca=w.length,ia=2*Math.PI/ca,sa=Math.max(minSize,Math.min(t.container.scrollWidth/2.5-80,t.container.scrollHeight/2.5-80));for(z=0;zmxUtils.indexOf(q,p)})),this.updateCellStyles(g,n))};Graph.prototype.copyCellStyles=function(g,n,q,k,p,w,z){var C=!1,F=!1;if(0mxUtils.indexOf(Graph.edgeStyles,I))&&(C=mxUtils.setStyle(C,I,U),"fontFamily"==I&&null==F.fontSource&&(C=mxUtils.setStyle(C,"fontSource",null)),L&&"rounded"==I&&"1"==U&&null==F.curved&&(C=mxUtils.setStyle(C,"curved",null)))}Editor.simpleLabels&&(C=mxUtils.setStyle(mxUtils.setStyle(C,"html",null),"whiteSpace",null));this.model.setStyle(z,C)}}finally{this.model.endUpdate()}return g};Graph.prototype.updateCellStyles= -function(g,n){this.model.beginUpdate();try{for(var q=0;qmxUtils.indexOf(p,t)})),this.updateCellStyles(g,m))};Graph.prototype.copyCellStyles=function(g,m,p,k,t,w,z){var B=!1,D=!1;if(0mxUtils.indexOf(Graph.edgeStyles,L))&&(B=mxUtils.setStyle(B,L,V),"fontFamily"==L&&null==D.fontSource&&(B=mxUtils.setStyle(B,"fontSource",null)),M&&"rounded"==L&&"1"==V&&null==D.curved&&(B=mxUtils.setStyle(B,"curved",null)))}Editor.simpleLabels&&(B=mxUtils.setStyle(mxUtils.setStyle(B,"html",null),"whiteSpace",null));this.model.setStyle(z,B)}}finally{this.model.endUpdate()}return g};Graph.prototype.updateCellStyles= +function(g,m){this.model.beginUpdate();try{for(var p=0;pz?"a":"p",tt:12>z?"am":"pm",T:12>z?"A":"P",TT:12>z?"AM":"PM",Z:e?"UTC":(String(a).match(h)||[""]).pop().replace(d,""),o:(0h&&"%"==b.charAt(match.index-1))g=d.substring(1);else{var n=d.substring(1,d.length-1);if("id"==n)g=a.id;else if("width"==n&&this.model.isVertex(a)){var q=this.getCellGeometry(a);null!=q&&(g=q.width)}else if("height"==n&&this.model.isVertex(a))q=this.getCellGeometry(a),null!=q&&(g=q.height);else if("length"== -n){for(q=a;null!=q&&!this.model.isEdge(q);)q=this.model.getParent(q);q=this.view.getState(q);null!=q&&(g=Math.round(q.length/this.view.scale))}else if(0>n.indexOf("{"))for(q=a;null==g&&null!=q;)null!=q.value&&"object"==typeof q.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(g=q.getAttribute(n+"_"+Graph.diagramLanguage)),null==g&&(g=q.hasAttribute(n)?null!=q.getAttribute(n)?q.getAttribute(n):"":null)),q=this.model.getParent(q);null==g&&(g=this.getGlobalVariable(n));null==g&&null!=e&& -(g=e[n])}f.push(b.substring(h,match.index)+(null!=g?g:d));h=match.index+d.length}}f.push(b.substring(h))}return f.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0z?"a":"p",tt:12>z?"am":"pm",T:12>z?"A":"P",TT:12>z?"AM":"PM",Z:e?"UTC":(String(a).match(h)||[""]).pop().replace(d,""),o:(0h&&"%"==b.charAt(match.index-1))g=d.substring(1);else{var m=d.substring(1,d.length-1);if("id"==m)g=a.id;else if("width"==m&&this.model.isVertex(a)){var p=this.getCellGeometry(a);null!=p&&(g=p.width)}else if("height"==m&&this.model.isVertex(a))p=this.getCellGeometry(a),null!=p&&(g=p.height);else if("length"== +m){for(p=a;null!=p&&!this.model.isEdge(p);)p=this.model.getParent(p);p=this.view.getState(p);null!=p&&(g=Math.round(p.length/this.view.scale))}else if(0>m.indexOf("{"))for(p=a;null==g&&null!=p;)null!=p.value&&"object"==typeof p.value&&(Graph.translateDiagram&&null!=Graph.diagramLanguage&&(g=p.getAttribute(m+"_"+Graph.diagramLanguage)),null==g&&(g=p.hasAttribute(m)?null!=p.getAttribute(m)?p.getAttribute(m):"":null)),p=this.model.getParent(p);null==g&&(g=this.getGlobalVariable(m));null==g&&null!=e&& +(g=e[m])}f.push(b.substring(h,match.index)+(null!=g?g:d));h=match.index+d.length}}f.push(b.substring(h))}return f.join("")};Graph.prototype.restoreSelection=function(a){if(null!=a&&0n[0].indexOf("=")&&(n=n.slice(1));this.model.setStyle(b[d],n.join(";"))}this.setCellStyles(mxConstants.STYLE_PERIMETER,null,[b[d]]);this.setCellStyles("points",null,[b[d]]);this.pasteStyle(h,[b[d]],null,!0)}else h=this.copyStyle(b[d]),this.model.setStyle(b[d],f),this.pasteStyle(h,[b[d]]);"1"==mxUtils.getValue(this.getCellStyle(b[d],!1),"composite","0")&&this.removeChildCells(b[d])}}finally{this.model.endUpdate()}}; +this.model.isEdge(a)&&this.model.isEdge(b[d]))if(e){var g=this.model.getStyle(b[d]);if(null!=g){var m=g.split(";");0m[0].indexOf("=")&&(m=m.slice(1));this.model.setStyle(b[d],m.join(";"))}this.setCellStyles(mxConstants.STYLE_PERIMETER,null,[b[d]]);this.setCellStyles("points",null,[b[d]]);this.pasteStyle(h,[b[d]],null,!0)}else h=this.copyStyle(b[d]),this.model.setStyle(b[d],f),this.pasteStyle(h,[b[d]]);"1"==mxUtils.getValue(this.getCellStyle(b[d],!1),"composite","0")&&this.removeChildCells(b[d])}}finally{this.model.endUpdate()}}; Graph.prototype.selectCellsForConnectVertex=function(a,b,e){2==a.length&&this.model.isVertex(a[1])?(this.setSelectionCell(a[1]),this.scrollCellToVisible(a[1]),null!=e&&(mxEvent.isTouchEvent(b)?e.update(e.getState(this.view.getState(a[1]))):e.reset())):this.setSelectionCells(a)};Graph.prototype.isCloneConnectSource=function(a){var b=null;null!=this.layoutManager&&(b=this.layoutManager.getLayout(this.model.getParent(a)));return this.isTableRow(a)||this.isTableCell(a)||null!=b&&b.constructor==mxStackLayout}; Graph.prototype.insertEdgeBeforeCell=function(a,b){for(var e=b;null!=e.parent&&null!=e.geometry&&e.geometry.relative&&e.parent!=a.parent;)e=this.model.getParent(e);null!=e&&null!=e.parent&&e.parent==a.parent&&(b=e.parent.getIndex(e),this.model.add(e.parent,a,b))}; -Graph.prototype.connectVertex=function(a,b,e,f,h,d,g,n){d=d?d:!1;if(a.geometry.relative&&this.model.isEdge(a.parent))return[];for(;a.geometry.relative&&this.model.isVertex(a.parent);)a=a.parent;var q=this.isCloneConnectSource(a),k=q?a:this.getCompositeParent(a),p=a.geometry.relative&&null!=a.parent.geometry?new mxPoint(a.parent.geometry.width*a.geometry.x,a.parent.geometry.height*a.geometry.y):new mxPoint(k.geometry.x,k.geometry.y);b==mxConstants.DIRECTION_NORTH?(p.x+=k.geometry.width/2,p.y-=e):b== -mxConstants.DIRECTION_SOUTH?(p.x+=k.geometry.width/2,p.y+=k.geometry.height+e):(p.x=b==mxConstants.DIRECTION_WEST?p.x-e:p.x+(k.geometry.width+e),p.y+=k.geometry.height/2);var w=this.view.getState(this.model.getParent(a));e=this.view.scale;var z=this.view.translate;k=z.x*e;z=z.y*e;null!=w&&this.model.isVertex(w.cell)&&(k=w.x,z=w.y);this.model.isVertex(a.parent)&&a.geometry.relative&&(p.x+=a.parent.geometry.x,p.y+=a.parent.geometry.y);d=d?null:(new mxRectangle(k+p.x*e,z+p.y*e)).grow(40*e);d=null!=d? -this.getCells(0,0,0,0,null,null,d,null,!0):null;w=this.view.getState(a);var C=null,F=null;if(null!=d){d=d.reverse();for(var D=0;DmxUtils.indexOf(e,a[h].nodeName))&&0g.name?1:0});for(h= 0;h"+mxUtils.htmlEntities(f[h].name)+": ":"")+mxUtils.htmlEntities(f[h].value)+"\n");0'+b+""))}return b}; Graph.prototype.addFlowAnimationToNode=function(a,b,e,f){if(null!=a&&null!=f){var h=a.getAttribute("stroke-dasharray");if(""==h||null==h){var d=String(mxUtils.getValue(b,mxConstants.STYLE_DASH_PATTERN,"8")).split(" ");h=1==mxUtils.getValue(b,mxConstants.STYLE_FIX_DASH,!1)||null==b.dashPattern?1:mxUtils.getNumber(b,mxConstants.STYLE_STROKEWIDTH,1);if(0/g,"\n"));h=Editor.convertHtmlToText(h);this.cellLabelChanged(a,h);f=!0}b&&(this.setCellStyles("fontSource",null,[a]),this.setCellStyles(mxConstants.STYLE_FONTFAMILY,null,[a]),this.setCellStyles(mxConstants.STYLE_FONTSIZE, -null,[a]),this.setCellStyles(mxConstants.STYLE_FONTSTYLE,null,[a]),this.setCellStyles(mxConstants.STYLE_FONTCOLOR,null,[a]),this.setCellStyles(mxConstants.STYLE_LABEL_BORDERCOLOR,null,[a]),this.setCellStyles(mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null,[a]))}finally{this.getModel().endUpdate()}return f};Graph.prototype.createParent=function(a,b,e,f,h){a=this.cloneCell(a);for(var d=0;dD||Math.abs(ba.y-G.y)>D)&&(Math.abs(ba.x-K.x)>D||Math.abs(ba.y-K.y)>D)&&(null==V||mxUtils.ptLineDist(G.x, -G.y,K.x,K.y,V.x,V.y)>D||mxUtils.ptLineDist(G.x,G.y,K.x,K.y,U.x,U.y)>D)&&(null==I||mxUtils.ptLineDist(G.x,G.y,K.x,K.y,I.x,I.y)>D||mxUtils.ptLineDist(G.x,G.y,K.x,K.y,L.x,L.y)>D)){I=ba.x-G.x;V=ba.y-G.y;ba={distSq:I*I+V*V,x:ba.x,y:ba.y};for(I=0;Iba.distSq){P.splice(I,0,ba);ba=null;break}null==ba||0!=P.length&&P[P.length-1].x===ba.x&&P[P.length-1].y===ba.y||P.push(ba)}V=U}}}for(S=0;SF*F&&0F*F&&(V=new mxPoint(Y.x-I.x,Y.y-I.y),S=new mxPoint(Y.x+I.x,Y.y+I.y),P.push(V),this.addPoints(p,P,z,C,!1,null,H),P=0>Math.round(I.x)||0==Math.round(I.x)&&0>=Math.round(I.y)?1:-1,H=!1,"sharp"==D?(p.lineTo(V.x-I.y*P,V.y+I.x*P),p.lineTo(S.x-I.y*P,S.y+I.x*P),p.lineTo(S.x,S.y)):"line"==D?(p.moveTo(V.x+I.y*P,V.y-I.x*P),p.lineTo(V.x-I.y*P,V.y+I.x*P),p.moveTo(S.x-I.y*P,S.y+I.x*P),p.lineTo(S.x+I.y*P,S.y-I.x*P),p.moveTo(S.x,S.y)):"arc"==D?(P*=1.3,p.curveTo(V.x- -I.y*P,V.y+I.x*P,S.x-I.y*P,S.y+I.x*P,S.x,S.y)):(p.moveTo(S.x,S.y),H=!0),P=[S],V=!0))}else I=null;V||(P.push(Y),K=Y)}this.addPoints(p,P,z,C,!1,null,H);p.stroke()}};var g=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(p,w,z,C){return null!=w&&"centerPerimeter"==w.style[mxConstants.STYLE_PERIMETER]?new mxPoint(w.getCenterX(),w.getCenterY()):g.apply(this,arguments)};var n=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint= -function(p,w,z,C){if(null==w||null==p||"1"!=w.style.snapToPoint&&"1"!=p.style.snapToPoint)n.apply(this,arguments);else{w=this.getTerminalPort(p,w,C);var F=this.getNextPoint(p,z,C),D=this.graph.isOrthogonal(p),H=mxUtils.toRadians(Number(w.style[mxConstants.STYLE_ROTATION]||"0")),K=new mxPoint(w.getCenterX(),w.getCenterY());if(0!=H){var G=Math.cos(-H),P=Math.sin(-H);F=mxUtils.getRotatedPoint(F,G,P,K)}G=parseFloat(p.style[mxConstants.STYLE_PERIMETER_SPACING]||0);G+=parseFloat(p.style[C?mxConstants.STYLE_SOURCE_PERIMETER_SPACING: -mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);F=this.getPerimeterPoint(w,F,0==H&&D,G);0!=H&&(G=Math.cos(H),P=Math.sin(H),F=mxUtils.getRotatedPoint(F,G,P,K));p.setAbsoluteTerminalPoint(this.snapToAnchorPoint(p,w,z,C,F),C)}};mxGraphView.prototype.snapToAnchorPoint=function(p,w,z,C,F){if(null!=w&&null!=p){p=this.graph.getAllConnectionConstraints(w);C=z=null;if(null!=p)for(var D=0;DG||Math.abs(ia.y-P.y)>G)&&(Math.abs(ia.x-H.x)>G||Math.abs(ia.y-H.y)>G)&&(null==M||mxUtils.ptLineDist(P.x,P.y,H.x,H.y,M.x,M.y)>G||mxUtils.ptLineDist(P.x,P.y,H.x,H.y,ca.x,ca.y)>G)&&(null==U||mxUtils.ptLineDist(P.x,P.y,H.x,H.y,U.x,U.y)>G||mxUtils.ptLineDist(P.x,P.y,H.x,H.y,V.x,V.y)>G)){U=ia.x-P.x;M=ia.y-P.y;ia={distSq:U*U+M*M,x:ia.x,y:ia.y};for(U=0;Uia.distSq){L.splice(U, +0,ia);ia=null;break}null==ia||0!=L.length&&L[L.length-1].x===ia.x&&L[L.length-1].y===ia.y||L.push(ia)}M=ca}}}for(R=0;RE*E&&0E*E&&(M=new mxPoint(T.x-U.x,T.y-U.y),R=new mxPoint(T.x+U.x,T.y+U.y),L.push(M),this.addPoints(w,L,B,D,!1,null,I),L=0>Math.round(U.x)||0==Math.round(U.x)&&0>=Math.round(U.y)?1:-1,I=!1,"sharp"==G?(w.lineTo(M.x-U.y*L,M.y+U.x*L),w.lineTo(R.x-U.y*L,R.y+ +U.x*L),w.lineTo(R.x,R.y)):"line"==G?(w.moveTo(M.x+U.y*L,M.y-U.x*L),w.lineTo(M.x-U.y*L,M.y+U.x*L),w.moveTo(R.x-U.y*L,R.y+U.x*L),w.lineTo(R.x+U.y*L,R.y-U.x*L),w.moveTo(R.x,R.y)):"arc"==G?(L*=1.3,w.curveTo(M.x-U.y*L,M.y+U.x*L,R.x-U.y*L,R.y+U.x*L,R.x,R.y)):(w.moveTo(R.x,R.y),I=!0),L=[R],M=!0))}else U=null;M||(L.push(T),H=T)}this.addPoints(w,L,B,D,!1,null,I);w.stroke()}};var m=mxGraphView.prototype.getFixedTerminalPoint;mxGraphView.prototype.getFixedTerminalPoint=function(w,z,B,D){return null!=z&&"centerPerimeter"== +z.style[mxConstants.STYLE_PERIMETER]?new mxPoint(z.getCenterX(),z.getCenterY()):m.apply(this,arguments)};var p=mxGraphView.prototype.updateFloatingTerminalPoint;mxGraphView.prototype.updateFloatingTerminalPoint=function(w,z,B,D){if(null==z||null==w||"1"!=z.style.snapToPoint&&"1"!=w.style.snapToPoint)p.apply(this,arguments);else{z=this.getTerminalPort(w,z,D);var E=this.getNextPoint(w,B,D),G=this.graph.isOrthogonal(w),I=mxUtils.toRadians(Number(z.style[mxConstants.STYLE_ROTATION]||"0")),H=new mxPoint(z.getCenterX(), +z.getCenterY());if(0!=I){var P=Math.cos(-I),L=Math.sin(-I);E=mxUtils.getRotatedPoint(E,P,L,H)}P=parseFloat(w.style[mxConstants.STYLE_PERIMETER_SPACING]||0);P+=parseFloat(w.style[D?mxConstants.STYLE_SOURCE_PERIMETER_SPACING:mxConstants.STYLE_TARGET_PERIMETER_SPACING]||0);E=this.getPerimeterPoint(z,E,0==I&&G,P);0!=I&&(P=Math.cos(I),L=Math.sin(I),E=mxUtils.getRotatedPoint(E,P,L,H));w.setAbsoluteTerminalPoint(this.snapToAnchorPoint(w,z,B,D,E),D)}};mxGraphView.prototype.snapToAnchorPoint=function(w,z, +B,D,E){if(null!=z&&null!=w){w=this.graph.getAllConnectionConstraints(z);D=B=null;if(null!=w)for(var G=0;G=d.getStatus()&&eval.call(window,d.getText())}}catch(g){null!=window.console&&console.log("error in getStencil:",a,e,b,h,g)}}mxStencilRegistry.packages[e]=1}}else e=e.replace("_-_","_"),mxStencilRegistry.loadStencilSet(STENCIL_PATH+"/"+e+".xml",null);b=mxStencilRegistry.stencils[a]}}return b}; mxStencilRegistry.getBasenameForStencil=function(a){var b=null;if(null!=a&&"string"===typeof a&&(a=a.split("."),0=e.getStatus()?e.getXml():null)}),mxUtils.bind(this,function(e){b(null)}));else return mxUtils.load(a).getXml()};mxStencilRegistry.parseStencilSets=function(a){for(var b=0;b').src;mxWindow.prototype.minimizeImage=Graph.createSvgImage(14,10,'').src;mxWindow.prototype.normalizeImage=Graph.createSvgImage(14,10,'').src;mxWindow.prototype.resizeImage=Graph.createSvgImage(10,10,'').src; mxEdgeHandler.prototype.snapToTerminals=!0;mxGraphHandler.prototype.guidesEnabled=!0;mxGraphHandler.prototype.removeEmptyParents=!0;mxRubberband.prototype.fadeOut=!0;mxGuide.prototype.isEnabledForEvent=function(u){return!mxEvent.isAltDown(u)||mxEvent.isShiftDown(u)};var e=mxGraphLayout.prototype.isVertexIgnored;mxGraphLayout.prototype.isVertexIgnored=function(u){return e.apply(this,arguments)||this.graph.isTableRow(u)||this.graph.isTableCell(u)};var f=mxGraphLayout.prototype.isEdgeIgnored;mxGraphLayout.prototype.isEdgeIgnored= function(u){return f.apply(this,arguments)||this.graph.isEdgeIgnored(u)};var h=mxConnectionHandler.prototype.isCreateTarget;mxConnectionHandler.prototype.isCreateTarget=function(u){return this.graph.isCloneEvent(u)!=h.apply(this,arguments)};mxConstraintHandler.prototype.createHighlightShape=function(){var u=new mxEllipse(null,this.highlightColor,this.highlightColor,0);u.opacity=mxConstants.HIGHLIGHT_OPACITY;return u};mxConnectionHandler.prototype.livePreview=!0;mxConnectionHandler.prototype.cursor= -"crosshair";mxConnectionHandler.prototype.createEdgeState=function(u){u=this.graph.createCurrentEdgeStyle();u=this.graph.createEdge(null,null,null,null,null,u);u=new mxCellState(this.graph.view,u,this.graph.getCellStyle(u));for(var A in this.graph.currentEdgeStyle)u.style[A]=this.graph.currentEdgeStyle[A];if(null!=this.previous){var B=this.previous.style.newEdgeStyle;if(null!=B)try{var E=JSON.parse(B);for(A in E)u.style[A]=E[A]}catch(N){}}u.style=this.graph.postProcessCellStyle(u.cell,u.style);return u}; -var d=mxConnectionHandler.prototype.createShape;mxConnectionHandler.prototype.createShape=function(){var u=d.apply(this,arguments);u.isDashed="1"==this.graph.currentEdgeStyle[mxConstants.STYLE_DASHED];return u};mxConnectionHandler.prototype.updatePreview=function(u){};var g=mxConnectionHandler.prototype.createMarker;mxConnectionHandler.prototype.createMarker=function(){var u=g.apply(this,arguments),A=u.getCell;u.getCell=mxUtils.bind(this,function(B){var E=A.apply(this,arguments);this.error=null;return E}); -return u};Graph.prototype.defaultVertexStyle={};Graph.prototype.defaultEdgeStyle={edgeStyle:"orthogonalEdgeStyle",rounded:"0",jettySize:"auto",orthogonalLoop:"1"};Graph.prototype.createCurrentEdgeStyle=function(){for(var u="edgeStyle="+(this.currentEdgeStyle.edgeStyle||"none")+";",A="shape curved rounded comic sketch fillWeight hachureGap hachureAngle jiggle disableMultiStroke disableMultiStrokeFill fillStyle curveFitting simplification comicStyle jumpStyle jumpSize".split(" "),B=0;B=ia.x&&this.model.remove(ya[A]);var xa=this.model.getTerminal(B,!1); -if(null!=xa){var Da=this.getCurrentCellStyle(xa);null!=Da&&"1"==Da.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[u]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[u]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[B]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[B]))}}finally{this.model.endUpdate()}return B};var w=Graph.prototype.selectCell;Graph.prototype.selectCell=function(u,A,B){if(A||B)w.apply(this,arguments);else{var E=this.getSelectionCell(),N=null,Q=[],W=mxUtils.bind(this, -function(ha){if(null!=this.view.getState(ha)&&(this.model.isVertex(ha)||this.model.isEdge(ha)))if(Q.push(ha),ha==E)N=Q.length-1;else if(u&&null==E&&0N||!u&&0Aa)for(va=0;va>Aa;va--)this.model.remove(Oa[Oa.length+va-1]);Oa=this.model.getChildCells(u[fa],!0);for(va=0;vamxUtils.indexOf(u,Q)&&0>mxUtils.indexOf(B,Q)&&B.push(Q):this.labelChanged(u[E],"")}else{if(this.isTableRow(u[E])&&(Q=this.model.getParent(u[E]),0>mxUtils.indexOf(u,Q)&&0>mxUtils.indexOf(B,Q))){for(var W=this.model.getChildCells(Q,!0),ha=0,fa=0;famxUtils.indexOf(u,Q))return null}Q=D.apply(this,arguments);var W=!0;for(N=0;N=ja.x&&this.model.remove(wa[A]);var Na=this.model.getTerminal(C,!1); +if(null!=Na){var za=this.getCurrentCellStyle(Na);null!=za&&"1"==za.snapToPoint&&(this.setCellStyles(mxConstants.STYLE_EXIT_X,null,[u]),this.setCellStyles(mxConstants.STYLE_EXIT_Y,null,[u]),this.setCellStyles(mxConstants.STYLE_ENTRY_X,null,[C]),this.setCellStyles(mxConstants.STYLE_ENTRY_Y,null,[C]))}}finally{this.model.endUpdate()}return C};var w=Graph.prototype.selectCell;Graph.prototype.selectCell=function(u,A,C){if(A||C)w.apply(this,arguments);else{var F=this.getSelectionCell(),N=null,S=[],X=mxUtils.bind(this, +function(ha){if(null!=this.view.getState(ha)&&(this.model.isVertex(ha)||this.model.isEdge(ha)))if(S.push(ha),ha==F)N=S.length-1;else if(u&&null==F&&0N||!u&&0va)for(xa=0;xa>va;xa--)this.model.remove(Aa[Aa.length+xa-1]);Aa=this.model.getChildCells(u[fa],!0);for(xa=0;xamxUtils.indexOf(u,S)&&0>mxUtils.indexOf(C,S)&&C.push(S):this.labelChanged(u[F],"")}else{if(this.isTableRow(u[F])&&(S=this.model.getParent(u[F]),0>mxUtils.indexOf(u,S)&&0>mxUtils.indexOf(C,S))){for(var X=this.model.getChildCells(S,!0),ha=0,fa=0;famxUtils.indexOf(u,S))return null}S=E.apply(this,arguments);var X=!0;for(N=0;NQ||ia>Q)&&this.clear());else{for(fa=ia.getSource();null!=fa&&"a"!=fa.nodeName.toLowerCase();)fa=fa.parentNode;null!=fa?this.clear():(null!=W.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&W.tooltipHandler.reset(ia,!0,this.currentState),(null==this.currentState||ia.getState()!= -this.currentState&&null!=ia.sourceState||!W.intersects(this.currentState,ia.getGraphX(),ia.getGraphY()))&&this.updateCurrentState(ia))}},mouseUp:function(fa,ia){var ya=ia.getSource();for(fa=ia.getEvent();null!=ya&&"a"!=ya.nodeName.toLowerCase();)ya=ya.parentNode;null==ya&&Math.abs(this.scrollLeft-W.container.scrollLeft)J&&v++;x++}r.length<$a.length&&1<$a.length-r.length&&($a=mxUtils.trim(r.join(""))+"...");return $a}catch(y){return qb.apply(this,arguments)}else return qb.apply(this,arguments)};null!=Ka&&null!=Ka.width&&null!=Ka.height&&(u=Xa/A,Da=new mxRectangle((Ka.x+Wa.x)*u,(Ka.y+Wa.y)*u,Ka.width* -u,Ka.height*u),mxUtils.intersects(Ta,Da)&&eb.image(Ka.x+Wa.x,Ka.y+Wa.y,Ka.width,Ka.height,Ka.src,!0));eb.scale(xa);eb.textEnabled=W;ha=null!=ha?ha:this.createSvgImageExport();var tb=ha.getLinkForCellState;ha.getLinkForCellState=function(Ua,fb){var Ra=Ua.view.graph.getAbsoluteUrl(tb.apply(this,arguments));return null==Ra||Ua.view.graph.isCustomLink(Ra)?null:Ra};ha.getLinkTargetForCellState=function(Ua,fb){return Ua.view.graph.getLinkTargetForCell(Ua.cell)};var ub=ha.drawCellState,nb=null,rb=mxUtils.bind(this, -function(){if(null==nb){nb="ge-flow-animation-"+Editor.guid();var Ua=null!=ib.createElementNS?ib.createElementNS(mxConstants.NS_SVG,"style"):ib.createElement("style");Ua.innerHTML=this.createFlowAnimationCss(nb);ib.getElementsByTagName("defs")[0].appendChild(Ua)}return nb});ha.drawCellState=function(Ua,fb){for(var Ra=Ua.view.graph,jb=null!=va?va.get(Ua.cell):Ra.isCellSelected(Ua.cell),mb=Ra.model.getParent(Ua.cell);!(Q&&null==va||jb)&&null!=mb;)jb=null!=va?va.get(mb):Ra.isCellSelected(mb),mb=Ra.model.getParent(mb); -if(null!=Ua.shape)try{var $a=Ua.shape.isFlowAnimationEnabled,pb=Ua.shape.addFlowAnimationToShape;Ua.shape.isFlowAnimationEnabled=function(){return Ya&&Ra.model.isEdge(Ua.cell)&&"1"==mxUtils.getValue(Ua.style,"flowAnimation","0")};Ua.shape.addFlowAnimationToShape=function(){Ra.addFlowAnimationToNode(this.getFlowAnimationPath(),Ua.style,A,rb())};if(Q&&null==va||jb)Ra.view.redrawEnumerationState(Ua),ub.apply(this,arguments),this.doDrawShape(Ua.secondLabel,fb)}finally{Ua.shape.isFlowAnimationEnabled= -$a,Ua.shape.addFlowAnimationToShape=pb}};var vb=null!=this.view.currentRoot?this.view.currentRoot:this.model.root;ha.drawState(this.getView().getState(vb),eb);this.addForeignObjectWarning(eb,bb);Aa?this.disableSvgLinks(bb):this.updateSvgLinks(bb,fa,!0);return bb}finally{this.enableFlowAnimation=Ya,Oa&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(u,A){if("0"!=urlParams["svg-warning"]&&0=Q.length)A.remove(B);else{var W=Q.length-1;this.isTableCell(u)&&(W=mxUtils.indexOf(Q,u));for(E=u=0;E=N.length)A.remove(B);else{this.isTableRow(E)||(E=N[N.length-1]);A.remove(E);u=0;var Q=this.getCellGeometry(E);null!=Q&&(u=Q.height);var W=this.getCellGeometry(B); -null!=W&&(W=W.clone(),W.height-=u,A.setGeometry(B,W))}}finally{A.endUpdate()}};Graph.prototype.insertRow=function(u,A){for(var B=u.tBodies[0],E=B.rows[0].cells,N=u=0;NA&&u[B].deleteCell(A)}};Graph.prototype.pasteHtmlAtCaret=function(u){if(window.getSelection){var A=window.getSelection();if(A.getRangeAt&&A.rangeCount){A=A.getRangeAt(0);A.deleteContents();var B=document.createElement("div"); -B.innerHTML=u;u=document.createDocumentFragment();for(var E;E=B.firstChild;)lastNode=u.appendChild(E);A.insertNode(u)}}else(A=document.selection)&&"Control"!=A.type&&A.createRange().pasteHTML(u)};Graph.prototype.createLinkForHint=function(u,A,B){function E(Q,W){Q.length>W&&(Q=Q.substring(0,Math.round(W/2))+"..."+Q.substring(Q.length-Math.round(W/4)));return Q}u=null!=u?u:"javascript:void(0);";if(null==A||0==A.length)A=this.isCustomLink(u)?this.getLinkTitle(u):u;var N=document.createElement("a");N.setAttribute("rel", -this.linkRelation);N.setAttribute("href",this.getAbsoluteUrl(u));N.setAttribute("title",E(this.isCustomLink(u)?this.getLinkTitle(u):u,80));null!=this.linkTarget&&N.setAttribute("target",this.linkTarget);mxUtils.write(N,E(A,40));this.isCustomLink(u)&&mxEvent.addListener(N,"click",mxUtils.bind(this,function(Q){this.customLinkClicked(u,B);mxEvent.consume(Q)}));return N};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first}; -this.addListener(mxEvent.START_EDITING,function(Q,W){this.popupMenuHandler.hideMenu()});var u=this.updateMouseEvent;this.updateMouseEvent=function(Q){Q=u.apply(this,arguments);if(mxEvent.isTouchEvent(Q.getEvent())&&null==Q.getState()){var W=this.getCellAt(Q.graphX,Q.graphY);null!=W&&this.isSwimlane(W)&&this.hitsSwimlaneContent(W,Q.graphX,Q.graphY)||(Q.state=this.view.getState(W),null!=Q.state&&null!=Q.state.shape&&(this.container.style.cursor=Q.state.shape.node.style.cursor))}null==Q.getState()&& -this.isEnabled()&&(this.container.style.cursor="default");return Q};var A=!1,B=!1,E=!1,N=this.fireMouseEvent;this.fireMouseEvent=function(Q,W,ha){Q==mxEvent.MOUSE_DOWN&&(W=this.updateMouseEvent(W),A=this.isCellSelected(W.getCell()),B=this.isSelectionEmpty(),E=this.popupMenuHandler.isMenuShowing());N.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(Q,W){if(null!=this.freehand&&!this.freehand.isDrawing()){var ha=mxEvent.isMouseEvent(W.getEvent());this.popupMenuHandler.popupTrigger= -!this.isEditing()&&this.isEnabled()&&(null==W.getState()||!W.isSource(W.getState().control))&&(this.popupMenuHandler.popupTrigger||!E&&!ha&&(B&&null==W.getCell()&&this.isSelectionEmpty()||A&&this.isCellSelected(W.getCell())));ha=!A||ha?null:mxUtils.bind(this,function(fa){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var ia=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(W.getX()+ia.x+1,W.getY()+ia.y+1,fa,W.getEvent())}}),300)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler, -[Q,W,ha])}})};mxCellEditor.prototype.isContentEditing=function(){var u=this.graph.view.getState(this.editingCell);return null!=u&&1==u.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var u="";window.getSelection?u=window.getSelection():document.getSelection?u=document.getSelection():document.selection&&(u=document.selection.createRange().text); -return""!=u};mxCellEditor.prototype.insertTab=function(u){var A=this.textarea.ownerDocument.defaultView.getSelection(),B=A.getRangeAt(0);u=Graph.createTabNode(u);B.insertNode(u);B.setStartAfter(u);B.setEndAfter(u);A.removeAllRanges();A.addRange(B)};mxCellEditor.prototype.alignText=function(u,A){var B=this.graph.getView().getState(this.editingCell);if(null!=B){B=mxUtils.getValue(B.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);var E=null!=B&&"vertical-"==B.substring(0,9), -N=null!=A&&mxEvent.isShiftDown(A);if(N||null!=window.getSelection&&null!=window.getSelection().containsNode){var Q=!0;this.graph.processElements(this.textarea,function(W){N||E||window.getSelection().containsNode(W,!0)?(W.removeAttribute("align"),W.style.textAlign=null):Q=!1});(Q||E)&&this.graph.cellEditor.setAlign(u)}E||document.execCommand("justify"+u.toLowerCase(),!1,null)}};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var u=window.getSelection();if(u.getRangeAt&&u.rangeCount){for(var A= -[],B=0,E=u.rangeCount;B"):ha,!0);this.textarea.className="mxCellEditor geContentEditable";fa=mxUtils.getValue(u.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE);A=mxUtils.getValue(u.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY);var E=mxUtils.getValue(u.style, -mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),N=(mxUtils.getValue(u.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,Q=(mxUtils.getValue(u.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,W=[];(mxUtils.getValue(u.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&W.push("underline");(mxUtils.getValue(u.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&& -W.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(fa*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(fa)+"px";this.textarea.style.textDecoration=W.join(" ");this.textarea.style.fontWeight=N?"bold":"normal";this.textarea.style.fontStyle=Q?"italic":"";this.textarea.style.fontFamily=A;this.textarea.style.textAlign=E;this.textarea.style.padding="0px";this.textarea.innerHTML!=ha&&(this.textarea.innerHTML=ha,0== -this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0
"));ha=Graph.sanitizeHtml(A?ha.replace(/\n/g,"").replace(/<br\s*.?>/g,"
"): -ha,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var fa=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(fa*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(fa)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.width= -"";this.textarea.style.padding="2px";this.textarea.innerHTML!=ha&&(this.textarea.innerHTML=ha);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState=B;this.resize()}};var P=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(u,A){if(null!=this.textarea)if(u=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=u){var B=u.view.scale;this.bounds=mxRectangle.fromRectangle(u); -if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*B;this.bounds.height=60*B;var E=null!=u.text?u.text.margin:null;null==E&&(E=mxUtils.getAlignmentAsPoint(mxUtils.getValue(u.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER),mxUtils.getValue(u.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=E.x*this.bounds.width;this.bounds.y+=E.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/B)+"px";this.textarea.style.height= -Math.round((this.bounds.height-4)/B)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight"));return B=Graph.sanitizeHtml(B,!0)};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(u){if("0"==mxUtils.getValue(u.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);var A=Graph.sanitizeHtml(this.textarea.innerHTML,!0);"1"==mxUtils.getValue(u.style,"nl2Br","1")?(A=A.replace(/\r\n/g,"
").replace(/\n/g, -"
"),0"==A.substring(A.length-5)||"
"==A.substring(A.length-4))&&(A=A.substring(0,A.lastIndexOf("
")):A=A.replace(/\r\n/g,"").replace(/\n/g,"");return A};var I=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(u){this.codeViewMode&&this.toggleViewMode();I.apply(this,arguments);this.focusContainer()};mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(u){}};var Z=mxCellEditor.prototype.applyValue; -mxCellEditor.prototype.applyValue=function(u,A){this.graph.getModel().beginUpdate();try{Z.apply(this,arguments),""==A&&this.graph.isCellDeletable(u.cell)&&0==this.graph.model.getChildCount(u.cell)&&this.graph.isTransparentState(u)&&this.graph.removeCells([u.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(u){u=mxUtils.getValue(u.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);u==mxConstants.NONE&&(u=null);return u};mxCellEditor.prototype.getBorderColor= -function(u){u=mxUtils.getValue(u.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);u==mxConstants.NONE&&(u=null);return u};mxCellEditor.prototype.getMinimumSize=function(u){var A=this.graph.getView().scale;return new mxRectangle(0,0,null==u.text?30:u.text.size*A+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget=function(u,A){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(A.getEvent)};mxGraphView.prototype.formatUnitText= -function(u){return u?b(u,this.unit):u};mxGraphHandler.prototype.updateHint=function(u){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var A=this.graph.view.translate,B=this.graph.view.scale;u=this.roundLength((this.bounds.x+this.currentDx)/B-A.x);A=this.roundLength((this.bounds.y+this.currentDy)/B-A.y);B=this.graph.view.unit;this.hint.innerHTML=b(u,B)+", "+b(A,B);this.hint.style.left=this.pBounds.x+this.currentDx+ -Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(null!=this.hint.parentNode&&this.hint.parentNode.removeChild(this.hint),this.hint=null)};var S=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell=function(u,A){S.apply(this,arguments);var B=this.graph.getCellStyle(u);if(null==B.childLayout){var E=this.graph.model.getParent(u), -N=null!=E?this.graph.getCellGeometry(E):null;if(null!=N&&(B=this.graph.getCellStyle(E),"stackLayout"==B.childLayout)){var Q=parseFloat(mxUtils.getValue(B,"stackBorder",mxStackLayout.prototype.border));B="1"==mxUtils.getValue(B,"horizontalStack","1");var W=this.graph.getActualStartSize(E);N=N.clone();B?N.height=A.height+W.y+W.height+2*Q:N.width=A.width+W.x+W.width+2*Q;this.graph.model.setGeometry(E,N)}}};var Y=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells= -function(){function u(ha){B.get(ha)||(B.put(ha,!0),N.push(ha))}for(var A=Y.apply(this,arguments),B=new mxDictionary,E=this.graph.model,N=[],Q=0;Qu;u++){var A=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);A.dialect=mxConstants.DIALECT_SVG;A.init(this.graph.view.getOverlayPane());this.cornerHandles.push(A)}}this.graph.isTable(this.state.cell)&&this.graph.isCellMovable(this.state.cell)&&this.refreshMoveHandles();u=this.graph.getLinkForCell(this.state.cell);A=this.graph.getLinksForState(this.state); -this.updateLinkHint(u,A)};var M=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var u=new mxPoint(0,0),A=this.tolerance,B=this.state.style.shape;null==mxCellRenderer.defaultShapes[B]&&mxStencilRegistry.getStencil(B);B=this.graph.isTable(this.state.cell)||this.graph.cellEditor.getEditingCell()==this.state.cell;if(!B&&null!=this.customHandles)for(var E=0;E'); +A&&(0S||ja>S)&&this.clear());else{for(fa=ja.getSource();null!=fa&&"a"!=fa.nodeName.toLowerCase();)fa=fa.parentNode;null!=fa?this.clear():(null!=X.tooltipHandler&&null!=this.currentLink&&null!=this.currentState&&X.tooltipHandler.reset(ja,!0,this.currentState),(null==this.currentState||ja.getState()!= +this.currentState&&null!=ja.sourceState||!X.intersects(this.currentState,ja.getGraphX(),ja.getGraphY()))&&this.updateCurrentState(ja))}},mouseUp:function(fa,ja){var wa=ja.getSource();for(fa=ja.getEvent();null!=wa&&"a"!=wa.nodeName.toLowerCase();)wa=wa.parentNode;null==wa&&Math.abs(this.scrollLeft-X.container.scrollLeft)Q&&y++;ba++}K.length<$a.length&&1<$a.length-K.length&&($a=mxUtils.trim(K.join(""))+"...");return $a}catch(Ga){return rb.apply(this,arguments)}else return rb.apply(this,arguments)};null!=Ma&&null!=Ma.width&&null!=Ma.height&&(u=Ya/A,ja=new mxRectangle((Ma.x+ +Wa.x)*u,(Ma.y+Wa.y)*u,Ma.width*u,Ma.height*u),mxUtils.intersects(Ra,ja)&&bb.image(Ma.x+Wa.x,Ma.y+Wa.y,Ma.width,Ma.height,Ma.src,!0));bb.scale(F);bb.textEnabled=X;ha=null!=ha?ha:this.createSvgImageExport();var tb=ha.getLinkForCellState;ha.getLinkForCellState=function(Ta,sb){var ab=Ta.view.graph.getAbsoluteUrl(tb.apply(this,arguments));return null==ab||Ta.view.graph.isCustomLink(ab)?null:ab};ha.getLinkTargetForCellState=function(Ta,sb){return Ta.view.graph.getLinkTargetForCell(Ta.cell)};var yb=ha.drawCellState, +kb=null,hb=mxUtils.bind(this,function(){if(null==kb){kb="ge-flow-animation-"+Editor.guid();var Ta=null!=nb.createElementNS?nb.createElementNS(mxConstants.NS_SVG,"style"):nb.createElement("style");Ta.innerHTML=this.createFlowAnimationCss(kb);nb.getElementsByTagName("defs")[0].appendChild(Ta)}return kb});ha.drawCellState=function(Ta,sb){for(var ab=Ta.view.graph,jb=null!=xa?xa.get(Ta.cell):ab.isCellSelected(Ta.cell),ob=ab.model.getParent(Ta.cell);!(S&&null==xa||jb)&&null!=ob;)jb=null!=xa?xa.get(ob): +ab.isCellSelected(ob),ob=ab.model.getParent(ob);if(null!=Ta.shape)try{var $a=Ta.shape.isFlowAnimationEnabled,xb=Ta.shape.addFlowAnimationToShape;Ta.shape.isFlowAnimationEnabled=function(){return Va&&ab.model.isEdge(Ta.cell)&&"1"==mxUtils.getValue(Ta.style,"flowAnimation","0")};Ta.shape.addFlowAnimationToShape=function(){ab.addFlowAnimationToNode(this.getFlowAnimationPath(),Ta.style,A,hb())};if(S&&null==xa||jb)ab.view.redrawEnumerationState(Ta),yb.apply(this,arguments),this.doDrawShape(Ta.secondLabel, +sb)}finally{Ta.shape.isFlowAnimationEnabled=$a,Ta.shape.addFlowAnimationToShape=xb}};var Ua=null!=this.view.currentRoot?this.view.currentRoot:this.model.root;ha.drawState(this.getView().getState(Ua),bb);this.addForeignObjectWarning(bb,ib);va?this.disableSvgLinks(ib):this.updateSvgLinks(ib,fa,!0);return ib}finally{this.enableFlowAnimation=Va,Aa&&(this.useCssTransforms=!0,this.view.revalidate(),this.sizeDidChange())}};Graph.prototype.addForeignObjectWarning=function(u,A){if("0"!=urlParams["svg-warning"]&& +0=S.length)A.remove(C);else{var X=S.length-1;this.isTableCell(u)&&(X=mxUtils.indexOf(S,u));for(F=u=0;F=N.length)A.remove(C);else{this.isTableRow(F)||(F=N[N.length-1]);A.remove(F);u=0;var S=this.getCellGeometry(F);null!=S&&(u=S.height);var X=this.getCellGeometry(C);null!=X&&(X=X.clone(),X.height-=u,A.setGeometry(C, +X))}}finally{A.endUpdate()}};Graph.prototype.insertRow=function(u,A){for(var C=u.tBodies[0],F=C.rows[0].cells,N=u=0;NA&&u[C].deleteCell(A)}};Graph.prototype.pasteHtmlAtCaret=function(u){if(window.getSelection){var A=window.getSelection();if(A.getRangeAt&&A.rangeCount){A=A.getRangeAt(0);A.deleteContents();var C=document.createElement("div");C.innerHTML= +u;u=document.createDocumentFragment();for(var F;F=C.firstChild;)lastNode=u.appendChild(F);A.insertNode(u)}}else(A=document.selection)&&"Control"!=A.type&&A.createRange().pasteHTML(u)};Graph.prototype.createLinkForHint=function(u,A,C){function F(S,X){S.length>X&&(S=S.substring(0,Math.round(X/2))+"..."+S.substring(S.length-Math.round(X/4)));return S}u=null!=u?u:"javascript:void(0);";if(null==A||0==A.length)A=this.isCustomLink(u)?this.getLinkTitle(u):u;var N=document.createElement("a");N.setAttribute("rel", +this.linkRelation);N.setAttribute("href",this.getAbsoluteUrl(u));N.setAttribute("title",F(this.isCustomLink(u)?this.getLinkTitle(u):u,80));null!=this.linkTarget&&N.setAttribute("target",this.linkTarget);mxUtils.write(N,F(A,40));this.isCustomLink(u)&&mxEvent.addListener(N,"click",mxUtils.bind(this,function(S){this.customLinkClicked(u,C);mxEvent.consume(S)}));return N};Graph.prototype.initTouch=function(){this.connectionHandler.marker.isEnabled=function(){return null!=this.graph.connectionHandler.first}; +this.addListener(mxEvent.START_EDITING,function(S,X){this.popupMenuHandler.hideMenu()});var u=this.updateMouseEvent;this.updateMouseEvent=function(S){S=u.apply(this,arguments);if(mxEvent.isTouchEvent(S.getEvent())&&null==S.getState()){var X=this.getCellAt(S.graphX,S.graphY);null!=X&&this.isSwimlane(X)&&this.hitsSwimlaneContent(X,S.graphX,S.graphY)||(S.state=this.view.getState(X),null!=S.state&&null!=S.state.shape&&(this.container.style.cursor=S.state.shape.node.style.cursor))}null==S.getState()&& +this.isEnabled()&&(this.container.style.cursor="default");return S};var A=!1,C=!1,F=!1,N=this.fireMouseEvent;this.fireMouseEvent=function(S,X,ha){S==mxEvent.MOUSE_DOWN&&(X=this.updateMouseEvent(X),A=this.isCellSelected(X.getCell()),C=this.isSelectionEmpty(),F=this.popupMenuHandler.isMenuShowing());N.apply(this,arguments)};this.popupMenuHandler.mouseUp=mxUtils.bind(this,function(S,X){if(null!=this.freehand&&!this.freehand.isDrawing()){var ha=mxEvent.isMouseEvent(X.getEvent());this.popupMenuHandler.popupTrigger= +!this.isEditing()&&this.isEnabled()&&(null==X.getState()||!X.isSource(X.getState().control))&&(this.popupMenuHandler.popupTrigger||!F&&!ha&&(C&&null==X.getCell()&&this.isSelectionEmpty()||A&&this.isCellSelected(X.getCell())));ha=!A||ha?null:mxUtils.bind(this,function(fa){window.setTimeout(mxUtils.bind(this,function(){if(!this.isEditing()){var ja=mxUtils.getScrollOrigin();this.popupMenuHandler.popup(X.getX()+ja.x+1,X.getY()+ja.y+1,fa,X.getEvent())}}),300)});mxPopupMenuHandler.prototype.mouseUp.apply(this.popupMenuHandler, +[S,X,ha])}})};mxCellEditor.prototype.isContentEditing=function(){var u=this.graph.view.getState(this.editingCell);return null!=u&&1==u.style.html};mxCellEditor.prototype.isTableSelected=function(){return null!=this.graph.getParentByName(this.graph.getSelectedElement(),"TABLE",this.textarea)};mxCellEditor.prototype.isTextSelected=function(){var u="";window.getSelection?u=window.getSelection():document.getSelection?u=document.getSelection():document.selection&&(u=document.selection.createRange().text); +return""!=u};mxCellEditor.prototype.insertTab=function(u){var A=this.textarea.ownerDocument.defaultView.getSelection(),C=A.getRangeAt(0);u=Graph.createTabNode(u);C.insertNode(u);C.setStartAfter(u);C.setEndAfter(u);A.removeAllRanges();A.addRange(C)};mxCellEditor.prototype.alignText=function(u,A){var C=this.graph.getView().getState(this.editingCell);if(null!=C){C=mxUtils.getValue(C.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);var F=null!=C&&"vertical-"==C.substring(0,9), +N=null!=A&&mxEvent.isShiftDown(A);if(N||null!=window.getSelection&&null!=window.getSelection().containsNode){var S=!0;this.graph.processElements(this.textarea,function(X){N||F||window.getSelection().containsNode(X,!0)?(X.removeAttribute("align"),X.style.textAlign=null):S=!1});(S||F)&&this.graph.cellEditor.setAlign(u)}F||document.execCommand("justify"+u.toLowerCase(),!1,null)}};mxCellEditor.prototype.saveSelection=function(){if(window.getSelection){var u=window.getSelection();if(u.getRangeAt&&u.rangeCount){for(var A= +[],C=0,F=u.rangeCount;C"):ha,!0);this.textarea.className="mxCellEditor geContentEditable";fa=mxUtils.getValue(u.style,mxConstants.STYLE_FONTSIZE,mxConstants.DEFAULT_FONTSIZE); +A=mxUtils.getValue(u.style,mxConstants.STYLE_FONTFAMILY,mxConstants.DEFAULT_FONTFAMILY);var F=mxUtils.getValue(u.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_LEFT),N=(mxUtils.getValue(u.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD,S=(mxUtils.getValue(u.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC,X=[];(mxUtils.getValue(u.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE&&X.push("underline"); +(mxUtils.getValue(u.style,mxConstants.STYLE_FONTSTYLE,0)&mxConstants.FONT_STRIKETHROUGH)==mxConstants.FONT_STRIKETHROUGH&&X.push("line-through");this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(fa*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize=Math.round(fa)+"px";this.textarea.style.textDecoration=X.join(" ");this.textarea.style.fontWeight=N?"bold":"normal";this.textarea.style.fontStyle=S?"italic":"";this.textarea.style.fontFamily=A;this.textarea.style.textAlign= +F;this.textarea.style.padding="0px";this.textarea.innerHTML!=ha&&(this.textarea.innerHTML=ha,0==this.textarea.innerHTML.length&&(this.textarea.innerHTML=this.getEmptyLabelText(),this.clearOnChange=0
"));ha=Graph.sanitizeHtml(A?ha.replace(/\n/g,"").replace(/<br\s*.?>/g,"
"):ha,!0);this.textarea.className="mxCellEditor mxPlainTextEditor";var fa=mxConstants.DEFAULT_FONTSIZE;this.textarea.style.lineHeight=mxConstants.ABSOLUTE_LINE_HEIGHT?Math.round(fa*mxConstants.LINE_HEIGHT)+"px":mxConstants.LINE_HEIGHT;this.textarea.style.fontSize= +Math.round(fa)+"px";this.textarea.style.textDecoration="";this.textarea.style.fontWeight="normal";this.textarea.style.fontStyle="";this.textarea.style.fontFamily=mxConstants.DEFAULT_FONTFAMILY;this.textarea.style.textAlign="left";this.textarea.style.width="";this.textarea.style.padding="2px";this.textarea.innerHTML!=ha&&(this.textarea.innerHTML=ha);this.codeViewMode=!0}this.textarea.focus();null!=this.switchSelectionState&&this.restoreSelection(this.switchSelectionState);this.switchSelectionState= +C;this.resize()}};var P=mxCellEditor.prototype.resize;mxCellEditor.prototype.resize=function(u,A){if(null!=this.textarea)if(u=this.graph.getView().getState(this.editingCell),this.codeViewMode&&null!=u){var C=u.view.scale;this.bounds=mxRectangle.fromRectangle(u);if(0==this.bounds.width&&0==this.bounds.height){this.bounds.width=160*C;this.bounds.height=60*C;var F=null!=u.text?u.text.margin:null;null==F&&(F=mxUtils.getAlignmentAsPoint(mxUtils.getValue(u.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER), +mxUtils.getValue(u.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE)));this.bounds.x+=F.x*this.bounds.width;this.bounds.y+=F.y*this.bounds.height}this.textarea.style.width=Math.round((this.bounds.width-4)/C)+"px";this.textarea.style.height=Math.round((this.bounds.height-4)/C)+"px";this.textarea.style.overflow="auto";this.textarea.clientHeight"));return Graph.sanitizeHtml(C,!0)};mxCellEditorSetEditingValue=mxCellEditor.prototype.setEditingValue;mxCellEditor.prototype.setEditingValue= +function(u,A){mxCellEditorSetEditingValue.apply(this,arguments);"1"==mxUtils.getValue(u.style,"html","0")&&Graph.addLightDarkColors(this.textarea,Graph.backupStyleAttribute,"simple"==this.graph.getAdaptiveColors())};mxCellEditorGetCurrentValue=mxCellEditor.prototype.getCurrentValue;mxCellEditor.prototype.getCurrentValue=function(u){if("0"==mxUtils.getValue(u.style,"html","0"))return mxCellEditorGetCurrentValue.apply(this,arguments);Graph.removeLightDarkColors(this.textarea,Graph.backupStyleAttribute); +var A=Graph.sanitizeHtml(this.textarea.innerHTML,!0);"1"==mxUtils.getValue(u.style,"nl2Br","1")?(A=A.replace(/\r\n/g,"
").replace(/\n/g,"
"),0"==A.substring(A.length-5)||"
"==A.substring(A.length-4))&&(A=A.substring(0,A.lastIndexOf("
")):A=A.replace(/\r\n/g,"").replace(/\n/g,"");return A};var L=mxCellEditor.prototype.stopEditing;mxCellEditor.prototype.stopEditing=function(u){this.codeViewMode&&this.toggleViewMode();L.apply(this,arguments);this.focusContainer()}; +mxCellEditor.prototype.focusContainer=function(){try{this.graph.container.focus()}catch(u){}};var U=mxCellEditor.prototype.applyValue;mxCellEditor.prototype.applyValue=function(u,A){this.graph.getModel().beginUpdate();try{U.apply(this,arguments),""==A&&this.graph.isCellDeletable(u.cell)&&0==this.graph.model.getChildCount(u.cell)&&this.graph.isTransparentState(u)&&this.graph.removeCells([u.cell],!1)}finally{this.graph.getModel().endUpdate()}};mxCellEditor.prototype.getBackgroundColor=function(u){u= +mxUtils.getValue(u.style,mxConstants.STYLE_LABEL_BACKGROUNDCOLOR,null);u==mxConstants.NONE&&(u=null);return u};mxCellEditor.prototype.getBorderColor=function(u){u=mxUtils.getValue(u.style,mxConstants.STYLE_LABEL_BORDERCOLOR,null);u==mxConstants.NONE&&(u=null);return u};mxCellEditor.prototype.getMinimumSize=function(u){var A=this.graph.getView().scale;return new mxRectangle(0,0,null==u.text?30:u.text.size*A+20,30)};mxGraphHandlerIsValidDropTarget=mxGraphHandler.prototype.isValidDropTarget;mxGraphHandler.prototype.isValidDropTarget= +function(u,A){return mxGraphHandlerIsValidDropTarget.apply(this,arguments)&&!mxEvent.isAltDown(A.getEvent)};mxGraphView.prototype.formatUnitText=function(u){return u?b(u,this.unit):u};mxGraphHandler.prototype.updateHint=function(u){if(null!=this.pBounds&&(null!=this.shape||this.livePreviewActive)){null==this.hint&&(this.hint=a(),this.graph.container.appendChild(this.hint));var A=this.graph.view.translate,C=this.graph.view.scale;u=this.roundLength((this.bounds.x+this.currentDx)/C-A.x);A=this.roundLength((this.bounds.y+ +this.currentDy)/C-A.y);C=this.graph.view.unit;this.hint.innerHTML=b(u,C)+", "+b(A,C);this.hint.style.left=this.pBounds.x+this.currentDx+Math.round((this.pBounds.width-this.hint.clientWidth)/2)+"px";this.hint.style.top=this.pBounds.y+this.currentDy+this.pBounds.height+Editor.hintOffset+"px"}};mxGraphHandler.prototype.removeHint=function(){null!=this.hint&&(null!=this.hint.parentNode&&this.hint.parentNode.removeChild(this.hint),this.hint=null)};var Y=mxStackLayout.prototype.resizeCell;mxStackLayout.prototype.resizeCell= +function(u,A){Y.apply(this,arguments);var C=this.graph.getCellStyle(u);if(null==C.childLayout){var F=this.graph.model.getParent(u),N=null!=F?this.graph.getCellGeometry(F):null;if(null!=N&&(C=this.graph.getCellStyle(F),"stackLayout"==C.childLayout)){var S=parseFloat(mxUtils.getValue(C,"stackBorder",mxStackLayout.prototype.border));C="1"==mxUtils.getValue(C,"horizontalStack","1");var X=this.graph.getActualStartSize(F);N=N.clone();C?N.height=A.height+X.y+X.height+2*S:N.width=A.width+X.x+X.width+2*S; +this.graph.model.setGeometry(F,N)}}};var R=mxSelectionCellsHandler.prototype.getHandledSelectionCells;mxSelectionCellsHandler.prototype.getHandledSelectionCells=function(){function u(ha){C.get(ha)||(C.put(ha,!0),N.push(ha))}for(var A=R.apply(this,arguments),C=new mxDictionary,F=this.graph.model,N=[],S=0;Su;u++){var A=new mxRectangleShape(new mxRectangle(0,0,6,6),"#ffffff",mxConstants.HANDLE_STROKECOLOR);A.dialect=mxConstants.DIALECT_SVG;A.init(this.graph.view.getOverlayPane()); +this.cornerHandles.push(A)}}this.graph.isTable(this.state.cell)&&this.graph.isCellMovable(this.state.cell)&&this.refreshMoveHandles();u=this.graph.getLinkForCell(this.state.cell);A=this.graph.getLinksForState(this.state);this.updateLinkHint(u,A)};var J=mxVertexHandler.prototype.getHandlePadding;mxVertexHandler.prototype.getHandlePadding=function(){var u=new mxPoint(0,0),A=this.tolerance,C=this.state.style.shape;null==mxCellRenderer.defaultShapes[C]&&mxStencilRegistry.getStencil(C);C=this.graph.isTable(this.state.cell)|| +this.graph.cellEditor.getEditingCell()==this.state.cell;if(!C&&null!=this.customHandles)for(var F=0;F'); Graph.prototype.collapsedImage=Graph.createSvgImage(9,9,'');mxEdgeHandler.prototype.removeHint=mxVertexHandler.prototype.removeHint;HoverIcons.prototype.mainHandle= Graph.createSvgImage(18,18,'');HoverIcons.prototype.endMainHandle=Graph.createSvgImage(18,18,'');HoverIcons.prototype.secondaryHandle=Graph.createSvgImage(16,16,'');HoverIcons.prototype.fixedHandle=Graph.createSvgImage(22,22,''); HoverIcons.prototype.endFixedHandle=Graph.createSvgImage(22,22,'');HoverIcons.prototype.terminalHandle=Graph.createSvgImage(22,22,'');HoverIcons.prototype.endTerminalHandle=Graph.createSvgImage(22,22,'');mxVertexHandler.TABLE_HANDLE_COLOR="#fca000";mxVertexHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxVertexHandler.prototype.secondaryHandleImage=HoverIcons.prototype.secondaryHandle;mxVertexHandler.prototype.rowHandleImage=Graph.createSvgImage(14, 12,'');mxEdgeHandler.prototype.handleImage=HoverIcons.prototype.mainHandle;mxEdgeHandler.prototype.endHandleImage=HoverIcons.prototype.endMainHandle;mxEdgeHandler.prototype.terminalHandleImage=HoverIcons.prototype.terminalHandle;mxEdgeHandler.prototype.endTerminalHandleImage= HoverIcons.prototype.endTerminalHandle;mxEdgeHandler.prototype.fixedHandleImage=HoverIcons.prototype.fixedHandle;mxEdgeHandler.prototype.endFixedHandleImage=HoverIcons.prototype.endFixedHandle;mxEdgeHandler.prototype.labelHandleImage=HoverIcons.prototype.secondaryHandle;mxOutline.prototype.sizerImage=HoverIcons.prototype.mainHandle;null!=window.Sidebar&&(Sidebar.prototype.triangleUp=HoverIcons.prototype.triangleUp,Sidebar.prototype.triangleRight=HoverIcons.prototype.triangleRight,Sidebar.prototype.triangleDown= -HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxRubberband.prototype.defaultOpacity=30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop= -!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent=function(u){return!mxEvent.isShiftDown(u.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent= -function(u){return!mxEvent.isShiftDown(u.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||0Q||Math.abs(N)>Q)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(u,B),this.isSpaceEvent(A)?(u=this.x+this.width,B=this.y+this.height,E=this.graph.view.scale,mxEvent.isAltDown(A.getEvent())||(this.width=this.graph.snap(this.width/E)*E,this.height=this.graph.snap(this.height/E)*E,this.graph.isGridEnabled()|| -(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px", -null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor="",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&& -(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),A.consume()}};var Sa=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Sa.apply(this,arguments)};var ma=(new Date).getTime(),Fa=0,Ha=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(u,A,B,E){Ha.apply(this,arguments);B!=this.currentTerminalState?(ma=(new Date).getTime(), -Fa=0):Fa=(new Date).getTime()-ma;this.currentTerminalState=B};var Na=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(u){return mxEvent.isShiftDown(u.getEvent())&&mxEvent.isAltDown(u.getEvent())?!1:null!=this.currentTerminalState&&u.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==u)?this.graph.getConnectionConstraint(this.state,E,A):null;B=null!=(null!=u?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(A),u):null)?B?this.endFixedHandleImage:this.fixedHandleImage:null!=u&&null!=E?B?this.endTerminalHandleImage:this.terminalHandleImage:B?this.endHandleImage:this.handleImage;if(null!=B)return B= -new mxImageShape(new mxRectangle(0,0,B.width,B.height),B.src),B.preserveImageAspect=!1,B;B=mxConstants.HANDLE_SIZE;this.preferHtml&&--B;return new mxRectangleShape(new mxRectangle(0,0,B,B),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var Qa=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(u,A,B,E){E=A==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle:A==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:E;return Qa.apply(this,arguments)}; -var La=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(u){if(null!=u&&1==u.length){var A=this.graph.getModel(),B=A.getParent(u[0]),E=this.graph.getCellGeometry(u[0]);if(A.isEdge(B)&&null!=E&&E.relative&&(A=this.graph.view.getState(u[0]),null!=A&&2>A.width&&2>A.height&&null!=A.text&&null!=A.text.boundingBox))return mxRectangle.fromRectangle(A.text.boundingBox)}return La.apply(this,arguments)};var Ja=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates= -function(){for(var u=Ja.apply(this,arguments),A=[],B=0;Bu.width&&2>u.height&&null!=u.text&&null!=u.text.boundingBox?(A=u.text.unrotatedBoundingBox||u.text.boundingBox,new mxRectangle(Math.round(A.x), -Math.round(A.y),Math.round(A.width),Math.round(A.height))):ua.apply(this,arguments)};var Ia=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(u,A){var B=this.graph.getModel(),E=B.getParent(this.state.cell),N=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(A)==mxEvent.ROTATION_HANDLE||!B.isEdge(E)||null==N||!N.relative||null==this.state||2<=this.state.width||2<=this.state.height)&&Ia.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var u= -mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),A=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&u==mxConstants.NONE&&A==mxConstants.NONE?(u=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION,u,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var Za=mxVertexHandler.prototype.mouseMove; -mxVertexHandler.prototype.mouseMove=function(u,A){Za.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var gb=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp=function(u,A){gb.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display= -1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&1==this.graph.getSelectionCount()&&(this.linkHint.style.display="");this.blockDelayedSelection=null};mxVertexHandler.prototype.updateLinkHint=function(u,A){try{if(null==u&&(null==A||0==A.length))null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint),this.linkHint=null);else if(null!=u||null!=A&&0',32,20);Format.classicThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.openFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.openThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.openAsyncFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.blockFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.blockThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.asyncFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.ovalFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.diamondFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.diamondThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.classicMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.classicThinMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.blockMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.blockThinMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.asyncMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.ovalMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.diamondMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.diamondThinMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.boxMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.halfCircleMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.dashMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.crossMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.circlePlusMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.circleMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.ERmandOneMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.ERmanyMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.ERoneToManyMarkerImage=Graph.createSvgImage(20,22,'',32,20); -Format.ERzeroToOneMarkerImage=Graph.createSvgImage(20,22,'',32,20); +HoverIcons.prototype.triangleDown,Sidebar.prototype.triangleLeft=HoverIcons.prototype.triangleLeft,Sidebar.prototype.refreshTarget=HoverIcons.prototype.refreshTarget,Sidebar.prototype.roundDrop=HoverIcons.prototype.roundDrop);mxVertexHandler.prototype.rotationEnabled=!0;mxVertexHandler.prototype.manageSizers=!0;mxVertexHandler.prototype.livePreview=!0;mxGraphHandler.prototype.maxLivePreview=16;mxGraphHandler.prototype.previewColor="light-dark(#000000, #cccccc)";mxRubberband.prototype.defaultOpacity= +30;mxConnectionHandler.prototype.outlineConnect=!0;mxCellHighlight.prototype.keepOnTop=!0;mxVertexHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.parentHighlightEnabled=!0;mxEdgeHandler.prototype.dblClickRemoveEnabled=!0;mxEdgeHandler.prototype.straightRemoveEnabled=!0;mxEdgeHandler.prototype.virtualBendsEnabled=!0;mxEdgeHandler.prototype.mergeRemoveEnabled=!0;mxEdgeHandler.prototype.manageLabelHandle=!0;mxEdgeHandler.prototype.outlineConnect=!0;mxEdgeHandler.prototype.isAddVirtualBendEvent= +function(u){return!mxEvent.isShiftDown(u.getEvent())};mxEdgeHandler.prototype.isCustomHandleEvent=function(u){return!mxEvent.isShiftDown(u.getEvent())};if(Graph.touchStyle){if(mxClient.IS_TOUCH||0S||Math.abs(N)>S)null==this.div&&(this.div=this.createShape()),mxUtils.clearSelection(),this.update(u,C),this.isSpaceEvent(A)?(u=this.x+this.width,C=this.y+this.height,F=this.graph.view.scale,mxEvent.isAltDown(A.getEvent())||(this.width=this.graph.snap(this.width/ +F)*F,this.height=this.graph.snap(this.height/F)*F,this.graph.isGridEnabled()||(this.width=this.width?"0px 1px 0px 0px":"0px 1px 0px 1px",null==this.secondDiv&&(this.secondDiv=this.div.cloneNode(!0),this.div.parentNode.appendChild(this.secondDiv)),this.secondDiv.style.left=this.x+"px",this.secondDiv.style.top=this.y+"px",this.secondDiv.style.width=this.graph.container.clientWidth+"px",this.secondDiv.style.height=Math.max(0,this.height)+"px",this.secondDiv.style.borderWidth=0>=this.height?"1px 0px 0px 0px":"1px 0px 1px 0px"):(this.div.style.backgroundColor= +"",this.div.style.borderWidth="",this.div.style.borderStyle="",null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null)),A.consume()}};var Qa=mxRubberband.prototype.reset;mxRubberband.prototype.reset=function(){null!=this.secondDiv&&(this.secondDiv.parentNode.removeChild(this.secondDiv),this.secondDiv=null);Qa.apply(this,arguments)};var pa=(new Date).getTime(),Ba=0,Ea=mxEdgeHandler.prototype.updatePreviewState;mxEdgeHandler.prototype.updatePreviewState=function(u, +A,C,F){Ea.apply(this,arguments);C!=this.currentTerminalState?(pa=(new Date).getTime(),Ba=0):Ba=(new Date).getTime()-pa;this.currentTerminalState=C};var Ha=mxEdgeHandler.prototype.isOutlineConnectEvent;mxEdgeHandler.prototype.isOutlineConnectEvent=function(u){return mxEvent.isShiftDown(u.getEvent())&&mxEvent.isAltDown(u.getEvent())?!1:null!=this.currentTerminalState&&u.getState()==this.currentTerminalState&&2E3=this.state.absolutePoints.length-1||this.constructor==mxElbowEdgeHandler&&2==u)?this.graph.getConnectionConstraint(this.state,F,A):null;C=null!=(null!=u?this.graph.getConnectionPoint(this.state.getVisibleTerminalState(A),u):null)?C?this.endFixedHandleImage:this.fixedHandleImage:null!=u&&null!=F?C?this.endTerminalHandleImage: +this.terminalHandleImage:C?this.endHandleImage:this.handleImage;if(null!=C)return C=new mxImageShape(new mxRectangle(0,0,C.width,C.height),C.src),C.preserveImageAspect=!1,C;C=mxConstants.HANDLE_SIZE;this.preferHtml&&--C;return new mxRectangleShape(new mxRectangle(0,0,C,C),mxConstants.HANDLE_FILLCOLOR,mxConstants.HANDLE_STROKECOLOR)};var La=mxVertexHandler.prototype.createSizerShape;mxVertexHandler.prototype.createSizerShape=function(u,A,C,F){F=A==mxEvent.ROTATION_HANDLE?HoverIcons.prototype.rotationHandle: +A==mxEvent.LABEL_HANDLE?this.secondaryHandleImage:F;return La.apply(this,arguments)};var Ia=mxGraphHandler.prototype.getBoundingBox;mxGraphHandler.prototype.getBoundingBox=function(u){if(null!=u&&1==u.length){var A=this.graph.getModel(),C=A.getParent(u[0]),F=this.graph.getCellGeometry(u[0]);if(A.isEdge(C)&&null!=F&&F.relative&&(A=this.graph.view.getState(u[0]),null!=A&&2>A.width&&2>A.height&&null!=A.text&&null!=A.text.boundingBox))return mxRectangle.fromRectangle(A.text.boundingBox)}return Ia.apply(this, +arguments)};var Ja=mxGraphHandler.prototype.getGuideStates;mxGraphHandler.prototype.getGuideStates=function(){for(var u=Ja.apply(this,arguments),A=[],C=0;Cu.width&&2>u.height&&null!= +u.text&&null!=u.text.boundingBox?(A=u.text.unrotatedBoundingBox||u.text.boundingBox,new mxRectangle(Math.round(A.x),Math.round(A.y),Math.round(A.width),Math.round(A.height))):ta.apply(this,arguments)};var Oa=mxVertexHandler.prototype.mouseDown;mxVertexHandler.prototype.mouseDown=function(u,A){var C=this.graph.getModel(),F=C.getParent(this.state.cell),N=this.graph.getCellGeometry(this.state.cell);(this.getHandleForEvent(A)==mxEvent.ROTATION_HANDLE||!C.isEdge(F)||null==N||!N.relative||null==this.state|| +2<=this.state.width||2<=this.state.height)&&Oa.apply(this,arguments)};mxVertexHandler.prototype.rotateClick=function(){var u=mxUtils.getValue(this.state.style,mxConstants.STYLE_STROKECOLOR,mxConstants.NONE),A=mxUtils.getValue(this.state.style,mxConstants.STYLE_FILLCOLOR,mxConstants.NONE);this.state.view.graph.model.isVertex(this.state.cell)&&u==mxConstants.NONE&&A==mxConstants.NONE?(u=mxUtils.mod(mxUtils.getValue(this.state.style,mxConstants.STYLE_ROTATION,0)+90,360),this.state.view.graph.setCellStyles(mxConstants.STYLE_ROTATION, +u,[this.state.cell])):this.state.view.graph.turnShapes([this.state.cell])};var Xa=mxVertexHandler.prototype.mouseMove;mxVertexHandler.prototype.mouseMove=function(u,A){Xa.apply(this,arguments);null!=this.graph.graphHandler.first&&(null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display="none"),null!=this.linkHint&&"none"!=this.linkHint.style.display&&(this.linkHint.style.display="none"))};var eb=mxVertexHandler.prototype.mouseUp;mxVertexHandler.prototype.mouseUp= +function(u,A){eb.apply(this,arguments);null!=this.rotationShape&&null!=this.rotationShape.node&&(this.rotationShape.node.style.display=1==this.graph.getSelectionCount()?"":"none");null!=this.linkHint&&"none"==this.linkHint.style.display&&1==this.graph.getSelectionCount()&&(this.linkHint.style.display="");this.blockDelayedSelection=null};mxVertexHandler.prototype.updateLinkHint=function(u,A){try{if(null==u&&(null==A||0==A.length))null!=this.linkHint&&(this.linkHint.parentNode.removeChild(this.linkHint), +this.linkHint=null);else if(null!=u||null!=A&&0',32,20); +Format.classicThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.openFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.openThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.openAsyncFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.blockFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.blockThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.asyncFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.ovalFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.diamondFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.diamondThinFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.classicMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.classicThinMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.blockMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.blockThinMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.asyncMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.ovalMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.diamondMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.diamondThinMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.boxMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.halfCircleMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.dashMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.crossMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.circlePlusMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.circleMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.ERmandOneMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.ERmanyMarkerImage=Graph.createSvgImage(20,22,'',32,20); +Format.ERoneToManyMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.ERzeroToOneMarkerImage=Graph.createSvgImage(20,22,'',32,20); Format.ERzeroToManyMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.EROneMarkerImage=Graph.createSvgImage(20,22,'',32,20); Format.baseDashMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.doubleBlockMarkerImage=Graph.createSvgImage(20,22,'',32,20); Format.doubleBlockFilledMarkerImage=Graph.createSvgImage(20,22,'',32,20);Format.processMenuIcon=function(a,b){var e=a.getElementsByTagName("img");0=u.length||da[A]!=u[A].node||da[A]==u[A].node&&da[A].getAttribute("color")!=u[A].color){u=da[A].firstChild;if(null!=u&&"A"==u.nodeName&&null==u.nextSibling&&null!=u.firstChild){da[A].parentNode.insertBefore(u,da[A]);for(wa=u.firstChild;null!=wa;){var B=wa.nextSibling;da[A].appendChild(wa);wa=B}u.appendChild(da[A])}break}}else document.execCommand("forecolor", -!1,da!=mxConstants.NONE?da:"transparent"),h.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTCOLOR],"values",[da],"cells",g.cells))},null!=k[mxConstants.STYLE_FONTCOLOR]?k[mxConstants.STYLE_FONTCOLOR]:d.shapeForegroundColor,{install:function(da){ea=da},destroy:function(){ea=null}},null,!0):this.createCellColorOption(mxResources.get("fontColor"),mxConstants.STYLE_FONTCOLOR,"default",function(da){ta.style.display=da==mxConstants.NONE?"none":"";Sa.style.display=ta.style.display}, -function(da){da==mxConstants.NONE?d.setCellStyles(mxConstants.STYLE_NOLABEL,"1",g.cells):d.setCellStyles(mxConstants.STYLE_NOLABEL,null,g.cells);d.setCellStyles(mxConstants.STYLE_FONTCOLOR,da,g.cells);d.updateLabelElements(g.cells,function(wa){wa.removeAttribute("color");wa.style.color=null})},d.shapeForegroundColor);k.style.fontWeight="bold";q.appendChild(k);q.appendChild(ta);k=this.createCellOption(mxResources.get("shadow"),mxConstants.STYLE_TEXT_SHADOW,0);k.style.width="100%";k.style.fontWeight= -"bold";Editor.enableShadowOption||(k.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(k,60));d.cellEditor.isContentEditing()||(q.appendChild(Sa),q.appendChild(k));a.appendChild(q);q=this.createPanel();q.style.paddingTop="2px";q.style.paddingBottom="4px";k=d.filterSelectionCells(mxUtils.bind(this,function(da){var wa=d.view.getState(da);return null==wa||d.isAutoSizeState(wa)||d.getModel().isEdge(da)||!d.isTableRow(da)&&!d.isTableCell(da)&&!d.isCellResizable(da)})); -C=this.createCellOption(mxResources.get("wordWrap"),mxConstants.STYLE_WHITE_SPACE,null,"wrap","null",null,null,!0,k);C.style.fontWeight="bold";0F;F++)(function(da){mxEvent.addListener(w[da],"click",function(){f(w[da],""==w[da].style.backgroundImage)})})(F);var Ia=mxUtils.bind(this,function(da,wa,u){g=h.getSelectionState(); -da=mxUtils.getValue(g.style,mxConstants.STYLE_FONTSTYLE,0);f(w[0],(da&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);f(w[1],(da&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);f(w[2],(da&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);p.firstChild.nodeValue=mxUtils.getValue(g.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);f(z,"0"==mxUtils.getValue(g.style,mxConstants.STYLE_HORIZONTAL,"1"));if(u||document.activeElement!=na)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_FONTSIZE, -Menus.prototype.defaultFontSize)),na.value=isNaN(da)?"":da+" "+Editor.fontSizeUnit;da=mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);f(D,da==mxConstants.ALIGN_LEFT);f(H,da==mxConstants.ALIGN_CENTER);f(K,da==mxConstants.ALIGN_RIGHT);da=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);f(P,da==mxConstants.ALIGN_TOP);f(I,da==mxConstants.ALIGN_MIDDLE);f(Z,da==mxConstants.ALIGN_BOTTOM);da=mxUtils.getValue(g.style,mxConstants.STYLE_LABEL_POSITION, -mxConstants.ALIGN_CENTER);wa=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);ja.value=da==mxConstants.ALIGN_LEFT&&wa==mxConstants.ALIGN_TOP?"topLeft":da==mxConstants.ALIGN_CENTER&&wa==mxConstants.ALIGN_TOP?"top":da==mxConstants.ALIGN_RIGHT&&wa==mxConstants.ALIGN_TOP?"topRight":da==mxConstants.ALIGN_LEFT&&wa==mxConstants.ALIGN_BOTTOM?"bottomLeft":da==mxConstants.ALIGN_CENTER&&wa==mxConstants.ALIGN_BOTTOM?"bottom":da==mxConstants.ALIGN_RIGHT&&wa==mxConstants.ALIGN_BOTTOM? -"bottomRight":da==mxConstants.ALIGN_LEFT?"left":da==mxConstants.ALIGN_RIGHT?"right":"center";da=mxUtils.getValue(g.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);da==mxConstants.TEXT_DIRECTION_RTL?T.value="rightToLeft":da==mxConstants.TEXT_DIRECTION_LTR?T.value="leftToRight":da!=mxConstants.TEXT_DIRECTION_AUTO&&g.html?da==mxConstants.TEXT_DIRECTION_VERTICAL_LR?T.value="vertical-leftToRight":da==mxConstants.TEXT_DIRECTION_VERTICAL_RL&&(T.value="vertical-rightToLeft"):T.value= -"automatic";if(u||document.activeElement!=Fa)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING,2)),Fa.value=isNaN(da)?"":this.inUnit(da)+" "+this.getUnit();if(u||document.activeElement!=ma)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_TOP,0)),ma.value=isNaN(da)?"":this.inUnit(da)+" "+this.getUnit();if(u||document.activeElement!=Qa)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_RIGHT,0)),Qa.value=isNaN(da)?"":this.inUnit(da)+" "+this.getUnit();if(u|| -document.activeElement!=Na)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_BOTTOM,0)),Na.value=isNaN(da)?"":this.inUnit(da)+" "+this.getUnit();if(u||document.activeElement!=Ha)da=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_LEFT,0)),Ha.value=isNaN(da)?"":this.inUnit(da)+" "+this.getUnit()});var Za=this.installInputHandler(Fa,mxConstants.STYLE_SPACING,2,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var gb=this.installInputHandler(ma,mxConstants.STYLE_SPACING_TOP, -0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var db=this.installInputHandler(Qa,mxConstants.STYLE_SPACING_RIGHT,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var hb=this.installInputHandler(Na,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var ob=this.installInputHandler(Ha,mxConstants.STYLE_SPACING_LEFT,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);this.addKeyHandler(na,Ia);this.addKeyHandler(Fa,Ia);this.addKeyHandler(ma, -Ia);this.addKeyHandler(Qa,Ia);this.addKeyHandler(Na,Ia);this.addKeyHandler(Ha,Ia);d.getModel().addListener(mxEvent.CHANGE,Ia);this.listeners.push({destroy:function(){d.getModel().removeListener(Ia)}});Ia();if(d.cellEditor.isContentEditing()){var cb=null,ab=!1;n=mxUtils.bind(this,function(){ab||(ab=!0,window.setTimeout(mxUtils.bind(this,function(){var da=d.getSelectedEditingElement();if(null!=da&&null!=d.cellEditor.textarea){var wa=function(xa,Da){if(null!=xa&&null!=Da){if(xa==Da)return!0;if(xa.length> -Da.length+1)return xa.substring(xa.length-Da.length-1,xa.length)=="-"+Da}return!1},u=function(xa){if(null!=d.getParentByName(da,xa,d.cellEditor.textarea))return!0;for(var Da=da;null!=Da&&1==Da.childNodes.length;)if(Da=Da.childNodes[0],Da.nodeName==xa)return!0;return!1},A=function(xa){for(;null!=xa&&xa!=d.cellEditor.textarea;){if("block"==mxUtils.getCurrentStyle(xa).display)return xa;xa=xa.parentNode}return null},B=mxUtils.getCurrentStyle(da),E=da==d.cellEditor.textarea||""==da.style.lineHeight?null: -da.style.lineHeight,N=da==d.cellEditor.textarea||""==da.style.fontSize?null:b(B);if(window.getSelection)for(var Q=da.getElementsByTagName("*"),W=window.getSelection(),ha=0;haD;D++)(function(ea){mxEvent.addListener(w[ea],"click",function(){f(w[ea],""==w[ea].style.backgroundImage)})})(D);var Xa=mxUtils.bind(this,function(ea,u,A){g=h.getSelectionState();ea=mxUtils.getValue(g.style, +mxConstants.STYLE_FONTSTYLE,0);f(w[0],(ea&mxConstants.FONT_BOLD)==mxConstants.FONT_BOLD);f(w[1],(ea&mxConstants.FONT_ITALIC)==mxConstants.FONT_ITALIC);f(w[2],(ea&mxConstants.FONT_UNDERLINE)==mxConstants.FONT_UNDERLINE);t.firstChild.nodeValue=mxUtils.getValue(g.style,mxConstants.STYLE_FONTFAMILY,Menus.prototype.defaultFont);f(z,"0"==mxUtils.getValue(g.style,mxConstants.STYLE_HORIZONTAL,"1"));if(A||document.activeElement!=W)ea=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_FONTSIZE,Menus.prototype.defaultFontSize)), +W.value=isNaN(ea)?"":ea+" "+Editor.fontSizeUnit;ea=mxUtils.getValue(g.style,mxConstants.STYLE_ALIGN,mxConstants.ALIGN_CENTER);f(E,ea==mxConstants.ALIGN_LEFT);f(G,ea==mxConstants.ALIGN_CENTER);f(I,ea==mxConstants.ALIGN_RIGHT);ea=mxUtils.getValue(g.style,mxConstants.STYLE_VERTICAL_ALIGN,mxConstants.ALIGN_MIDDLE);f(P,ea==mxConstants.ALIGN_TOP);f(L,ea==mxConstants.ALIGN_MIDDLE);f(U,ea==mxConstants.ALIGN_BOTTOM);ea=mxUtils.getValue(g.style,mxConstants.STYLE_LABEL_POSITION,mxConstants.ALIGN_CENTER);u=mxUtils.getValue(g.style, +mxConstants.STYLE_VERTICAL_LABEL_POSITION,mxConstants.ALIGN_MIDDLE);ia.value=ea==mxConstants.ALIGN_LEFT&&u==mxConstants.ALIGN_TOP?"topLeft":ea==mxConstants.ALIGN_CENTER&&u==mxConstants.ALIGN_TOP?"top":ea==mxConstants.ALIGN_RIGHT&&u==mxConstants.ALIGN_TOP?"topRight":ea==mxConstants.ALIGN_LEFT&&u==mxConstants.ALIGN_BOTTOM?"bottomLeft":ea==mxConstants.ALIGN_CENTER&&u==mxConstants.ALIGN_BOTTOM?"bottom":ea==mxConstants.ALIGN_RIGHT&&u==mxConstants.ALIGN_BOTTOM?"bottomRight":ea==mxConstants.ALIGN_LEFT?"left": +ea==mxConstants.ALIGN_RIGHT?"right":"center";ea=mxUtils.getValue(g.style,mxConstants.STYLE_TEXT_DIRECTION,mxConstants.DEFAULT_TEXT_DIRECTION);ea==mxConstants.TEXT_DIRECTION_RTL?O.value="rightToLeft":ea==mxConstants.TEXT_DIRECTION_LTR?O.value="leftToRight":ea!=mxConstants.TEXT_DIRECTION_AUTO&&g.html?ea==mxConstants.TEXT_DIRECTION_VERTICAL_LR?O.value="vertical-leftToRight":ea==mxConstants.TEXT_DIRECTION_VERTICAL_RL&&(O.value="vertical-rightToLeft"):O.value="automatic";if(A||document.activeElement!= +Ea)ea=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING,2)),Ea.value=isNaN(ea)?"":this.inUnit(ea)+" "+this.getUnit();if(A||document.activeElement!=Ba)ea=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_TOP,0)),Ba.value=isNaN(ea)?"":this.inUnit(ea)+" "+this.getUnit();if(A||document.activeElement!=Ia)ea=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_RIGHT,0)),Ia.value=isNaN(ea)?"":this.inUnit(ea)+" "+this.getUnit();if(A||document.activeElement!=La)ea=parseFloat(mxUtils.getValue(g.style, +mxConstants.STYLE_SPACING_BOTTOM,0)),La.value=isNaN(ea)?"":this.inUnit(ea)+" "+this.getUnit();if(A||document.activeElement!=Ha)ea=parseFloat(mxUtils.getValue(g.style,mxConstants.STYLE_SPACING_LEFT,0)),Ha.value=isNaN(ea)?"":this.inUnit(ea)+" "+this.getUnit()});var eb=this.installInputHandler(Ea,mxConstants.STYLE_SPACING,2,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var cb=this.installInputHandler(Ba,mxConstants.STYLE_SPACING_TOP,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var fb= +this.installInputHandler(Ia,mxConstants.STYLE_SPACING_RIGHT,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var pb=this.installInputHandler(La,mxConstants.STYLE_SPACING_BOTTOM,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);var gb=this.installInputHandler(Ha,mxConstants.STYLE_SPACING_LEFT,0,-999,999,this.getUnit(" "),null,this.isFloatUnit(),!0);this.addKeyHandler(W,Xa);this.addKeyHandler(Ea,Xa);this.addKeyHandler(Ba,Xa);this.addKeyHandler(Ia,Xa);this.addKeyHandler(La,Xa);this.addKeyHandler(Ha, +Xa);d.getModel().addListener(mxEvent.CHANGE,Xa);this.listeners.push({destroy:function(){d.getModel().removeListener(Xa)}});Xa();if(d.cellEditor.isContentEditing()){var Za=null,lb=!1;m=mxUtils.bind(this,function(){lb||(lb=!0,window.setTimeout(mxUtils.bind(this,function(){var ea=d.getSelectedEditingElement();if(null!=ea&&null!=d.cellEditor.textarea){var u=function(za,Aa){if(null!=za&&null!=Aa){if(za==Aa)return!0;if(za.length>Aa.length+1)return za.substring(za.length-Aa.length-1,za.length)=="-"+Aa}return!1}, +A=function(za){if(null!=d.getParentByName(ea,za,d.cellEditor.textarea))return!0;for(var Aa=ea;null!=Aa&&1==Aa.childNodes.length;)if(Aa=Aa.childNodes[0],Aa.nodeName==za)return!0;return!1},C=function(za){for(;null!=za&&za!=d.cellEditor.textarea;){if("block"==mxUtils.getCurrentStyle(za).display)return za;za=za.parentNode}return null},F=mxUtils.getCurrentStyle(ea),N=ea==d.cellEditor.textarea||""==ea.style.lineHeight?null:ea.style.lineHeight,S=ea==d.cellEditor.textarea||""==ea.style.fontSize?null:b(F); +if(window.getSelection)for(var X=ea.getElementsByTagName("*"),ha=window.getSelection(),fa=0;faC){G=function(S){mxEvent.addListener(S,"mouseenter",function(){S.style.opacity="1"});mxEvent.addListener(S,"mouseleave",function(){S.style.opacity="0.5"})};var I=document.createElement("div");I.className="geAdaptiveAsset";I.style.position="absolute";I.style.left="0px";I.style.top="0px";I.style.bottom="0px";I.style.width="24px";I.style.height="24px";I.style.margin="0px";I.style.cursor="pointer";I.style.opacity="0.5";I.style.backgroundRepeat= -"no-repeat";I.style.backgroundPosition="center center";I.style.backgroundSize="24px 24px";I.style.backgroundImage="url("+Editor.previousImage+")";var Z=I.cloneNode(!1);Z.style.backgroundImage="url("+Editor.nextImage+")";Z.style.left="";Z.style.right="2px";K.appendChild(I);K.appendChild(Z);mxEvent.addListener(I,"click",mxUtils.bind(this,function(){H(mxUtils.mod(this.format.currentStylePage-1,C))}));mxEvent.addListener(Z,"click",mxUtils.bind(this,function(){H(mxUtils.mod(this.format.currentStylePage+ -1,C))}));G(I);G(Z)}}else D();return a};DiagramStylePanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.darkModeChangedListener&&(this.editorUi.removeListener(this.darkModeChangedListener),this.darkModeChangedListener=null)};DiagramFormatPanel=function(a,b,e){BaseFormatPanel.call(this,a,b,e);this.init()};mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0; -DiagramFormatPanel.prototype.init=function(){var a=this.editorUi.editor.graph;this.container.appendChild(this.addView(this.createPanel()));a.isEnabled()&&(this.container.appendChild(this.addOptions(this.createPanel())),this.container.appendChild(this.addPaperSize(this.createPanel())),this.container.appendChild(this.addStyleOps(this.createPanel())))}; +d.style.height="21px";d.style.padding="0px";d.style.marginTop="-2px";d.style.boxSizing="border-box";d.style.textAlign="center";d.style.right="84px";d.style.width="64px";d.style.borderWidth="1px";d.style.borderStyle="solid";h=["none","arc","gap","sharp","line"];for(var g=0;gB){H=function(Y){mxEvent.addListener(Y,"mouseenter",function(){Y.style.opacity= +"1"});mxEvent.addListener(Y,"mouseleave",function(){Y.style.opacity="0.5"})};var L=document.createElement("div");L.className="geAdaptiveAsset";L.style.position="absolute";L.style.left="0px";L.style.top="0px";L.style.bottom="0px";L.style.width="24px";L.style.height="24px";L.style.margin="0px";L.style.cursor="pointer";L.style.opacity="0.5";L.style.backgroundRepeat="no-repeat";L.style.backgroundPosition="center center";L.style.backgroundSize="24px 24px";L.style.backgroundImage="url("+Editor.previousImage+ +")";var U=L.cloneNode(!1);U.style.backgroundImage="url("+Editor.nextImage+")";U.style.left="";U.style.right="2px";I.appendChild(L);I.appendChild(U);mxEvent.addListener(L,"click",mxUtils.bind(this,function(){G(mxUtils.mod(this.format.currentStylePage-1,B))}));mxEvent.addListener(U,"click",mxUtils.bind(this,function(){G(mxUtils.mod(this.format.currentStylePage+1,B))}));H(L);H(U)}}else E();return a};DiagramFormatPanel=function(a,b,e){BaseFormatPanel.call(this,a,b,e);this.init()}; +mxUtils.extend(DiagramFormatPanel,BaseFormatPanel);DiagramFormatPanel.showPageView=!0;DiagramFormatPanel.prototype.showBackgroundImageOption=!0;DiagramFormatPanel.prototype.init=function(){var a=this.editorUi.editor.graph;this.container.appendChild(this.addView(this.createPanel()));a.isEnabled()&&(this.container.appendChild(this.addOptions(this.createPanel())),this.container.appendChild(this.addPaperSize(this.createPanel())),this.container.appendChild(this.addStyleOps(this.createPanel())))}; DiagramFormatPanel.prototype.addView=function(a){var b=this.editorUi,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("view")));this.addGridOption(a);DiagramFormatPanel.showPageView&&a.appendChild(this.createOption(mxResources.get("pageView"),function(){return e.pageVisible},function(d){b.actions.get("pageView").funct()},{install:function(d){this.listener=function(){d(e.pageVisible)};b.addListener("pageViewChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})); if(e.isEnabled()){if(this.showBackgroundImageOption){var f=this.createOption(mxResources.get("background"),function(){return null!=e.backgroundImage},function(d){d||(d=new ChangePageSetup(b,null,null),d.ignoreColor=!0,e.model.execute(d))},{install:function(d){this.listener=function(){d(null!=e.backgroundImage)};b.addListener("backgroundImageChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}}),h=f.getElementsByTagName("input")[0];null!=h&&(h.style.visibility=null!=e.backgroundImage? "visible":"hidden");h=f.getElementsByTagName("div")[0];null!=h&&(h.style.display="inline-block",h.style.textOverflow="ellipsis",h.style.overflow="hidden",h.style.maxWidth="80px");mxClient.IS_FF&&(h.style.marginTop="1px");h=mxUtils.button(mxResources.get("change")+"...",function(d){b.showBackgroundImageDialog(null,b.editor.graph.backgroundImage,b.editor.graph.background);mxEvent.consume(d)});h.style.position="absolute";h.style.height="22px";h.style.left="47%";h.style.marginLeft="1px";h.style.width= "110px";h.style.maxWidth="110px";f.appendChild(h);a.appendChild(f)}f=this.createColorOption(mxResources.get("backgroundColor"),function(){return e.background},function(d){d=new ChangePageSetup(b,d);d.ignoreImage=!0;e.model.execute(d)},"#ffffff");f.style.padding="5px 0 1px 0";a.appendChild(f);f=this.createOption(mxResources.get("shadow"),function(){return e.shadowVisible},function(d){var g=new ChangePageSetup(b);g.ignoreColor=!0;g.ignoreImage=!0;g.shadowVisible=d;e.model.execute(g)},{install:function(d){this.listener= -function(){d(e.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.enableShadowOption||(f.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(f,60));f.style.display="inline-flex";f.style.width="100px";f.style.maxWidth="100px";f.style.marginRight="4px";a.appendChild(f);f=this.createOption(mxResources.get("sketch"),function(){return Editor.sketchMode},function(d){b.setSketchMode(d)},{install:function(d){this.listener= -function(){d(Editor.sketchMode)};b.addListener("sketchModeChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});f.style.display="inline-flex";f.style.width="104px";f.style.maxWidth="104px";a.appendChild(f)}return a}; +function(){d(e.shadowVisible)};b.addListener("shadowVisibleChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}});Editor.enableShadowOption||(f.getElementsByTagName("input")[0].setAttribute("disabled","disabled"),mxUtils.setOpacity(f,60));f.style.display="inline-flex";f.style.width="100px";f.style.maxWidth="100px";f.style.marginRight="4px";a.appendChild(f)}return a}; DiagramFormatPanel.prototype.addOptions=function(a){var b=this.editorUi,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("options")));e.isEnabled()&&(a.appendChild(this.createOption(mxResources.get("connectionArrows"),function(){return e.connectionArrowsEnabled},function(f){b.actions.get("connectionArrows").funct()},{install:function(f){this.listener=function(){f(e.connectionArrowsEnabled)};b.addListener("connectionArrowsChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})), a.appendChild(this.createOption(mxResources.get("connectionPoints"),function(){return e.connectionHandler.isEnabled()},function(f){b.actions.get("connectionPoints").funct()},{install:function(f){this.listener=function(){f(e.connectionHandler.isEnabled())};b.addListener("connectionPointsChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})),a.appendChild(this.createOption(mxResources.get("guides"),function(){return e.graphHandler.guidesEnabled},function(f){b.actions.get("guides").funct()}, {install:function(f){this.listener=function(){f(e.graphHandler.guidesEnabled)};b.addListener("guidesEnabledChanged",this.listener)},destroy:function(){b.removeListener(this.listener)}})));return a}; -DiagramFormatPanel.prototype.addGridOption=function(a){function b(q){var k=e.isFloatUnit()?parseFloat(d.value):parseInt(d.value);k=e.fromUnit(Math.max(e.inUnit(1),isNaN(k)?e.inUnit(10):k));k!=h.getGridSize()&&(mxGraph.prototype.gridSize=k,h.setGridSize(k));d.value=e.inUnit(k)+" "+e.getUnit();mxEvent.consume(q)}var e=this,f=this.editorUi,h=f.editor.graph,d=document.createElement("input");d.style.position="absolute";d.style.textAlign="right";d.style.width="48px";d.style.marginTop="-2px";d.style.height= -"21px";d.style.borderWidth="1px";d.style.borderStyle="solid";d.style.boxSizing="border-box";d.value=this.inUnit(h.getGridSize())+" "+this.getUnit();var g=this.createStepper(d,b,this.getUnitStep(),null,null,null,this.isFloatUnit());d.style.display=h.isGridEnabled()?"":"none";g.style.display=d.style.display;mxEvent.addListener(d,"keydown",function(q){13==q.keyCode?(h.container.focus(),mxEvent.consume(q)):27==q.keyCode&&(d.value=h.getGridSize(),h.container.focus(),mxEvent.consume(q))});mxEvent.addListener(d, -"blur",b);mxEvent.addListener(d,"change",b);d.style.right="78px";g.style.marginTop=mxClient.IS_MAC&&mxClient.IS_GC?"-16px":mxClient.IS_WIN?"-18px":"-17px";g.style.right="66px";var n=this.createColorOption(mxResources.get("grid"),function(){var q=h.view.gridColor;return h.isGridEnabled()?q:null},function(q){var k=h.isGridEnabled();q==mxConstants.NONE?h.setGridEnabled(!1):(h.setGridEnabled(!0),f.setGridColor(q));d.style.display=h.isGridEnabled()?"":"none";g.style.display=d.style.display;k!=h.isGridEnabled()&& -(h.defaultGridEnabled=h.isGridEnabled(),f.fireEvent(new mxEventObject("gridEnabledChanged")))},Editor.isDarkMode()?h.view.defaultDarkGridColor:h.view.defaultGridColor,{install:function(q){this.listener=function(){q(h.isGridEnabled()?h.view.gridColor:null)};f.addListener("gridColorChanged",this.listener);f.addListener("gridEnabledChanged",this.listener)},destroy:function(){f.removeListener(this.listener)}});n.style.padding="6px 0 0 0";n.appendChild(d);n.appendChild(g);a.appendChild(n)}; +DiagramFormatPanel.prototype.addGridOption=function(a){function b(k){var t=e.isFloatUnit()?parseFloat(d.value):parseInt(d.value);t=e.fromUnit(Math.max(e.inUnit(1),isNaN(t)?e.inUnit(10):t));t!=h.getGridSize()&&(mxGraph.prototype.gridSize=t,h.setGridSize(t));d.value=e.inUnit(t)+" "+e.getUnit();mxEvent.consume(k)}var e=this,f=this.editorUi,h=f.editor.graph,d=document.createElement("input");d.style.position="absolute";d.style.textAlign="right";d.style.width="48px";d.style.marginTop="-2px";d.style.height= +"21px";d.style.borderWidth="1px";d.style.borderStyle="solid";d.style.boxSizing="border-box";d.value=this.inUnit(h.getGridSize())+" "+this.getUnit();var g=this.createStepper(d,b,this.getUnitStep(),null,null,null,this.isFloatUnit());d.style.display=h.isGridEnabled()?"":"none";g.style.display=d.style.display;mxEvent.addListener(d,"keydown",function(k){13==k.keyCode?(h.container.focus(),mxEvent.consume(k)):27==k.keyCode&&(d.value=h.getGridSize(),h.container.focus(),mxEvent.consume(k))});mxEvent.addListener(d, +"blur",b);mxEvent.addListener(d,"change",b);d.style.left="104px";g.style.marginTop=mxClient.IS_MAC&&mxClient.IS_GC?"-16px":mxClient.IS_WIN?"-18px":"-17px";g.style.left="152px";var m="none"!=h.getAdaptiveColors()?null:!1,p=this.createColorOption(mxResources.get("grid"),function(){return h.isGridEnabled()?h.view.gridColor:null},function(k){var t=h.isGridEnabled();k==mxConstants.NONE?h.setGridEnabled(!1):(h.setGridEnabled(!0),f.setGridColor(k,m));d.style.display=h.isGridEnabled()?"":"none";g.style.display= +d.style.display;t!=h.isGridEnabled()&&(h.defaultGridEnabled=h.isGridEnabled(),f.fireEvent(new mxEventObject("gridEnabledChanged")))},h.view.gridColor,{install:function(k){this.listener=function(){k(h.isGridEnabled()?h.view.gridColor:null)};f.addListener("gridColorChanged",this.listener);f.addListener("gridEnabledChanged",this.listener)},destroy:function(){f.removeListener(this.listener)}},null,null,null,!0,m);p.style.padding="6px 0 0 0";p.appendChild(d);p.appendChild(g);a.appendChild(p)}; DiagramFormatPanel.prototype.addDocumentProperties=function(a){a.appendChild(this.createTitle(mxResources.get("options")));return a}; DiagramFormatPanel.prototype.addPaperSize=function(a){var b=this.editorUi,e=b.editor.graph;a.appendChild(this.createTitle(mxResources.get("paperSize")));var f=PageSetupDialog.addPageFormatPanel(a,"formatpanel",e.pageFormat,function(d){if(null==e.pageFormat||e.pageFormat.width!=d.width||e.pageFormat.height!=d.height)d=new ChangePageSetup(b,null,null,d),d.ignoreColor=!0,d.ignoreImage=!0,e.model.execute(d)});this.addKeyHandler(f.widthInput,function(){f.set(e.pageFormat)});this.addKeyHandler(f.heightInput, function(){f.set(e.pageFormat)});var h=function(){f.set(e.pageFormat)};b.addListener("pageFormatChanged",h);this.listeners.push({destroy:function(){b.removeListener(h)}});e.getModel().addListener(mxEvent.CHANGE,h);this.listeners.push({destroy:function(){e.getModel().removeListener(h)}});return a};DiagramFormatPanel.prototype.addStyleOps=function(a){this.addActions(a,["editData"]);this.addActions(a,["clearDefaultStyle"]);return a}; -DiagramFormatPanel.prototype.destroy=function(){BaseFormatPanel.prototype.destroy.apply(this,arguments);this.gridEnabledListener&&(this.editorUi.removeListener(this.gridEnabledListener),this.gridEnabledListener=null)};(function(){function a(c,l,t){mxShape.call(this);this.line=c;this.stroke=l;this.strokewidth=null!=t?t:1;this.updateBoundsFromLine()}function b(){mxSwimlane.call(this)}function e(){mxSwimlane.call(this)}function f(){mxCylinder.call(this)}function h(){mxConnector.call(this)}function d(){mxCylinder.call(this)}function g(){mxActor.call(this)}function n(){mxCylinder.call(this)}function q(){mxCylinder.call(this)}function k(){mxCylinder.call(this)}function p(){mxCylinder.call(this)}function w(){mxShape.call(this)} -function z(){mxShape.call(this)}function C(c,l,t,m){mxShape.call(this);this.bounds=c;this.fill=l;this.stroke=t;this.strokewidth=null!=m?m:1}function F(){mxActor.call(this)}function D(){mxCylinder.call(this)}function H(){mxCylinder.call(this)}function K(){mxActor.call(this)}function G(){mxActor.call(this)}function P(){mxActor.call(this)}function I(){mxActor.call(this)}function Z(){mxActor.call(this)}function S(){mxActor.call(this)}function Y(){mxActor.call(this)}function V(c,l){this.canvas=c;this.canvas.setLineJoin("round"); -this.canvas.setLineCap("round");this.defaultVariation=l;this.originalLineTo=this.canvas.lineTo;this.canvas.lineTo=mxUtils.bind(this,V.prototype.lineTo);this.originalMoveTo=this.canvas.moveTo;this.canvas.moveTo=mxUtils.bind(this,V.prototype.moveTo);this.originalClose=this.canvas.close;this.canvas.close=mxUtils.bind(this,V.prototype.close);this.originalQuadTo=this.canvas.quadTo;this.canvas.quadTo=mxUtils.bind(this,V.prototype.quadTo);this.originalCurveTo=this.canvas.curveTo;this.canvas.curveTo=mxUtils.bind(this, -V.prototype.curveTo);this.originalArcTo=this.canvas.arcTo;this.canvas.arcTo=mxUtils.bind(this,V.prototype.arcTo)}function L(){mxRectangleShape.call(this)}function U(){mxRectangleShape.call(this)}function ba(){mxActor.call(this)}function ja(){mxActor.call(this)}function sa(){mxActor.call(this)}function O(){mxRectangleShape.call(this)}function T(){mxRectangleShape.call(this)}function X(){mxCylinder.call(this)}function ca(){mxShape.call(this)}function na(){mxShape.call(this)}function pa(){mxEllipse.call(this)} -function M(){mxShape.call(this)}function ea(){mxShape.call(this)}function ra(){mxRectangleShape.call(this)}function ta(){mxShape.call(this)}function Sa(){mxShape.call(this)}function ma(){mxShape.call(this)}function Fa(){mxShape.call(this)}function Ha(){mxShape.call(this)}function Na(){mxCylinder.call(this)}function Qa(){mxCylinder.call(this)}function La(){mxRectangleShape.call(this)}function Ja(){mxDoubleEllipse.call(this)}function ua(){mxDoubleEllipse.call(this)}function Ia(){mxArrowConnector.call(this); -this.spacing=0}function Za(){mxArrowConnector.call(this);this.spacing=0}function gb(){mxActor.call(this)}function db(){mxRectangleShape.call(this)}function hb(){mxActor.call(this)}function ob(){mxActor.call(this)}function cb(){mxActor.call(this)}function ab(){mxActor.call(this)}function da(){mxActor.call(this)}function wa(){mxActor.call(this)}function u(){mxActor.call(this)}function A(){mxActor.call(this)}function B(){mxActor.call(this)}function E(){mxActor.call(this)}function N(){mxEllipse.call(this)} -function Q(){mxEllipse.call(this)}function W(){mxEllipse.call(this)}function ha(){mxRhombus.call(this)}function fa(){mxEllipse.call(this)}function ia(){mxEllipse.call(this)}function ya(){mxEllipse.call(this)}function xa(){mxEllipse.call(this)}function Da(){mxActor.call(this)}function Oa(){mxActor.call(this)}function Ma(){mxActor.call(this)}function Aa(c,l,t,m){mxShape.call(this);this.bounds=c;this.fill=l;this.stroke=t;this.strokewidth=null!=m?m:1;this.rectStyle="square";this.size=10;this.absoluteCornerSize= -!0;this.indent=2;this.rectOutline="single"}function va(){mxConnector.call(this)}function Ya(c,l,t,m,r,v,x,J,y,aa){x+=y;var R=m.clone();m.x-=r*(2*x+y);m.y-=v*(2*x+y);r*=x+y;v*=x+y;return function(){c.ellipse(R.x-r-x,R.y-v-x,2*x,2*x);aa?c.fillAndStroke():c.stroke()}}mxUtils.extend(a,mxShape);a.prototype.updateBoundsFromLine=function(){var c=null;if(null!=this.line)for(var l=0;lx?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(m-v,0),c.lineTo(m,v),c.lineTo(v, -v),c.close(),c.fill()),0!=J&&(c.setFillAlpha(Math.abs(J)),c.setFillColor(0>J?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(v,v),c.lineTo(v,r),c.lineTo(0,r-v),c.close(),c.fill()),c.begin(),c.moveTo(v,r),c.lineTo(v,v),c.lineTo(0,0),c.moveTo(v,v),c.lineTo(m,v),c.end(),c.stroke())};f.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?(c=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(c,c,0,0)):null};mxCellRenderer.registerShape("cube", -f);var Ta=Math.tan(mxUtils.toRadians(30)),Ka=(.5-Ta)/2;mxCellRenderer.registerShape("isoRectangle",g);mxUtils.extend(h,mxConnector);h.prototype.paintEdgeShape=function(c,l){var t=this.createMarker(c,l,!0),m=this.createMarker(c,l,!1);c.setDashed(!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);null!=this.isDashed&&c.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);c.setShadow(!1);c.setStrokeColor(this.fill);mxPolyline.prototype.paintEdgeShape.apply(this, -arguments);c.setStrokeColor(this.stroke);c.setFillColor(this.stroke);c.setDashed(!1);null!=t&&t();null!=m&&m()};mxCellRenderer.registerShape("wire",h);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(c,l,t,m,r){c.setFillColor(this.stroke);var v=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;c.ellipse(l+.5*(m-v),t+.5*(r-v),v,v);c.fill();c.setFillColor(mxConstants.NONE);c.rect(l,t,m,r);c.fill()};mxCellRenderer.registerShape("waypoint", -d);mxUtils.extend(g,mxActor);g.prototype.size=20;g.prototype.redrawPath=function(c,l,t,m,r){l=Math.min(m,r/Ta);c.translate((m-l)/2,(r-l)/2+l/4);c.moveTo(0,.25*l);c.lineTo(.5*l,l*Ka);c.lineTo(l,.25*l);c.lineTo(.5*l,(.5-Ka)*l);c.lineTo(0,.25*l);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",g);mxUtils.extend(n,mxCylinder);n.prototype.size=20;n.prototype.redrawPath=function(c,l,t,m,r,v){l=Math.min(m,r/(.5+Ta));v?(c.moveTo(0,.25*l),c.lineTo(.5*l,(.5-Ka)*l),c.lineTo(l,.25*l),c.moveTo(.5* -l,(.5-Ka)*l),c.lineTo(.5*l,(1-Ka)*l)):(c.translate((m-l)/2,(r-l)/2),c.moveTo(0,.25*l),c.lineTo(.5*l,l*Ka),c.lineTo(l,.25*l),c.lineTo(l,.75*l),c.lineTo(.5*l,(1-Ka)*l),c.lineTo(0,.75*l),c.close());c.end()};mxCellRenderer.registerShape("isoCube",n);mxUtils.extend(q,mxCylinder);q.prototype.redrawPath=function(c,l,t,m,r,v){l=Math.min(r/2,Math.round(r/8)+this.strokewidth-1);if(v&&null!=this.fill||!v&&null==this.fill)c.moveTo(0,l),c.curveTo(0,2*l,m,2*l,m,l),v||(c.stroke(),c.begin()),c.translate(0,l/2),c.moveTo(0, -l),c.curveTo(0,2*l,m,2*l,m,l),v||(c.stroke(),c.begin()),c.translate(0,l/2),c.moveTo(0,l),c.curveTo(0,2*l,m,2*l,m,l),v||(c.stroke(),c.begin()),c.translate(0,-l);v||(c.moveTo(0,l),c.curveTo(0,-l/3,m,-l/3,m,l),c.lineTo(m,r-l),c.curveTo(m,r+l/3,0,r+l/3,0,r-l),c.close())};q.prototype.getLabelMargins=function(c){return new mxRectangle(0,2.5*Math.min(c.height/2,Math.round(c.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",q);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity= -0;k.prototype.paintVertexShape=function(c,l,t,m,r){var v=Math.max(0,Math.min(m,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),x=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));c.translate(l,t);c.begin();c.moveTo(0,0);c.lineTo(m-v,0);c.lineTo(m,v);c.lineTo(m,r);c.lineTo(0,r);c.lineTo(0,0);c.close();c.end();c.fillAndStroke();this.outline||(c.setShadow(!1),0!=x&&(c.setFillAlpha(Math.abs(x)),c.setFillColor(0>x?"#FFFFFF":"#000000"), -c.begin(),c.moveTo(m-v,0),c.lineTo(m-v,v),c.lineTo(m,v),c.close(),c.fill()),c.begin(),c.moveTo(m-v,0),c.lineTo(m-v,v),c.lineTo(m,v),c.end(),c.stroke())};mxCellRenderer.registerShape("note",k);mxUtils.extend(p,k);mxCellRenderer.registerShape("note2",p);p.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,l*this.scale),0,0)}return null};mxUtils.extend(w,mxShape);w.prototype.isoAngle= -15;w.prototype.paintVertexShape=function(c,l,t,m,r){var v=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;v=Math.min(m*Math.tan(v),.5*r);c.translate(l,t);c.begin();c.moveTo(.5*m,0);c.lineTo(m,v);c.lineTo(m,r-v);c.lineTo(.5*m,r);c.lineTo(0,r-v);c.lineTo(0,v);c.close();c.fillAndStroke();c.setShadow(!1);c.begin();c.moveTo(0,v);c.lineTo(.5*m,2*v);c.lineTo(m,v);c.moveTo(.5*m,2*v);c.lineTo(.5*m,r);c.stroke()};mxCellRenderer.registerShape("isoCube2", -w);mxUtils.extend(z,mxShape);z.prototype.size=15;z.prototype.paintVertexShape=function(c,l,t,m,r){var v=Math.max(0,Math.min(.5*r,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(l,t);0==v?(c.rect(0,0,m,r),c.fillAndStroke()):(c.begin(),c.moveTo(0,v),c.arcTo(.5*m,v,0,0,1,.5*m,0),c.arcTo(.5*m,v,0,0,1,m,v),c.lineTo(m,r-v),c.arcTo(.5*m,v,0,0,1,.5*m,r),c.arcTo(.5*m,v,0,0,1,0,r-v),c.close(),c.fillAndStroke(),c.setShadow(!1),c.begin(),c.moveTo(m,v),c.arcTo(.5*m,v,0,0,1,.5*m,2*v),c.arcTo(.5* -m,v,0,0,1,0,v),c.stroke())};mxCellRenderer.registerShape("cylinder2",z);mxUtils.extend(C,mxCylinder);C.prototype.size=15;C.prototype.paintVertexShape=function(c,l,t,m,r){var v=Math.max(0,Math.min(.5*r,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),x=mxUtils.getValue(this.style,"lid",!0);c.translate(l,t);0==v?(c.rect(0,0,m,r),c.fillAndStroke()):(c.begin(),x?(c.moveTo(0,v),c.arcTo(.5*m,v,0,0,1,.5*m,0),c.arcTo(.5*m,v,0,0,1,m,v)):(c.moveTo(0,0),c.arcTo(.5*m,v,0,0,0,.5*m,v),c.arcTo(.5*m,v, -0,0,0,m,0)),c.lineTo(m,r-v),c.arcTo(.5*m,v,0,0,1,.5*m,r),c.arcTo(.5*m,v,0,0,1,0,r-v),c.close(),c.fillAndStroke(),c.setShadow(!1),x&&(c.begin(),c.moveTo(m,v),c.arcTo(.5*m,v,0,0,1,.5*m,2*v),c.arcTo(.5*m,v,0,0,1,0,v),c.stroke()))};mxCellRenderer.registerShape("cylinder3",C);mxUtils.extend(F,mxActor);F.prototype.redrawPath=function(c,l,t,m,r){c.moveTo(0,0);c.quadTo(m/2,.5*r,m,0);c.quadTo(.5*m,r/2,m,r);c.quadTo(m/2,.5*r,0,r);c.quadTo(.5*m,r/2,0,0);c.end()};mxCellRenderer.registerShape("switch",F);mxUtils.extend(D, -mxCylinder);D.prototype.tabWidth=60;D.prototype.tabHeight=20;D.prototype.tabPosition="right";D.prototype.arcSize=.1;D.prototype.paintVertexShape=function(c,l,t,m,r){c.translate(l,t);l=Math.max(0,Math.min(m,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));t=Math.max(0,Math.min(r,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var v=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),x=mxUtils.getValue(this.style,"rounded",!1),J=mxUtils.getValue(this.style, -"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));J||(y*=Math.min(m,r));y=Math.min(y,.5*m,.5*(r-t));l=Math.max(l,y);l=Math.min(m-y,l);x||(y=0);c.begin();"left"==v?(c.moveTo(Math.max(y,0),t),c.lineTo(Math.max(y,0),0),c.lineTo(l,0),c.lineTo(l,t)):(c.moveTo(m-l,t),c.lineTo(m-l,0),c.lineTo(m-Math.max(y,0),0),c.lineTo(m-Math.max(y,0),t));x?(c.moveTo(0,y+t),c.arcTo(y,y,0,0,1,y,t),c.lineTo(m-y,t),c.arcTo(y,y,0,0,1,m,y+t),c.lineTo(m,r-y),c.arcTo(y,y,0,0,1,m-y,r),c.lineTo(y, -r),c.arcTo(y,y,0,0,1,0,r-y)):(c.moveTo(0,t),c.lineTo(m,t),c.lineTo(m,r),c.lineTo(0,r));c.close();c.fillAndStroke();c.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(c.begin(),c.moveTo(m-30,t+20),c.lineTo(m-20,t+10),c.lineTo(m-10,t+20),c.close(),c.stroke())};mxCellRenderer.registerShape("folder",D);D.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style, -"labelInHeader",!1)){var t=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var m=mxUtils.getValue(this.style,"rounded",!1),r=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));r||(v*=Math.min(c.width,c.height));v=Math.min(v,.5*c.width,.5*(c.height-l));m||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(c.width,c.width- -t),Math.min(c.height,c.height-l)):new mxRectangle(Math.min(c.width,c.width-t),0,v,Math.min(c.height,c.height-l))}return new mxRectangle(0,Math.min(c.height,l),0,0)}return null};mxUtils.extend(H,mxCylinder);H.prototype.arcSize=.1;H.prototype.paintVertexShape=function(c,l,t,m,r){c.translate(l,t);var v=mxUtils.getValue(this.style,"rounded",!1),x=mxUtils.getValue(this.style,"absoluteArcSize",!1);l=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));t=mxUtils.getValue(this.style,"umlStateConnection", -null);x||(l*=Math.min(m,r));l=Math.min(l,.5*m,.5*r);v||(l=0);v=0;null!=t&&(v=10);c.begin();c.moveTo(v,l);c.arcTo(l,l,0,0,1,v+l,0);c.lineTo(m-l,0);c.arcTo(l,l,0,0,1,m,l);c.lineTo(m,r-l);c.arcTo(l,l,0,0,1,m-l,r);c.lineTo(v+l,r);c.arcTo(l,l,0,0,1,v,r-l);c.close();c.fillAndStroke();c.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(c.roundrect(m-40,r-20,10,10,3,3),c.stroke(),c.roundrect(m-20,r-20,10,10,3,3),c.stroke(),c.begin(),c.moveTo(m-30,r-15),c.lineTo(m-20,r-15), -c.stroke());"connPointRefEntry"==t?(c.ellipse(0,.5*r-10,20,20),c.fillAndStroke()):"connPointRefExit"==t&&(c.ellipse(0,.5*r-10,20,20),c.fillAndStroke(),c.begin(),c.moveTo(5,.5*r-5),c.lineTo(15,.5*r+5),c.moveTo(15,.5*r-5),c.lineTo(5,.5*r+5),c.stroke())};H.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",H);mxUtils.extend(K, -mxActor);K.prototype.size=30;K.prototype.isRoundable=function(){return!0};K.prototype.redrawPath=function(c,l,t,m,r){l=Math.max(0,Math.min(m,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(l,0),new mxPoint(m,0),new mxPoint(m,r),new mxPoint(0,r),new mxPoint(0,l)],this.isRounded,t,!0);c.end()};mxCellRenderer.registerShape("card",K);mxUtils.extend(G,mxActor);G.prototype.size= -.4;G.prototype.redrawPath=function(c,l,t,m,r){l=r*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,l/2);c.quadTo(m/4,1.4*l,m/2,l/2);c.quadTo(3*m/4,l*(1-1.4),m,l/2);c.lineTo(m,r-l/2);c.quadTo(3*m/4,r-1.4*l,m/2,r-l/2);c.quadTo(m/4,r-l*(1-1.4),0,r-l/2);c.lineTo(0,l/2);c.close();c.end()};G.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",this.size),t=c.width,m=c.height;if(null==this.direction|| -this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return l*=m,new mxRectangle(c.x,c.y+l,t,m-2*l);l*=t;return new mxRectangle(c.x+l,c.y,t-2*l,m)}return c};mxCellRenderer.registerShape("tape",G);mxUtils.extend(P,mxActor);P.prototype.size=.3;P.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*c.height):null};P.prototype.redrawPath=function(c,l,t, -m,r){l=r*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,0);c.lineTo(m,0);c.lineTo(m,r-l/2);c.quadTo(3*m/4,r-1.4*l,m/2,r-l/2);c.quadTo(m/4,r-l*(1-1.4),0,r-l/2);c.lineTo(0,l/2);c.close();c.end()};mxCellRenderer.registerShape("document",P);var Wa=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,l,t,m){var r=mxUtils.getValue(this.style,"size");return null!=r?m*Math.max(0,Math.min(1,r)):Wa.apply(this,arguments)};mxCylinder.prototype.getLabelMargins= -function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,c.height*l),0,0)}return null};C.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(l/=2);return new mxRectangle(0,Math.min(c.height*this.scale,2*l*this.scale),0,Math.max(0,.3*l*this.scale))}return null};D.prototype.getLabelMargins= -function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var t=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var m=mxUtils.getValue(this.style,"rounded",!1),r=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));r||(v*=Math.min(c.width,c.height));v=Math.min(v, -.5*c.width,.5*(c.height-l));m||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(c.width,c.width-t),Math.min(c.height,c.height-l)):new mxRectangle(Math.min(c.width,c.width-t),0,v,Math.min(c.height,c.height-l))}return new mxRectangle(0,Math.min(c.height,l),0,0)}return null};H.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10* -this.scale,0,0,0):null};p.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,l*this.scale),0,Math.max(0,l*this.scale))}return null};mxUtils.extend(I,mxActor);I.prototype.size=.2;I.prototype.fixedSize=20;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(c,l,t,m,r){l="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(m,parseFloat(mxUtils.getValue(this.style, -"size",this.fixedSize)))):m*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,r),new mxPoint(l,0),new mxPoint(m,0),new mxPoint(m-l,r)],this.isRounded,t,!0);c.end()};mxCellRenderer.registerShape("parallelogram",I);mxUtils.extend(Z,mxActor);Z.prototype.size=.2;Z.prototype.fixedSize=20;Z.prototype.isRoundable=function(){return!0};Z.prototype.redrawPath=function(c, -l,t,m,r){l="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*m,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):m*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,r),new mxPoint(l,0),new mxPoint(m-l,0),new mxPoint(m,r)],this.isRounded,t,!0)};mxCellRenderer.registerShape("trapezoid",Z);mxUtils.extend(S,mxActor); -S.prototype.size=.5;S.prototype.redrawPath=function(c,l,t,m,r){c.setFillColor(null);l=m*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));t=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(m,0),new mxPoint(l,0),new mxPoint(l,r/2),new mxPoint(0,r/2),new mxPoint(l,r/2),new mxPoint(l,r),new mxPoint(m,r)],this.isRounded,t,!1);c.end()};mxCellRenderer.registerShape("curlyBracket",S);mxUtils.extend(Y,mxActor); -Y.prototype.redrawPath=function(c,l,t,m,r){c.setStrokeWidth(1);c.setFillColor(this.stroke);l=m/5;c.rect(0,0,l,r);c.fillAndStroke();c.rect(2*l,0,l,r);c.fillAndStroke();c.rect(4*l,0,l,r);c.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",Y);V.prototype.moveTo=function(c,l){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=l;this.firstX=c;this.firstY=l};V.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas, -arguments));this.originalClose.apply(this.canvas,arguments)};V.prototype.quadTo=function(c,l,t,m){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=t;this.lastY=m};V.prototype.curveTo=function(c,l,t,m,r,v){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=r;this.lastY=v};V.prototype.arcTo=function(c,l,t,m,r,v,x){this.originalArcTo.apply(this.canvas,arguments);this.lastX=v;this.lastY=x};V.prototype.lineTo=function(c,l){if(null!=this.lastX&&null!=this.lastY){var t=function(R){return"number"=== -typeof R?R?0>R?-1:1:R===R?0:NaN:NaN},m=Math.abs(c-this.lastX),r=Math.abs(l-this.lastY),v=Math.sqrt(m*m+r*r);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=l;return}var x=Math.round(v/10),J=this.defaultVariation;5>x&&(x=5,J/=3);var y=t(c-this.lastX)*m/x;t=t(l-this.lastY)*r/x;m/=v;r/=v;for(v=0;vx+y?c.y=t.y:c.x=t.x);return mxUtils.getPerimeterPoint(J,c,t)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,l,t,m){var r="0"!=mxUtils.getValue(l.style,"fixedSize","0"),v=r?Z.prototype.fixedSize:Z.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));r&&(v*=l.view.scale); -var x=c.x,J=c.y,y=c.width,aa=c.height;l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_EAST?(r=r?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(x+r,J),new mxPoint(x+y-r,J),new mxPoint(x+y,J+aa),new mxPoint(x,J+aa),new mxPoint(x+r,J)]):l==mxConstants.DIRECTION_WEST?(r=r?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(x,J),new mxPoint(x+y,J),new mxPoint(x+y-r,J+ -aa),new mxPoint(x+r,J+aa),new mxPoint(x,J)]):l==mxConstants.DIRECTION_NORTH?(r=r?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),J=[new mxPoint(x,J+r),new mxPoint(x+y,J),new mxPoint(x+y,J+aa),new mxPoint(x,J+aa-r),new mxPoint(x,J+r)]):(r=r?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),J=[new mxPoint(x,J),new mxPoint(x+y,J+r),new mxPoint(x+y,J+aa-r),new mxPoint(x,J+aa),new mxPoint(x,J)]);aa=c.getCenterX();c=c.getCenterY();c=new mxPoint(aa,c);m&&(t.xx+y?c.y=t.y:c.x=t.x);return mxUtils.getPerimeterPoint(J, -c,t)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,l,t,m){var r="0"!=mxUtils.getValue(l.style,"fixedSize","0"),v=r?ja.prototype.fixedSize:ja.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));r&&(v*=l.view.scale);var x=c.x,J=c.y,y=c.width,aa=c.height,R=c.getCenterX();c=c.getCenterY();l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_EAST? -(r=r?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(x,J),new mxPoint(x+y-r,J),new mxPoint(x+y,c),new mxPoint(x+y-r,J+aa),new mxPoint(x,J+aa),new mxPoint(x+r,c),new mxPoint(x,J)]):l==mxConstants.DIRECTION_WEST?(r=r?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(x+r,J),new mxPoint(x+y,J),new mxPoint(x+y-r,c),new mxPoint(x+y,J+aa),new mxPoint(x+r,J+aa),new mxPoint(x,c),new mxPoint(x+r,J)]):l==mxConstants.DIRECTION_NORTH?(r=r?Math.max(0,Math.min(aa,v)):aa*Math.max(0, -Math.min(1,v)),J=[new mxPoint(x,J+r),new mxPoint(R,J),new mxPoint(x+y,J+r),new mxPoint(x+y,J+aa),new mxPoint(R,J+aa-r),new mxPoint(x,J+aa),new mxPoint(x,J+r)]):(r=r?Math.max(0,Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),J=[new mxPoint(x,J),new mxPoint(R,J+r),new mxPoint(x+y,J),new mxPoint(x+y,J+aa-r),new mxPoint(R,J+aa),new mxPoint(x,J+aa-r),new mxPoint(x,J)]);R=new mxPoint(R,c);m&&(t.xx+y?R.y=t.y:R.x=t.x);return mxUtils.getPerimeterPoint(J,R,t)};mxStyleRegistry.putValue("stepPerimeter", -mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,l,t,m){var r="0"!=mxUtils.getValue(l.style,"fixedSize","0"),v=r?sa.prototype.fixedSize:sa.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));r&&(v*=l.view.scale);var x=c.x,J=c.y,y=c.width,aa=c.height,R=c.getCenterX();c=c.getCenterY();l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_NORTH||l==mxConstants.DIRECTION_SOUTH?(r=r?Math.max(0, -Math.min(aa,v)):aa*Math.max(0,Math.min(1,v)),J=[new mxPoint(R,J),new mxPoint(x+y,J+r),new mxPoint(x+y,J+aa-r),new mxPoint(R,J+aa),new mxPoint(x,J+aa-r),new mxPoint(x,J+r),new mxPoint(R,J)]):(r=r?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),J=[new mxPoint(x+r,J),new mxPoint(x+y-r,J),new mxPoint(x+y,c),new mxPoint(x+y-r,J+aa),new mxPoint(x+r,J+aa),new mxPoint(x,c),new mxPoint(x+r,J)]);R=new mxPoint(R,c);m&&(t.xx+y?R.y=t.y:R.x=t.x);return mxUtils.getPerimeterPoint(J,R,t)};mxStyleRegistry.putValue("hexagonPerimeter2", -mxPerimeter.HexagonPerimeter2);mxUtils.extend(Sa,mxShape);Sa.prototype.size=10;Sa.prototype.paintBackground=function(c,l,t,m,r){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(l,t);c.ellipse((m-v)/2,0,v,v);c.fillAndStroke();c.begin();c.moveTo(m/2,v);c.lineTo(m/2,r);c.end();c.stroke()};mxCellRenderer.registerShape("lollipop",Sa);mxUtils.extend(ma,mxShape);ma.prototype.size=10;ma.prototype.inset=2;ma.prototype.paintBackground=function(c,l,t,m,r){var v=parseFloat(mxUtils.getValue(this.style, -"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(l,t);c.begin();c.moveTo(m/2,v+x);c.lineTo(m/2,r);c.end();c.stroke();c.begin();c.moveTo((m-v)/2-x,v/2);c.quadTo((m-v)/2-x,v+x,m/2,v+x);c.quadTo((m+v)/2+x,v+x,(m+v)/2+x,v/2);c.end();c.stroke()};mxCellRenderer.registerShape("requires",ma);mxUtils.extend(Fa,mxShape);Fa.prototype.paintBackground=function(c,l,t,m,r){c.translate(l,t);c.begin();c.moveTo(0,0);c.quadTo(m,0,m,r/2);c.quadTo(m,r,0,r); -c.end();c.stroke()};mxCellRenderer.registerShape("requiredInterface",Fa);mxUtils.extend(Ha,mxShape);Ha.prototype.inset=2;Ha.prototype.paintBackground=function(c,l,t,m,r){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(l,t);c.ellipse(0,v,m-2*v,r-2*v);c.fillAndStroke();c.begin();c.moveTo(m/2,0);c.quadTo(m,0,m,r/2);c.quadTo(m,r,m/2,r);c.end();c.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",Ha);mxUtils.extend(Na,mxCylinder);Na.prototype.jettyWidth= -20;Na.prototype.jettyHeight=10;Na.prototype.redrawPath=function(c,l,t,m,r,v){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));l=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));t=x/2;x=t+x/2;var J=Math.min(l,r-l),y=Math.min(J+2*l,r-l);v?(c.moveTo(t,J),c.lineTo(x,J),c.lineTo(x,J+l),c.lineTo(t,J+l),c.moveTo(t,y),c.lineTo(x,y),c.lineTo(x,y+l),c.lineTo(t,y+l)):(c.moveTo(t,0),c.lineTo(m,0),c.lineTo(m,r),c.lineTo(t,r),c.lineTo(t,y+l),c.lineTo(0,y+l),c.lineTo(0, -y),c.lineTo(t,y),c.lineTo(t,J+l),c.lineTo(0,J+l),c.lineTo(0,J),c.lineTo(t,J),c.close());c.end()};mxCellRenderer.registerShape("module",Na);mxUtils.extend(Qa,mxCylinder);Qa.prototype.jettyWidth=32;Qa.prototype.jettyHeight=12;Qa.prototype.redrawPath=function(c,l,t,m,r,v){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));l=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));t=x/2;x=t+x/2;var J=.3*r-l/2,y=.7*r-l/2;v?(c.moveTo(t,J),c.lineTo(x,J),c.lineTo(x, -J+l),c.lineTo(t,J+l),c.moveTo(t,y),c.lineTo(x,y),c.lineTo(x,y+l),c.lineTo(t,y+l)):(c.moveTo(t,0),c.lineTo(m,0),c.lineTo(m,r),c.lineTo(t,r),c.lineTo(t,y+l),c.lineTo(0,y+l),c.lineTo(0,y),c.lineTo(t,y),c.lineTo(t,J+l),c.lineTo(0,J+l),c.lineTo(0,J),c.lineTo(t,J),c.close());c.end()};mxCellRenderer.registerShape("component",Qa);mxUtils.extend(La,mxRectangleShape);La.prototype.paintForeground=function(c,l,t,m,r){var v=m/2,x=r/2,J=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/ -2;c.begin();this.addPoints(c,[new mxPoint(l+v,t),new mxPoint(l+m,t+x),new mxPoint(l+v,t+r),new mxPoint(l,t+x)],this.isRounded,J,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",La);mxUtils.extend(Ja,mxDoubleEllipse);Ja.prototype.outerStroke=!0;Ja.prototype.paintVertexShape=function(c,l,t,m,r){var v=Math.min(4,Math.min(m/5,r/5));0x?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(n-v,0),c.lineTo(n,v),c.lineTo(v, +v),c.close(),c.fill()),0!=K&&(c.setFillAlpha(Math.abs(K)),c.setFillColor(0>K?"#FFFFFF":"#000000"),c.begin(),c.moveTo(0,0),c.lineTo(v,v),c.lineTo(v,q),c.lineTo(0,q-v),c.close(),c.fill()),c.begin(),c.moveTo(v,q),c.lineTo(v,v),c.lineTo(0,0),c.moveTo(v,v),c.lineTo(n,v),c.end(),c.stroke())};f.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?(c=parseFloat(mxUtils.getValue(this.style,"size",this.size))*this.scale,new mxRectangle(c,c,0,0)):null};mxCellRenderer.registerShape("cube", +f);var Ra=Math.tan(mxUtils.toRadians(30)),Ma=(.5-Ra)/2;mxCellRenderer.registerShape("isoRectangle",g);mxUtils.extend(h,mxConnector);h.prototype.paintEdgeShape=function(c,l){var r=this.createMarker(c,l,!0),n=this.createMarker(c,l,!1);c.setDashed(!1);mxPolyline.prototype.paintEdgeShape.apply(this,arguments);null!=this.isDashed&&c.setDashed(this.isDashed,null!=this.style?1==mxUtils.getValue(this.style,mxConstants.STYLE_FIX_DASH,!1):!1);c.setShadow(!1);c.setStrokeColor(this.fill);mxPolyline.prototype.paintEdgeShape.apply(this, +arguments);c.setStrokeColor(this.stroke);c.setFillColor(this.stroke);c.setDashed(!1);null!=r&&r();null!=n&&n()};mxCellRenderer.registerShape("wire",h);mxUtils.extend(d,mxCylinder);d.prototype.size=6;d.prototype.paintVertexShape=function(c,l,r,n,q){c.setFillColor(this.stroke);var v=Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size))-2)+2*this.strokewidth;c.ellipse(l+.5*(n-v),r+.5*(q-v),v,v);c.fill();c.setFillColor(mxConstants.NONE);c.rect(l,r,n,q);c.fill()};mxCellRenderer.registerShape("waypoint", +d);mxUtils.extend(g,mxActor);g.prototype.size=20;g.prototype.redrawPath=function(c,l,r,n,q){l=Math.min(n,q/Ra);c.translate((n-l)/2,(q-l)/2+l/4);c.moveTo(0,.25*l);c.lineTo(.5*l,l*Ma);c.lineTo(l,.25*l);c.lineTo(.5*l,(.5-Ma)*l);c.lineTo(0,.25*l);c.close();c.end()};mxCellRenderer.registerShape("isoRectangle",g);mxUtils.extend(m,mxCylinder);m.prototype.size=20;m.prototype.redrawPath=function(c,l,r,n,q,v){l=Math.min(n,q/(.5+Ra));v?(c.moveTo(0,.25*l),c.lineTo(.5*l,(.5-Ma)*l),c.lineTo(l,.25*l),c.moveTo(.5* +l,(.5-Ma)*l),c.lineTo(.5*l,(1-Ma)*l)):(c.translate((n-l)/2,(q-l)/2),c.moveTo(0,.25*l),c.lineTo(.5*l,l*Ma),c.lineTo(l,.25*l),c.lineTo(l,.75*l),c.lineTo(.5*l,(1-Ma)*l),c.lineTo(0,.75*l),c.close());c.end()};mxCellRenderer.registerShape("isoCube",m);mxUtils.extend(p,mxCylinder);p.prototype.redrawPath=function(c,l,r,n,q,v){l=Math.min(q/2,Math.round(q/8)+this.strokewidth-1);if(v&&null!=this.fill||!v&&null==this.fill)c.moveTo(0,l),c.curveTo(0,2*l,n,2*l,n,l),v||(c.stroke(),c.begin()),c.translate(0,l/2),c.moveTo(0, +l),c.curveTo(0,2*l,n,2*l,n,l),v||(c.stroke(),c.begin()),c.translate(0,l/2),c.moveTo(0,l),c.curveTo(0,2*l,n,2*l,n,l),v||(c.stroke(),c.begin()),c.translate(0,-l);v||(c.moveTo(0,l),c.curveTo(0,-l/3,n,-l/3,n,l),c.lineTo(n,q-l),c.curveTo(n,q+l/3,0,q+l/3,0,q-l),c.close())};p.prototype.getLabelMargins=function(c){return new mxRectangle(0,2.5*Math.min(c.height/2,Math.round(c.height/8)+this.strokewidth-1),0,0)};mxCellRenderer.registerShape("datastore",p);mxUtils.extend(k,mxCylinder);k.prototype.size=30;k.prototype.darkOpacity= +0;k.prototype.paintVertexShape=function(c,l,r,n,q){var v=Math.max(0,Math.min(n,Math.min(q,parseFloat(mxUtils.getValue(this.style,"size",this.size))))),x=Math.max(-1,Math.min(1,parseFloat(mxUtils.getValue(this.style,"darkOpacity",this.darkOpacity))));c.translate(l,r);c.begin();c.moveTo(0,0);c.lineTo(n-v,0);c.lineTo(n,v);c.lineTo(n,q);c.lineTo(0,q);c.lineTo(0,0);c.close();c.end();c.fillAndStroke();this.outline||(c.setShadow(!1),0!=x&&(c.setFillAlpha(Math.abs(x)),c.setFillColor(0>x?"#FFFFFF":"#000000"), +c.begin(),c.moveTo(n-v,0),c.lineTo(n-v,v),c.lineTo(n,v),c.close(),c.fill()),c.begin(),c.moveTo(n-v,0),c.lineTo(n-v,v),c.lineTo(n,v),c.end(),c.stroke())};mxCellRenderer.registerShape("note",k);mxUtils.extend(t,k);mxCellRenderer.registerShape("note2",t);t.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,l*this.scale),0,0)}return null};mxUtils.extend(w,mxShape);w.prototype.isoAngle= +15;w.prototype.paintVertexShape=function(c,l,r,n,q){var v=Math.max(.01,Math.min(94,parseFloat(mxUtils.getValue(this.style,"isoAngle",this.isoAngle))))*Math.PI/200;v=Math.min(n*Math.tan(v),.5*q);c.translate(l,r);c.begin();c.moveTo(.5*n,0);c.lineTo(n,v);c.lineTo(n,q-v);c.lineTo(.5*n,q);c.lineTo(0,q-v);c.lineTo(0,v);c.close();c.fillAndStroke();c.setShadow(!1);c.begin();c.moveTo(0,v);c.lineTo(.5*n,2*v);c.lineTo(n,v);c.moveTo(.5*n,2*v);c.lineTo(.5*n,q);c.stroke()};mxCellRenderer.registerShape("isoCube2", +w);mxUtils.extend(z,mxShape);z.prototype.size=15;z.prototype.paintVertexShape=function(c,l,r,n,q){var v=Math.max(0,Math.min(.5*q,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.translate(l,r);0==v?(c.rect(0,0,n,q),c.fillAndStroke()):(c.begin(),c.moveTo(0,v),c.arcTo(.5*n,v,0,0,1,.5*n,0),c.arcTo(.5*n,v,0,0,1,n,v),c.lineTo(n,q-v),c.arcTo(.5*n,v,0,0,1,.5*n,q),c.arcTo(.5*n,v,0,0,1,0,q-v),c.close(),c.fillAndStroke(),c.setShadow(!1),c.begin(),c.moveTo(n,v),c.arcTo(.5*n,v,0,0,1,.5*n,2*v),c.arcTo(.5* +n,v,0,0,1,0,v),c.stroke())};mxCellRenderer.registerShape("cylinder2",z);mxUtils.extend(B,mxCylinder);B.prototype.size=15;B.prototype.paintVertexShape=function(c,l,r,n,q){var v=Math.max(0,Math.min(.5*q,parseFloat(mxUtils.getValue(this.style,"size",this.size)))),x=mxUtils.getValue(this.style,"lid",!0);c.translate(l,r);0==v?(c.rect(0,0,n,q),c.fillAndStroke()):(c.begin(),x?(c.moveTo(0,v),c.arcTo(.5*n,v,0,0,1,.5*n,0),c.arcTo(.5*n,v,0,0,1,n,v)):(c.moveTo(0,0),c.arcTo(.5*n,v,0,0,0,.5*n,v),c.arcTo(.5*n,v, +0,0,0,n,0)),c.lineTo(n,q-v),c.arcTo(.5*n,v,0,0,1,.5*n,q),c.arcTo(.5*n,v,0,0,1,0,q-v),c.close(),c.fillAndStroke(),c.setShadow(!1),x&&(c.begin(),c.moveTo(n,v),c.arcTo(.5*n,v,0,0,1,.5*n,2*v),c.arcTo(.5*n,v,0,0,1,0,v),c.stroke()))};mxCellRenderer.registerShape("cylinder3",B);mxUtils.extend(D,mxActor);D.prototype.redrawPath=function(c,l,r,n,q){c.moveTo(0,0);c.quadTo(n/2,.5*q,n,0);c.quadTo(.5*n,q/2,n,q);c.quadTo(n/2,.5*q,0,q);c.quadTo(.5*n,q/2,0,0);c.end()};mxCellRenderer.registerShape("switch",D);mxUtils.extend(E, +mxCylinder);E.prototype.tabWidth=60;E.prototype.tabHeight=20;E.prototype.tabPosition="right";E.prototype.arcSize=.1;E.prototype.paintVertexShape=function(c,l,r,n,q){c.translate(l,r);l=Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth))));r=Math.max(0,Math.min(q,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));var v=mxUtils.getValue(this.style,"tabPosition",this.tabPosition),x=mxUtils.getValue(this.style,"rounded",!1),K=mxUtils.getValue(this.style, +"absoluteArcSize",!1),y=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));K||(y*=Math.min(n,q));y=Math.min(y,.5*n,.5*(q-r));l=Math.max(l,y);l=Math.min(n-y,l);x||(y=0);c.begin();"left"==v?(c.moveTo(Math.max(y,0),r),c.lineTo(Math.max(y,0),0),c.lineTo(l,0),c.lineTo(l,r)):(c.moveTo(n-l,r),c.lineTo(n-l,0),c.lineTo(n-Math.max(y,0),0),c.lineTo(n-Math.max(y,0),r));x?(c.moveTo(0,y+r),c.arcTo(y,y,0,0,1,y,r),c.lineTo(n-y,r),c.arcTo(y,y,0,0,1,n,y+r),c.lineTo(n,q-y),c.arcTo(y,y,0,0,1,n-y,q),c.lineTo(y, +q),c.arcTo(y,y,0,0,1,0,q-y)):(c.moveTo(0,r),c.lineTo(n,r),c.lineTo(n,q),c.lineTo(0,q));c.close();c.fillAndStroke();c.setShadow(!1);"triangle"==mxUtils.getValue(this.style,"folderSymbol",null)&&(c.begin(),c.moveTo(n-30,r+20),c.lineTo(n-20,r+10),c.lineTo(n-10,r+20),c.close(),c.stroke())};mxCellRenderer.registerShape("folder",E);E.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style, +"labelInHeader",!1)){var r=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var n=mxUtils.getValue(this.style,"rounded",!1),q=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));q||(v*=Math.min(c.width,c.height));v=Math.min(v,.5*c.width,.5*(c.height-l));n||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(c.width,c.width- +r),Math.min(c.height,c.height-l)):new mxRectangle(Math.min(c.width,c.width-r),0,v,Math.min(c.height,c.height-l))}return new mxRectangle(0,Math.min(c.height,l),0,0)}return null};mxUtils.extend(G,mxCylinder);G.prototype.arcSize=.1;G.prototype.paintVertexShape=function(c,l,r,n,q){c.translate(l,r);var v=mxUtils.getValue(this.style,"rounded",!1),x=mxUtils.getValue(this.style,"absoluteArcSize",!1);l=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));r=mxUtils.getValue(this.style,"umlStateConnection", +null);x||(l*=Math.min(n,q));l=Math.min(l,.5*n,.5*q);v||(l=0);v=0;null!=r&&(v=10);c.begin();c.moveTo(v,l);c.arcTo(l,l,0,0,1,v+l,0);c.lineTo(n-l,0);c.arcTo(l,l,0,0,1,n,l);c.lineTo(n,q-l);c.arcTo(l,l,0,0,1,n-l,q);c.lineTo(v+l,q);c.arcTo(l,l,0,0,1,v,q-l);c.close();c.fillAndStroke();c.setShadow(!1);"collapseState"==mxUtils.getValue(this.style,"umlStateSymbol",null)&&(c.roundrect(n-40,q-20,10,10,3,3),c.stroke(),c.roundrect(n-20,q-20,10,10,3,3),c.stroke(),c.begin(),c.moveTo(n-30,q-15),c.lineTo(n-20,q-15), +c.stroke());"connPointRefEntry"==r?(c.ellipse(0,.5*q-10,20,20),c.fillAndStroke()):"connPointRefExit"==r&&(c.ellipse(0,.5*q-10,20,20),c.fillAndStroke(),c.begin(),c.moveTo(5,.5*q-5),c.lineTo(15,.5*q+5),c.moveTo(15,.5*q-5),c.lineTo(5,.5*q+5),c.stroke())};G.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10*this.scale,0,0,0):null};mxCellRenderer.registerShape("umlState",G);mxUtils.extend(I, +mxActor);I.prototype.size=30;I.prototype.isRoundable=function(){return!0};I.prototype.redrawPath=function(c,l,r,n,q){l=Math.max(0,Math.min(n,Math.min(q,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(l,0),new mxPoint(n,0),new mxPoint(n,q),new mxPoint(0,q),new mxPoint(0,l)],this.isRounded,r,!0);c.end()};mxCellRenderer.registerShape("card",I);mxUtils.extend(H,mxActor);H.prototype.size= +.4;H.prototype.redrawPath=function(c,l,r,n,q){l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,l/2);c.quadTo(n/4,1.4*l,n/2,l/2);c.quadTo(3*n/4,l*(1-1.4),n,l/2);c.lineTo(n,q-l/2);c.quadTo(3*n/4,q-1.4*l,n/2,q-l/2);c.quadTo(n/4,q-l*(1-1.4),0,q-l/2);c.lineTo(0,l/2);c.close();c.end()};H.prototype.getLabelBounds=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",this.size),r=c.width,n=c.height;if(null==this.direction|| +this.direction==mxConstants.DIRECTION_EAST||this.direction==mxConstants.DIRECTION_WEST)return l*=n,new mxRectangle(c.x,c.y+l,r,n-2*l);l*=r;return new mxRectangle(c.x+l,c.y,r-2*l,n)}return c};mxCellRenderer.registerShape("tape",H);mxUtils.extend(P,mxActor);P.prototype.size=.3;P.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)?new mxRectangle(0,0,0,parseFloat(mxUtils.getValue(this.style,"size",this.size))*c.height):null};P.prototype.redrawPath=function(c,l,r, +n,q){l=q*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.moveTo(0,0);c.lineTo(n,0);c.lineTo(n,q-l/2);c.quadTo(3*n/4,q-1.4*l,n/2,q-l/2);c.quadTo(n/4,q-l*(1-1.4),0,q-l/2);c.lineTo(0,l/2);c.close();c.end()};mxCellRenderer.registerShape("document",P);var Wa=mxCylinder.prototype.getCylinderSize;mxCylinder.prototype.getCylinderSize=function(c,l,r,n){var q=mxUtils.getValue(this.style,"size");return null!=q?n*Math.max(0,Math.min(1,q)):Wa.apply(this,arguments)};mxCylinder.prototype.getLabelMargins= +function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=2*mxUtils.getValue(this.style,"size",.15);return new mxRectangle(0,Math.min(this.maxHeight*this.scale,c.height*l),0,0)}return null};B.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);mxUtils.getValue(this.style,"lid",!0)||(l/=2);return new mxRectangle(0,Math.min(c.height*this.scale,2*l*this.scale),0,Math.max(0,.3*l*this.scale))}return null};E.prototype.getLabelMargins= +function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;if(mxUtils.getValue(this.style,"labelInHeader",!1)){var r=mxUtils.getValue(this.style,"tabWidth",15)*this.scale;l=mxUtils.getValue(this.style,"tabHeight",15)*this.scale;var n=mxUtils.getValue(this.style,"rounded",!1),q=mxUtils.getValue(this.style,"absoluteArcSize",!1),v=parseFloat(mxUtils.getValue(this.style,"arcSize",this.arcSize));q||(v*=Math.min(c.width,c.height));v=Math.min(v, +.5*c.width,.5*(c.height-l));n||(v=0);return"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?new mxRectangle(v,0,Math.min(c.width,c.width-r),Math.min(c.height,c.height-l)):new mxRectangle(Math.min(c.width,c.width-r),0,v,Math.min(c.height,c.height-l))}return new mxRectangle(0,Math.min(c.height,l),0,0)}return null};G.prototype.getLabelMargins=function(c){return mxUtils.getValue(this.style,"boundedLbl",!1)&&null!=mxUtils.getValue(this.style,"umlStateConnection",null)?new mxRectangle(10* +this.scale,0,0,0):null};t.prototype.getLabelMargins=function(c){if(mxUtils.getValue(this.style,"boundedLbl",!1)){var l=mxUtils.getValue(this.style,"size",15);return new mxRectangle(0,Math.min(c.height*this.scale,l*this.scale),0,Math.max(0,l*this.scale))}return null};mxUtils.extend(L,mxActor);L.prototype.size=.2;L.prototype.fixedSize=20;L.prototype.isRoundable=function(){return!0};L.prototype.redrawPath=function(c,l,r,n,q){l="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style, +"size",this.fixedSize)))):n*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,q),new mxPoint(l,0),new mxPoint(n,0),new mxPoint(n-l,q)],this.isRounded,r,!0);c.end()};mxCellRenderer.registerShape("parallelogram",L);mxUtils.extend(U,mxActor);U.prototype.size=.2;U.prototype.fixedSize=20;U.prototype.isRoundable=function(){return!0};U.prototype.redrawPath=function(c, +l,r,n,q){l="0"!=mxUtils.getValue(this.style,"fixedSize","0")?Math.max(0,Math.min(.5*n,parseFloat(mxUtils.getValue(this.style,"size",this.fixedSize)))):n*Math.max(0,Math.min(.5,parseFloat(mxUtils.getValue(this.style,"size",this.size))));r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(0,q),new mxPoint(l,0),new mxPoint(n-l,0),new mxPoint(n,q)],this.isRounded,r,!0)};mxCellRenderer.registerShape("trapezoid",U);mxUtils.extend(Y,mxActor); +Y.prototype.size=.5;Y.prototype.redrawPath=function(c,l,r,n,q){c.setFillColor(null);l=n*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"size",this.size))));r=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/2;this.addPoints(c,[new mxPoint(n,0),new mxPoint(l,0),new mxPoint(l,q/2),new mxPoint(0,q/2),new mxPoint(l,q/2),new mxPoint(l,q),new mxPoint(n,q)],this.isRounded,r,!1);c.end()};mxCellRenderer.registerShape("curlyBracket",Y);mxUtils.extend(R,mxActor); +R.prototype.redrawPath=function(c,l,r,n,q){c.setStrokeWidth(1);c.setFillColor(this.stroke);l=n/5;c.rect(0,0,l,q);c.fillAndStroke();c.rect(2*l,0,l,q);c.fillAndStroke();c.rect(4*l,0,l,q);c.fillAndStroke()};mxCellRenderer.registerShape("parallelMarker",R);T.prototype.moveTo=function(c,l){this.originalMoveTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=l;this.firstX=c;this.firstY=l};T.prototype.close=function(){null!=this.firstX&&null!=this.firstY&&(this.lineTo(this.firstX,this.firstY),this.originalClose.apply(this.canvas, +arguments));this.originalClose.apply(this.canvas,arguments)};T.prototype.quadTo=function(c,l,r,n){this.originalQuadTo.apply(this.canvas,arguments);this.lastX=r;this.lastY=n};T.prototype.curveTo=function(c,l,r,n,q,v){this.originalCurveTo.apply(this.canvas,arguments);this.lastX=q;this.lastY=v};T.prototype.arcTo=function(c,l,r,n,q,v,x){this.originalArcTo.apply(this.canvas,arguments);this.lastX=v;this.lastY=x};T.prototype.lineTo=function(c,l){if(null!=this.lastX&&null!=this.lastY){var r=function(Q){return"number"=== +typeof Q?Q?0>Q?-1:1:Q===Q?0:NaN:NaN},n=Math.abs(c-this.lastX),q=Math.abs(l-this.lastY),v=Math.sqrt(n*n+q*q);if(2>v){this.originalLineTo.apply(this.canvas,arguments);this.lastX=c;this.lastY=l;return}var x=Math.round(v/10),K=this.defaultVariation;5>x&&(x=5,K/=3);var y=r(c-this.lastX)*n/x;r=r(l-this.lastY)*q/x;n/=v;q/=v;for(v=0;vx+y?c.y=r.y:c.x=r.x);return mxUtils.getPerimeterPoint(K,c,r)};mxStyleRegistry.putValue("parallelogramPerimeter",mxPerimeter.ParallelogramPerimeter);mxPerimeter.TrapezoidPerimeter=function(c,l,r,n){var q="0"!=mxUtils.getValue(l.style,"fixedSize","0"),v=q?U.prototype.fixedSize:U.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));q&&(v*=l.view.scale); +var x=c.x,K=c.y,y=c.width,ba=c.height;l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_EAST?(q=q?Math.max(0,Math.min(.5*y,v)):y*Math.max(0,Math.min(1,v)),K=[new mxPoint(x+q,K),new mxPoint(x+y-q,K),new mxPoint(x+y,K+ba),new mxPoint(x,K+ba),new mxPoint(x+q,K)]):l==mxConstants.DIRECTION_WEST?(q=q?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),K=[new mxPoint(x,K),new mxPoint(x+y,K),new mxPoint(x+y-q,K+ +ba),new mxPoint(x+q,K+ba),new mxPoint(x,K)]):l==mxConstants.DIRECTION_NORTH?(q=q?Math.max(0,Math.min(ba,v)):ba*Math.max(0,Math.min(1,v)),K=[new mxPoint(x,K+q),new mxPoint(x+y,K),new mxPoint(x+y,K+ba),new mxPoint(x,K+ba-q),new mxPoint(x,K+q)]):(q=q?Math.max(0,Math.min(ba,v)):ba*Math.max(0,Math.min(1,v)),K=[new mxPoint(x,K),new mxPoint(x+y,K+q),new mxPoint(x+y,K+ba-q),new mxPoint(x,K+ba),new mxPoint(x,K)]);ba=c.getCenterX();c=c.getCenterY();c=new mxPoint(ba,c);n&&(r.xx+y?c.y=r.y:c.x=r.x);return mxUtils.getPerimeterPoint(K, +c,r)};mxStyleRegistry.putValue("trapezoidPerimeter",mxPerimeter.TrapezoidPerimeter);mxPerimeter.StepPerimeter=function(c,l,r,n){var q="0"!=mxUtils.getValue(l.style,"fixedSize","0"),v=q?ia.prototype.fixedSize:ia.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));q&&(v*=l.view.scale);var x=c.x,K=c.y,y=c.width,ba=c.height,Q=c.getCenterX();c=c.getCenterY();l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_EAST? +(q=q?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),K=[new mxPoint(x,K),new mxPoint(x+y-q,K),new mxPoint(x+y,c),new mxPoint(x+y-q,K+ba),new mxPoint(x,K+ba),new mxPoint(x+q,c),new mxPoint(x,K)]):l==mxConstants.DIRECTION_WEST?(q=q?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),K=[new mxPoint(x+q,K),new mxPoint(x+y,K),new mxPoint(x+y-q,c),new mxPoint(x+y,K+ba),new mxPoint(x+q,K+ba),new mxPoint(x,c),new mxPoint(x+q,K)]):l==mxConstants.DIRECTION_NORTH?(q=q?Math.max(0,Math.min(ba,v)):ba*Math.max(0, +Math.min(1,v)),K=[new mxPoint(x,K+q),new mxPoint(Q,K),new mxPoint(x+y,K+q),new mxPoint(x+y,K+ba),new mxPoint(Q,K+ba-q),new mxPoint(x,K+ba),new mxPoint(x,K+q)]):(q=q?Math.max(0,Math.min(ba,v)):ba*Math.max(0,Math.min(1,v)),K=[new mxPoint(x,K),new mxPoint(Q,K+q),new mxPoint(x+y,K),new mxPoint(x+y,K+ba-q),new mxPoint(Q,K+ba),new mxPoint(x,K+ba-q),new mxPoint(x,K)]);Q=new mxPoint(Q,c);n&&(r.xx+y?Q.y=r.y:Q.x=r.x);return mxUtils.getPerimeterPoint(K,Q,r)};mxStyleRegistry.putValue("stepPerimeter", +mxPerimeter.StepPerimeter);mxPerimeter.HexagonPerimeter2=function(c,l,r,n){var q="0"!=mxUtils.getValue(l.style,"fixedSize","0"),v=q?sa.prototype.fixedSize:sa.prototype.size;null!=l&&(v=mxUtils.getValue(l.style,"size",v));q&&(v*=l.view.scale);var x=c.x,K=c.y,y=c.width,ba=c.height,Q=c.getCenterX();c=c.getCenterY();l=null!=l?mxUtils.getValue(l.style,mxConstants.STYLE_DIRECTION,mxConstants.DIRECTION_EAST):mxConstants.DIRECTION_EAST;l==mxConstants.DIRECTION_NORTH||l==mxConstants.DIRECTION_SOUTH?(q=q?Math.max(0, +Math.min(ba,v)):ba*Math.max(0,Math.min(1,v)),K=[new mxPoint(Q,K),new mxPoint(x+y,K+q),new mxPoint(x+y,K+ba-q),new mxPoint(Q,K+ba),new mxPoint(x,K+ba-q),new mxPoint(x,K+q),new mxPoint(Q,K)]):(q=q?Math.max(0,Math.min(y,v)):y*Math.max(0,Math.min(1,v)),K=[new mxPoint(x+q,K),new mxPoint(x+y-q,K),new mxPoint(x+y,c),new mxPoint(x+y-q,K+ba),new mxPoint(x+q,K+ba),new mxPoint(x,c),new mxPoint(x+q,K)]);Q=new mxPoint(Q,c);n&&(r.xx+y?Q.y=r.y:Q.x=r.x);return mxUtils.getPerimeterPoint(K,Q,r)};mxStyleRegistry.putValue("hexagonPerimeter2", +mxPerimeter.HexagonPerimeter2);mxUtils.extend(Qa,mxShape);Qa.prototype.size=10;Qa.prototype.paintBackground=function(c,l,r,n,q){var v=parseFloat(mxUtils.getValue(this.style,"size",this.size));c.translate(l,r);c.ellipse((n-v)/2,0,v,v);c.fillAndStroke();c.begin();c.moveTo(n/2,v);c.lineTo(n/2,q);c.end();c.stroke()};mxCellRenderer.registerShape("lollipop",Qa);mxUtils.extend(pa,mxShape);pa.prototype.size=10;pa.prototype.inset=2;pa.prototype.paintBackground=function(c,l,r,n,q){var v=parseFloat(mxUtils.getValue(this.style, +"size",this.size)),x=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(l,r);c.begin();c.moveTo(n/2,v+x);c.lineTo(n/2,q);c.end();c.stroke();c.begin();c.moveTo((n-v)/2-x,v/2);c.quadTo((n-v)/2-x,v+x,n/2,v+x);c.quadTo((n+v)/2+x,v+x,(n+v)/2+x,v/2);c.end();c.stroke()};mxCellRenderer.registerShape("requires",pa);mxUtils.extend(Ba,mxShape);Ba.prototype.paintBackground=function(c,l,r,n,q){c.translate(l,r);c.begin();c.moveTo(0,0);c.quadTo(n,0,n,q/2);c.quadTo(n,q,0,q); +c.end();c.stroke()};mxCellRenderer.registerShape("requiredInterface",Ba);mxUtils.extend(Ea,mxShape);Ea.prototype.inset=2;Ea.prototype.paintBackground=function(c,l,r,n,q){var v=parseFloat(mxUtils.getValue(this.style,"inset",this.inset))+this.strokewidth;c.translate(l,r);c.ellipse(0,v,n-2*v,q-2*v);c.fillAndStroke();c.begin();c.moveTo(n/2,0);c.quadTo(n,0,n,q/2);c.quadTo(n,q,n/2,q);c.end();c.stroke()};mxCellRenderer.registerShape("providedRequiredInterface",Ea);mxUtils.extend(Ha,mxCylinder);Ha.prototype.jettyWidth= +20;Ha.prototype.jettyHeight=10;Ha.prototype.redrawPath=function(c,l,r,n,q,v){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));l=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));r=x/2;x=r+x/2;var K=Math.min(l,q-l),y=Math.min(K+2*l,q-l);v?(c.moveTo(r,K),c.lineTo(x,K),c.lineTo(x,K+l),c.lineTo(r,K+l),c.moveTo(r,y),c.lineTo(x,y),c.lineTo(x,y+l),c.lineTo(r,y+l)):(c.moveTo(r,0),c.lineTo(n,0),c.lineTo(n,q),c.lineTo(r,q),c.lineTo(r,y+l),c.lineTo(0,y+l),c.lineTo(0, +y),c.lineTo(r,y),c.lineTo(r,K+l),c.lineTo(0,K+l),c.lineTo(0,K),c.lineTo(r,K),c.close());c.end()};mxCellRenderer.registerShape("module",Ha);mxUtils.extend(La,mxCylinder);La.prototype.jettyWidth=32;La.prototype.jettyHeight=12;La.prototype.redrawPath=function(c,l,r,n,q,v){var x=parseFloat(mxUtils.getValue(this.style,"jettyWidth",this.jettyWidth));l=parseFloat(mxUtils.getValue(this.style,"jettyHeight",this.jettyHeight));r=x/2;x=r+x/2;var K=.3*q-l/2,y=.7*q-l/2;v?(c.moveTo(r,K),c.lineTo(x,K),c.lineTo(x, +K+l),c.lineTo(r,K+l),c.moveTo(r,y),c.lineTo(x,y),c.lineTo(x,y+l),c.lineTo(r,y+l)):(c.moveTo(r,0),c.lineTo(n,0),c.lineTo(n,q),c.lineTo(r,q),c.lineTo(r,y+l),c.lineTo(0,y+l),c.lineTo(0,y),c.lineTo(r,y),c.lineTo(r,K+l),c.lineTo(0,K+l),c.lineTo(0,K),c.lineTo(r,K),c.close());c.end()};mxCellRenderer.registerShape("component",La);mxUtils.extend(Ia,mxRectangleShape);Ia.prototype.paintForeground=function(c,l,r,n,q){var v=n/2,x=q/2,K=mxUtils.getValue(this.style,mxConstants.STYLE_ARCSIZE,mxConstants.LINE_ARCSIZE)/ +2;c.begin();this.addPoints(c,[new mxPoint(l+v,r),new mxPoint(l+n,r+x),new mxPoint(l+v,r+q),new mxPoint(l,r+x)],this.isRounded,K,!0);c.stroke();mxRectangleShape.prototype.paintForeground.apply(this,arguments)};mxCellRenderer.registerShape("associativeEntity",Ia);mxUtils.extend(Ja,mxDoubleEllipse);Ja.prototype.outerStroke=!0;Ja.prototype.paintVertexShape=function(c,l,r,n,q){var v=Math.min(4,Math.min(n/5,q/5));0=2*m&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1, +{val:"snip",dispName:"Snip"},{val:"invRound",dispName:"Inv. Round"},{val:"fold",dispName:"Fold"}]}];va.prototype.paintVertexShape=function(c,l,r,n,q){c.translate(l,r);this.strictDrawShape(c,0,0,n,q)};va.prototype.strictDrawShape=function(c,l,r,n,q,v){var x=v&&v.rectStyle?v.rectStyle:mxUtils.getValue(this.style,"rectStyle",this.rectStyle),K=v&&v.absoluteCornerSize?v.absoluteCornerSize:mxUtils.getValue(this.style,"absoluteCornerSize",this.absoluteCornerSize),y=v&&v.size?v.size:Math.max(0,Math.min(n, +parseFloat(mxUtils.getValue(this.style,"size",this.size)))),ba=v&&v.rectOutline?v.rectOutline:mxUtils.getValue(this.style,"rectOutline",this.rectOutline),Q=v&&v.indent?v.indent:Math.max(0,Math.min(n,parseFloat(mxUtils.getValue(this.style,"indent",this.indent)))),Ga=v&&v.dashed?v.dashed:mxUtils.getValue(this.style,"dashed",!1),Sa=v&&v.dashPattern?v.dashPattern:mxUtils.getValue(this.style,"dashPattern",null),Pa=v&&v.relIndent?v.relIndent:Math.max(0,Math.min(50,Q)),na=v&&v.top?v.top:mxUtils.getValue(this.style, +"top",!0),ra=v&&v.right?v.right:mxUtils.getValue(this.style,"right",!0),qa=v&&v.bottom?v.bottom:mxUtils.getValue(this.style,"bottom",!0),oa=v&&v.left?v.left:mxUtils.getValue(this.style,"left",!0),ya=v&&v.topLeftStyle?v.topLeftStyle:mxUtils.getValue(this.style,"topLeftStyle","default"),Ca=v&&v.topRightStyle?v.topRightStyle:mxUtils.getValue(this.style,"topRightStyle","default"),Da=v&&v.bottomRightStyle?v.bottomRightStyle:mxUtils.getValue(this.style,"bottomRightStyle","default"),Fa=v&&v.bottomLeftStyle? +v.bottomLeftStyle:mxUtils.getValue(this.style,"bottomLeftStyle","default"),Bb=v&&v.fillColor?v.fillColor:mxUtils.getValue(this.style,"fillColor","#ffffff");v&&v.strokeColor||mxUtils.getValue(this.style,"strokeColor","#000000");var Cb=v&&v.strokeWidth?v.strokeWidth:mxUtils.getValue(this.style,"strokeWidth","1"),zb=v&&v.fillColor2?v.fillColor2:mxUtils.getValue(this.style,"fillColor2","none"),Ab=v&&v.gradientColor2?v.gradientColor2:mxUtils.getValue(this.style,"gradientColor2","none"),Db=v&&v.gradientDirection2? +v.gradientDirection2:mxUtils.getValue(this.style,"gradientDirection2","south"),Eb=v&&v.opacity?v.opacity:mxUtils.getValue(this.style,"opacity","100"),Fb=Math.max(0,Math.min(50,y));v=va.prototype;c.setDashed(Ga);Sa&&""!=Sa&&c.setDashPattern(Sa);c.setStrokeWidth(Cb);y=Math.min(.5*q,.5*n,y);K||(y=Fb*Math.min(n,q)/100);y=Math.min(y,.5*Math.min(n,q));K||(Q=Math.min(Pa*Math.min(n,q)/100));Q=Math.min(Q,.5*Math.min(n,q)-y);(na||ra||qa||oa)&&"frame"!=ba&&(c.begin(),na?v.moveNW(c,l,r,n,q,x,ya,y,oa):c.moveTo(0, +0),na&&v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),ra&&v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),qa&&v.paintSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),oa&&v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),c.close(),c.fill(),c.setShadow(!1),c.setFillColor(zb),Ga=K=Eb,"none"==zb&&(K=0),"none"==Ab&&(Ga=0),c.setGradient(zb,Ab,0,0,n,q,Db,K,Ga),c.begin(),na?v.moveNWInner(c,l,r,n,q,x,ya,y,Q,na,oa):c.moveTo(Q,0),v.paintLeftInner(c,l, +r,n,q,x,Fa,y,Q,qa,oa),oa&&qa&&v.paintSWInner(c,l,r,n,q,x,Fa,y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),qa&&ra&&v.paintSEInner(c,l,r,n,q,x,Da,y,Q),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),ra&&na&&v.paintNEInner(c,l,r,n,q,x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),na&&oa&&v.paintNWInner(c,l,r,n,q,x,ya,y,Q),c.fill(),"none"==Bb&&(c.begin(),v.paintFolds(c,l,r,n,q,x,ya,Ca,Da,Fa,y,na,ra,qa,oa),c.stroke()));na||ra||qa||!oa?na||ra||!qa||oa?!na&&!ra&&qa&&oa?"frame"!=ba?(c.begin(),v.moveSE(c, +l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),"double"==ba&&(v.moveNWInner(c,l,r,n,q,x,ya,y,Q,na,oa),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),v.paintSWInner(c,l,r,n,q,x,Fa,y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa)),c.stroke()):(c.begin(),v.moveSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.lineNWInner(c,l,r,n,q,x,ya,y,Q,na,oa),v.paintLeftInner(c, +l,r,n,q,x,Fa,y,Q,qa,oa),v.paintSWInner(c,l,r,n,q,x,Fa,y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),c.close(),c.fillAndStroke()):na||!ra||qa||oa?!na&&ra&&!qa&&oa?"frame"!=ba?(c.begin(),v.moveSW(c,l,r,n,q,x,ya,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),"double"==ba&&(v.moveNWInner(c,l,r,n,q,x,ya,y,Q,na,oa),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa)),c.stroke(),c.begin(),v.moveNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),"double"==ba&&(v.moveSEInner(c,l,r,n,q,x,Da,y,Q,qa),v.paintRightInner(c, +l,r,n,q,x,Ca,y,Q,na,ra)),c.stroke()):(c.begin(),v.moveSW(c,l,r,n,q,x,ya,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.lineNWInner(c,l,r,n,q,x,ya,y,Q,na,oa),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),c.close(),c.fillAndStroke(),c.begin(),v.moveNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.lineSEInner(c,l,r,n,q,x,Da,y,Q,qa),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),c.close(),c.fillAndStroke()):!na&&ra&&qa&&!oa?"frame"!=ba?(c.begin(),v.moveNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x, +Da,y,qa),v.paintSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),"double"==ba&&(v.moveSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),v.paintSEInner(c,l,r,n,q,x,Da,y,Q),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra)),c.stroke()):(c.begin(),v.moveNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.paintSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.lineSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),v.paintSEInner(c, +l,r,n,q,x,Da,y,Q),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),c.close(),c.fillAndStroke()):!na&&ra&&qa&&oa?"frame"!=ba?(c.begin(),v.moveNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.paintSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),"double"==ba&&(v.moveNWInner(c,l,r,n,q,x,ya,y,Q,na,oa),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),v.paintSWInner(c,l,r,n,q,x,Fa,y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra, +qa),v.paintSEInner(c,l,r,n,q,x,Da,y,Q),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra)),c.stroke()):(c.begin(),v.moveNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.paintSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.lineNWInner(c,l,r,n,q,x,ya,y,Q,na,oa),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),v.paintSWInner(c,l,r,n,q,x,Fa,y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),v.paintSEInner(c,l,r,n,q,x,Da,y,Q), +v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),c.close(),c.fillAndStroke()):!na||ra||qa||oa?na&&!ra&&!qa&&oa?"frame"!=ba?(c.begin(),v.moveSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),"double"==ba&&(v.moveNEInner(c,l,r,n,q,x,Ca,y,Q,ra),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),v.paintNWInner(c,l,r,n,q,x,ya,y,Q),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa)),c.stroke()):(c.begin(),v.moveSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n, +q,x,ya,y,na),v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.lineNEInner(c,l,r,n,q,x,Ca,y,Q,ra),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),v.paintNWInner(c,l,r,n,q,x,ya,y,Q),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),c.close(),c.fillAndStroke()):na&&!ra&&qa&&!oa?"frame"!=ba?(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),"double"==ba&&(v.moveNEInner(c,l,r,n,q,x,Ca,y,Q,ra),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na)),c.stroke(),c.begin(),v.moveSE(c,l,r,n,q,x, +Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),"double"==ba&&(v.moveSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa)),c.stroke()):(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.lineNEInner(c,l,r,n,q,x,Ca,y,Q,ra),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),c.close(),c.fillAndStroke(),c.begin(),v.moveSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.lineSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),c.close(), +c.fillAndStroke()):na&&!ra&&qa&&oa?"frame"!=ba?(c.begin(),v.moveSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),"double"==ba&&(v.moveNEInner(c,l,r,n,q,x,Ca,y,Q,ra),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),v.paintNWInner(c,l,r,n,q,x,ya,y,Q),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),v.paintSWInner(c,l,r,n,q,x,Fa,y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra, +qa)),c.stroke()):(c.begin(),v.moveSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.lineNEInner(c,l,r,n,q,x,Ca,y,Q,ra),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),v.paintNWInner(c,l,r,n,q,x,ya,y,Q),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),v.paintSWInner(c,l,r,n,q,x,Fa,y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),c.close(),c.fillAndStroke()):na&&ra&&!qa&& +!oa?"frame"!=ba?(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),"double"==ba&&(v.moveSEInner(c,l,r,n,q,x,Da,y,Q,qa),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),v.paintNEInner(c,l,r,n,q,x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na)),c.stroke()):(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.lineSEInner(c,l,r,n,q, +x,Da,y,Q,qa),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),v.paintNEInner(c,l,r,n,q,x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),c.close(),c.fillAndStroke()):na&&ra&&!qa&&oa?"frame"!=ba?(c.begin(),v.moveSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),"double"==ba&&(v.moveSEInner(c,l,r,n,q,x,Da,y,Q,qa),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),v.paintNEInner(c, +l,r,n,q,x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),v.paintNWInner(c,l,r,n,q,x,ya,y,Q),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa)),c.stroke()):(c.begin(),v.moveSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.lineSEInner(c,l,r,n,q,x,Da,y,Q,qa),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),v.paintNEInner(c,l,r,n,q,x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y, +Q,oa,na),v.paintNWInner(c,l,r,n,q,x,ya,y,Q),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),c.close(),c.fillAndStroke()):na&&ra&&qa&&!oa?"frame"!=ba?(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.paintSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),"double"==ba&&(v.moveSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),v.paintSEInner(c,l,r,n,q,x,Da,y,Q),v.paintRightInner(c,l, +r,n,q,x,Ca,y,Q,na,ra),v.paintNEInner(c,l,r,n,q,x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na)),c.stroke()):(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.paintSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.lineSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),v.paintSEInner(c,l,r,n,q,x,Da,y,Q),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),v.paintNEInner(c,l,r,n,q, +x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),c.close(),c.fillAndStroke()):na&&ra&&qa&&oa&&("frame"!=ba?(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.paintSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),c.close(),"double"==ba&&(v.moveSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintSWInner(c,l,r,n,q,x,Fa, +y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),v.paintSEInner(c,l,r,n,q,x,Da,y,Q),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),v.paintNEInner(c,l,r,n,q,x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),v.paintNWInner(c,l,r,n,q,x,ya,y,Q),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),c.close()),c.stroke()):(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.paintNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.paintSE(c,l,r,n,q,x, +Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),v.paintSW(c,l,r,n,q,x,Fa,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),c.close(),v.moveSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintSWInner(c,l,r,n,q,x,Fa,y,Q,qa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),v.paintSEInner(c,l,r,n,q,x,Da,y,Q),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),v.paintNEInner(c,l,r,n,q,x,Ca,y,Q),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),v.paintNWInner(c,l,r,n,q,x,ya,y,Q),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),c.close(),c.fillAndStroke())): +"frame"!=ba?(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),"double"==ba&&(v.moveNEInner(c,l,r,n,q,x,Ca,y,Q,ra),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na)),c.stroke()):(c.begin(),v.moveNW(c,l,r,n,q,x,ya,y,oa),v.paintTop(c,l,r,n,q,x,Ca,y,ra),v.lineNEInner(c,l,r,n,q,x,Ca,y,Q,ra),v.paintTopInner(c,l,r,n,q,x,ya,y,Q,oa,na),c.close(),c.fillAndStroke()):"frame"!=ba?(c.begin(),v.moveNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),"double"==ba&&(v.moveSEInner(c,l,r,n,q,x, +Da,y,Q,qa),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra)),c.stroke()):(c.begin(),v.moveNE(c,l,r,n,q,x,Ca,y,na),v.paintRight(c,l,r,n,q,x,Da,y,qa),v.lineSEInner(c,l,r,n,q,x,Da,y,Q,qa),v.paintRightInner(c,l,r,n,q,x,Ca,y,Q,na,ra),c.close(),c.fillAndStroke()):"frame"!=ba?(c.begin(),v.moveSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c,l,r,n,q,x,Fa,y,oa),"double"==ba&&(v.moveSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa)),c.stroke()):(c.begin(),v.moveSE(c,l,r,n,q,x,Da,y,ra),v.paintBottom(c, +l,r,n,q,x,Fa,y,oa),v.lineSWInner(c,l,r,n,q,x,Fa,y,Q,oa),v.paintBottomInner(c,l,r,n,q,x,Da,y,Q,ra,qa),c.close(),c.fillAndStroke()):"frame"!=ba?(c.begin(),v.moveSW(c,l,r,n,q,x,ya,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),"double"==ba&&(v.moveNWInner(c,l,r,n,q,x,ya,y,Q,na,oa),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa)),c.stroke()):(c.begin(),v.moveSW(c,l,r,n,q,x,ya,y,qa),v.paintLeft(c,l,r,n,q,x,ya,y,na),v.lineNWInner(c,l,r,n,q,x,ya,y,Q,na,oa),v.paintLeftInner(c,l,r,n,q,x,Fa,y,Q,qa,oa),c.close(),c.fillAndStroke()); +c.begin();v.paintFolds(c,l,r,n,q,x,ya,Ca,Da,Fa,y,na,ra,qa,oa);c.stroke()};va.prototype.moveNW=function(c,l,r,n,q,v,x,K,y){"square"==x||"default"==x&&"square"==v||!y?c.moveTo(0,0):c.moveTo(0,K)};va.prototype.moveNE=function(c,l,r,n,q,v,x,K,y){"square"==x||"default"==x&&"square"==v||!y?c.moveTo(n,0):c.moveTo(n-K,0)};va.prototype.moveSE=function(c,l,r,n,q,v,x,K,y){"square"==x||"default"==x&&"square"==v||!y?c.moveTo(n,q):c.moveTo(n,q-K)};va.prototype.moveSW=function(c,l,r,n,q,v,x,K,y){"square"==x||"default"== +x&&"square"==v||!y?c.moveTo(0,q):c.moveTo(K,q)};va.prototype.paintNW=function(c,l,r,n,q,v,x,K,y){if(y)if("rounded"==x||"default"==x&&"rounded"==v||"invRound"==x||"default"==x&&"invRound"==v){l=0;if("rounded"==x||"default"==x&&"rounded"==v)l=1;c.arcTo(K,K,0,0,l,K,0)}else("snip"==x||"default"==x&&"snip"==v||"fold"==x||"default"==x&&"fold"==v)&&c.lineTo(K,0);else c.lineTo(0,0)};va.prototype.paintTop=function(c,l,r,n,q,v,x,K,y){"square"==x||"default"==x&&"square"==v||!y?c.lineTo(n,0):c.lineTo(n-K,0)}; +va.prototype.paintNE=function(c,l,r,n,q,v,x,K,y){if(y)if("rounded"==x||"default"==x&&"rounded"==v||"invRound"==x||"default"==x&&"invRound"==v){l=0;if("rounded"==x||"default"==x&&"rounded"==v)l=1;c.arcTo(K,K,0,0,l,n,K)}else("snip"==x||"default"==x&&"snip"==v||"fold"==x||"default"==x&&"fold"==v)&&c.lineTo(n,K);else c.lineTo(n,0)};va.prototype.paintRight=function(c,l,r,n,q,v,x,K,y){"square"==x||"default"==x&&"square"==v||!y?c.lineTo(n,q):c.lineTo(n,q-K)};va.prototype.paintLeft=function(c,l,r,n,q,v,x, +K,y){"square"==x||"default"==x&&"square"==v||!y?c.lineTo(0,0):c.lineTo(0,K)};va.prototype.paintSE=function(c,l,r,n,q,v,x,K,y){if(y)if("rounded"==x||"default"==x&&"rounded"==v||"invRound"==x||"default"==x&&"invRound"==v){l=0;if("rounded"==x||"default"==x&&"rounded"==v)l=1;c.arcTo(K,K,0,0,l,n-K,q)}else("snip"==x||"default"==x&&"snip"==v||"fold"==x||"default"==x&&"fold"==v)&&c.lineTo(n-K,q);else c.lineTo(n,q)};va.prototype.paintBottom=function(c,l,r,n,q,v,x,K,y){"square"==x||"default"==x&&"square"== +v||!y?c.lineTo(0,q):c.lineTo(K,q)};va.prototype.paintSW=function(c,l,r,n,q,v,x,K,y){if(y)if("rounded"==x||"default"==x&&"rounded"==v||"invRound"==x||"default"==x&&"invRound"==v){l=0;if("rounded"==x||"default"==x&&"rounded"==v)l=1;c.arcTo(K,K,0,0,l,0,q-K)}else("snip"==x||"default"==x&&"snip"==v||"fold"==x||"default"==x&&"fold"==v)&&c.lineTo(0,q-K);else c.lineTo(0,q)};va.prototype.paintNWInner=function(c,l,r,n,q,v,x,K,y){if("rounded"==x||"default"==x&&"rounded"==v)c.arcTo(K-.5*y,K-.5*y,0,0,0,y,.5*y+ +K);else if("invRound"==x||"default"==x&&"invRound"==v)c.arcTo(K+y,K+y,0,0,1,y,y+K);else if("snip"==x||"default"==x&&"snip"==v)c.lineTo(y,.5*y+K);else if("fold"==x||"default"==x&&"fold"==v)c.lineTo(y+K,y+K),c.lineTo(y,y+K)};va.prototype.paintTopInner=function(c,l,r,n,q,v,x,K,y,ba,Q){ba||Q?!ba&&Q?c.lineTo(0,y):ba&&!Q?c.lineTo(y,0):ba?"square"==x||"default"==x&&"square"==v?c.lineTo(y,y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.lineTo(K+.5*y,y):c.lineTo(K+y,y):c.lineTo(0, +y):c.lineTo(0,0)};va.prototype.paintNEInner=function(c,l,r,n,q,v,x,K,y){if("rounded"==x||"default"==x&&"rounded"==v)c.arcTo(K-.5*y,K-.5*y,0,0,0,n-K-.5*y,y);else if("invRound"==x||"default"==x&&"invRound"==v)c.arcTo(K+y,K+y,0,0,1,n-K-y,y);else if("snip"==x||"default"==x&&"snip"==v)c.lineTo(n-K-.5*y,y);else if("fold"==x||"default"==x&&"fold"==v)c.lineTo(n-K-y,K+y),c.lineTo(n-K-y,y)};va.prototype.paintRightInner=function(c,l,r,n,q,v,x,K,y,ba,Q){ba||Q?!ba&&Q?c.lineTo(n-y,0):ba&&!Q?c.lineTo(n,y):ba?"square"== +x||"default"==x&&"square"==v?c.lineTo(n-y,y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.lineTo(n-y,K+.5*y):c.lineTo(n-y,K+y):c.lineTo(n-y,0):c.lineTo(n,0)};va.prototype.paintLeftInner=function(c,l,r,n,q,v,x,K,y,ba,Q){ba||Q?!ba&&Q?c.lineTo(y,q):ba&&!Q?c.lineTo(0,q-y):ba?"square"==x||"default"==x&&"square"==v?c.lineTo(y,q-y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.lineTo(y,q-K-.5*y):c.lineTo(y,q-K-y):c.lineTo(y,q):c.lineTo(0, +q)};va.prototype.paintSEInner=function(c,l,r,n,q,v,x,K,y){if("rounded"==x||"default"==x&&"rounded"==v)c.arcTo(K-.5*y,K-.5*y,0,0,0,n-y,q-K-.5*y);else if("invRound"==x||"default"==x&&"invRound"==v)c.arcTo(K+y,K+y,0,0,1,n-y,q-K-y);else if("snip"==x||"default"==x&&"snip"==v)c.lineTo(n-y,q-K-.5*y);else if("fold"==x||"default"==x&&"fold"==v)c.lineTo(n-K-y,q-K-y),c.lineTo(n-y,q-K-y)};va.prototype.paintBottomInner=function(c,l,r,n,q,v,x,K,y,ba,Q){ba||Q?!ba&&Q?c.lineTo(n,q-y):ba&&!Q?c.lineTo(n-y,q):"square"== +x||"default"==x&&"square"==v||!ba?c.lineTo(n-y,q-y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.lineTo(n-K-.5*y,q-y):c.lineTo(n-K-y,q-y):c.lineTo(n,q)};va.prototype.paintSWInner=function(c,l,r,n,q,v,x,K,y,ba){if(!ba)c.lineTo(y,q);else if("square"==x||"default"==x&&"square"==v)c.lineTo(y,q-y);else if("rounded"==x||"default"==x&&"rounded"==v)c.arcTo(K-.5*y,K-.5*y,0,0,0,K+.5*y,q-y);else if("invRound"==x||"default"==x&&"invRound"==v)c.arcTo(K+y,K+y,0,0,1,K+y,q-y);else if("snip"== +x||"default"==x&&"snip"==v)c.lineTo(K+.5*y,q-y);else if("fold"==x||"default"==x&&"fold"==v)c.lineTo(y+K,q-K-y),c.lineTo(y+K,q-y)};va.prototype.moveSWInner=function(c,l,r,n,q,v,x,K,y,ba){ba?"square"==x||"default"==x&&"square"==v?c.moveTo(y,q-y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.moveTo(y,q-K-.5*y):("invRound"==x||"default"==x&&"invRound"==v||"fold"==x||"default"==x&&"fold"==v)&&c.moveTo(y,q-K-y):c.moveTo(0,q-y)};va.prototype.lineSWInner=function(c,l,r,n, +q,v,x,K,y,ba){ba?"square"==x||"default"==x&&"square"==v?c.lineTo(y,q-y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.lineTo(y,q-K-.5*y):("invRound"==x||"default"==x&&"invRound"==v||"fold"==x||"default"==x&&"fold"==v)&&c.lineTo(y,q-K-y):c.lineTo(0,q-y)};va.prototype.moveSEInner=function(c,l,r,n,q,v,x,K,y,ba){ba?"square"==x||"default"==x&&"square"==v?c.moveTo(n-y,q-y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.moveTo(n-y,q-K-.5*y): +("invRound"==x||"default"==x&&"invRound"==v||"fold"==x||"default"==x&&"fold"==v)&&c.moveTo(n-y,q-K-y):c.moveTo(n-y,q)};va.prototype.lineSEInner=function(c,l,r,n,q,v,x,K,y,ba){ba?"square"==x||"default"==x&&"square"==v?c.lineTo(n-y,q-y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.lineTo(n-y,q-K-.5*y):("invRound"==x||"default"==x&&"invRound"==v||"fold"==x||"default"==x&&"fold"==v)&&c.lineTo(n-y,q-K-y):c.lineTo(n-y,q)};va.prototype.moveNEInner=function(c,l,r,n,q,v,x, +K,y,ba){ba?"square"==x||"default"==x&&"square"==v||ba?c.moveTo(n-y,y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.moveTo(n-y,K+.5*y):("invRound"==x||"default"==x&&"invRound"==v||"fold"==x||"default"==x&&"fold"==v)&&c.moveTo(n-y,K+y):c.moveTo(n,y)};va.prototype.lineNEInner=function(c,l,r,n,q,v,x,K,y,ba){ba?"square"==x||"default"==x&&"square"==v||ba?c.lineTo(n-y,y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.lineTo(n-y,K+.5*y):("invRound"== +x||"default"==x&&"invRound"==v||"fold"==x||"default"==x&&"fold"==v)&&c.lineTo(n-y,K+y):c.lineTo(n,y)};va.prototype.moveNWInner=function(c,l,r,n,q,v,x,K,y,ba,Q){ba||Q?!ba&&Q?c.moveTo(y,0):ba&&!Q?c.moveTo(0,y):"square"==x||"default"==x&&"square"==v?c.moveTo(y,y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.moveTo(y,K+.5*y):("invRound"==x||"default"==x&&"invRound"==v||"fold"==x||"default"==x&&"fold"==v)&&c.moveTo(y,K+y):c.moveTo(0,0)};va.prototype.lineNWInner=function(c, +l,r,n,q,v,x,K,y,ba,Q){ba||Q?!ba&&Q?c.lineTo(y,0):ba&&!Q?c.lineTo(0,y):"square"==x||"default"==x&&"square"==v?c.lineTo(y,y):"rounded"==x||"default"==x&&"rounded"==v||"snip"==x||"default"==x&&"snip"==v?c.lineTo(y,K+.5*y):("invRound"==x||"default"==x&&"invRound"==v||"fold"==x||"default"==x&&"fold"==v)&&c.lineTo(y,K+y):c.lineTo(0,0)};va.prototype.paintFolds=function(c,l,r,n,q,v,x,K,y,ba,Q,Ga,Sa,Pa,na){if("fold"==v||"fold"==x||"fold"==K||"fold"==y||"fold"==ba)("fold"==x||"default"==x&&"fold"==v)&&Ga&& +na&&(c.moveTo(0,Q),c.lineTo(Q,Q),c.lineTo(Q,0)),("fold"==K||"default"==K&&"fold"==v)&&Ga&&Sa&&(c.moveTo(n-Q,0),c.lineTo(n-Q,Q),c.lineTo(n,Q)),("fold"==y||"default"==y&&"fold"==v)&&Pa&&Sa&&(c.moveTo(n-Q,q),c.lineTo(n-Q,q-Q),c.lineTo(n,q-Q)),("fold"==ba||"default"==ba&&"fold"==v)&&Pa&&na&&(c.moveTo(0,q-Q),c.lineTo(Q,q-Q),c.lineTo(Q,q))};mxCellRenderer.registerShape(va.prototype.cst.RECT2,va);va.prototype.constraints=null;mxUtils.extend(xa,mxConnector);xa.prototype.origPaintEdgeShape=xa.prototype.paintEdgeShape; +xa.prototype.paintEdgeShape=function(c,l,r){for(var n=[],q=0;q=2*n&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};mxRectangleShape.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1, 0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0), -new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];ya.prototype.constraints=mxRectangleShape.prototype.constraints; -mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;O.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.getConstraints=function(c,l,t){c=[];var m=Math.max(0,Math.min(l,Math.min(t,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,.5*(l-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(t+m)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -.5),!1));l>=2*m&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};K.prototype.getConstraints=function(c,l,t){c=[];var m=Math.max(0,Math.min(l,Math.min(t,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(t+m)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));l>=2*m&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};f.prototype.getConstraints=function(c,l,t){c=[];var m=Math.max(0,Math.min(l,Math.min(t,parseFloat(mxUtils.getValue(this.style, -"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-m,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*m,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(t+m)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,.5*(l+m),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,t-.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(t-m)));return c};C.prototype.getConstraints=function(c,l,t){c=[];l=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -.5),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-l));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l+.5*(.5*t-l)));c.push(new mxConnectionConstraint(new mxPoint(1, -0),!1,null,0,l+.5*(.5*t-l)));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,t-l-.5*(.5*t-l)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t-l-.5*(.5*t-l)));c.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*l));c.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*l));c.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-l));c.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-l));return c};D.prototype.getConstraints= -function(c,l,t){c=[];var m=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),r=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(c.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,0)),c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,m,r)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+m),r))):(c.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-m,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-m,r)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-m),r)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,r));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,l,.25*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.75*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,0,.75*(t-r)+r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t));c.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return c};db.prototype.constraints=mxRectangleShape.prototype.constraints;wa.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=mxEllipse.prototype.constraints;Q.prototype.constraints=mxEllipse.prototype.constraints; -W.prototype.constraints=mxEllipse.prototype.constraints;xa.prototype.constraints=mxEllipse.prototype.constraints;gb.prototype.constraints=mxRectangleShape.prototype.constraints;Da.prototype.constraints=mxRectangleShape.prototype.constraints;Ma.prototype.getConstraints=function(c,l,t){c=[];var m=Math.min(l,t/2),r=Math.min(l-m,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*l);c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,r,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(r+l-m),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-m,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-m,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(r+l-m),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,t));return c};Na.prototype.getConstraints=function(c,l,t){l=parseFloat(mxUtils.getValue(c, -"jettyWidth",Na.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",Na.prototype.jettyHeight));var m=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,l),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1, -.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,l),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(t-.5*c,1.5*c)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(t-.5*c,3.5*c))];t>5*c&&m.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,l));t>8*c&&m.push(new mxConnectionConstraint(new mxPoint(0, -.5),!1,null,l));t>15*c&&m.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,l));return m};B.prototype.constraints=mxRectangleShape.prototype.constraints;E.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0, -.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];ca.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75, -.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];Qa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0, +new mxConnectionConstraint(new mxPoint(1,1),!0)];mxEllipse.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(0,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(1,.5))];wa.prototype.constraints=mxRectangleShape.prototype.constraints; +mxImageShape.prototype.constraints=mxRectangleShape.prototype.constraints;mxSwimlane.prototype.constraints=mxRectangleShape.prototype.constraints;la.prototype.constraints=mxRectangleShape.prototype.constraints;mxLabel.prototype.constraints=mxRectangleShape.prototype.constraints;k.prototype.getConstraints=function(c,l,r){c=[];var n=Math.max(0,Math.min(l,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,.5*(l-n),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*n,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(r+n)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +.5),!1));l>=2*n&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};I.prototype.getConstraints=function(c,l,r){c=[];var n=Math.max(0,Math.min(l,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,0,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(r+n)));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));l>=2*n&&c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));return c};f.prototype.getConstraints=function(c,l,r){c=[];var n=Math.max(0,Math.min(l,Math.min(r,parseFloat(mxUtils.getValue(this.style, +"size",this.size)))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*n,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(r+n)));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,.5*(l+n),r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,r-.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,r-n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(r-n)));return c};B.prototype.getConstraints=function(c,l,r){c=[];l=Math.max(0,Math.min(r,parseFloat(mxUtils.getValue(this.style,"size",this.size))));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +.5),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,l));c.push(new mxConnectionConstraint(new mxPoint(1,1),!1,null,0,-l));c.push(new mxConnectionConstraint(new mxPoint(0,1),!1,null,0,-l));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,l+.5*(.5*r-l)));c.push(new mxConnectionConstraint(new mxPoint(1, +0),!1,null,0,l+.5*(.5*r-l)));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1,null,0,r-l-.5*(.5*r-l)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,r-l-.5*(.5*r-l)));c.push(new mxConnectionConstraint(new mxPoint(.145,0),!1,null,0,.29*l));c.push(new mxConnectionConstraint(new mxPoint(.855,0),!1,null,0,.29*l));c.push(new mxConnectionConstraint(new mxPoint(.855,1),!1,null,0,.29*-l));c.push(new mxConnectionConstraint(new mxPoint(.145,1),!1,null,0,.29*-l));return c};E.prototype.getConstraints= +function(c,l,r){c=[];var n=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"tabWidth",this.tabWidth)))),q=Math.max(0,Math.min(r,parseFloat(mxUtils.getValue(this.style,"tabHeight",this.tabHeight))));"left"==mxUtils.getValue(this.style,"tabPosition",this.tabPosition)?(c.push(new mxConnectionConstraint(new mxPoint(0,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,0)),c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,n,q)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),q))):(c.push(new mxConnectionConstraint(new mxPoint(1,0),!1)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-.5*n,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,0)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,q)),c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),q)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,q));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,l,.25*(r-q)+q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*(r-q)+q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.75*(r-q)+q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.25*(r-q)+q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*(r-q)+q));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,0,.75*(r-q)+q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,r));c.push(new mxConnectionConstraint(new mxPoint(.25,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(.75,1),!1));return c};cb.prototype.constraints=mxRectangleShape.prototype.constraints;ea.prototype.constraints=mxRectangleShape.prototype.constraints;N.prototype.constraints=mxEllipse.prototype.constraints;S.prototype.constraints=mxEllipse.prototype.constraints; +X.prototype.constraints=mxEllipse.prototype.constraints;Na.prototype.constraints=mxEllipse.prototype.constraints;eb.prototype.constraints=mxRectangleShape.prototype.constraints;za.prototype.constraints=mxRectangleShape.prototype.constraints;Ka.prototype.getConstraints=function(c,l,r){c=[];var n=Math.min(l,r/2),q=Math.min(l-n,Math.max(0,parseFloat(mxUtils.getValue(this.style,"size",this.size)))*l);c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,q,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(q+l-n),0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1,null));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-n,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(q+l-n),r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,q,r));return c};Ha.prototype.getConstraints=function(c,l,r){l=parseFloat(mxUtils.getValue(c, +"jettyWidth",Ha.prototype.jettyWidth))/2;c=parseFloat(mxUtils.getValue(c,"jettyHeight",Ha.prototype.jettyHeight));var n=[new mxConnectionConstraint(new mxPoint(0,0),!1,null,l),new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(1,0),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1, +.75),!0),new mxConnectionConstraint(new mxPoint(0,1),!1,null,l),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(1,1),!0),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(r-.5*c,1.5*c)),new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,Math.min(r-.5*c,3.5*c))];r>5*c&&n.push(new mxConnectionConstraint(new mxPoint(0,.75),!1,null,l));r>8*c&&n.push(new mxConnectionConstraint(new mxPoint(0, +.5),!1,null,l));r>15*c&&n.push(new mxConnectionConstraint(new mxPoint(0,.25),!1,null,l));return n};C.prototype.constraints=mxRectangleShape.prototype.constraints;F.prototype.constraints=mxRectangleShape.prototype.constraints;mxCylinder.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.15,.05),!1),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.85,.05),!1),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0, +.5),!0),new mxConnectionConstraint(new mxPoint(0,.7),!0),new mxConnectionConstraint(new mxPoint(1,.3),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.7),!0),new mxConnectionConstraint(new mxPoint(.15,.95),!1),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.85,.95),!1)];Z.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.1),!1),new mxConnectionConstraint(new mxPoint(.5,0),!1),new mxConnectionConstraint(new mxPoint(.75, +.1),!1),new mxConnectionConstraint(new mxPoint(0,1/3),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(1,1/3),!1),new mxConnectionConstraint(new mxPoint(1,1),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1)];La.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(0,.3),!0),new mxConnectionConstraint(new mxPoint(0, .7),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];mxActor.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.25,.2),!1),new mxConnectionConstraint(new mxPoint(.1,.5),!1),new mxConnectionConstraint(new mxPoint(0, -.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];F.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25, -.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];G.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1, -.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];ja.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0, -.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];Sa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5, +.75),!0),new mxConnectionConstraint(new mxPoint(.75,.25),!1),new mxConnectionConstraint(new mxPoint(.9,.5),!1),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0)];D.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(.5,.25),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(.25, +.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.5,.75),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];H.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.35),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.65),!1),new mxConnectionConstraint(new mxPoint(1,.35),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1, +.65),!1),new mxConnectionConstraint(new mxPoint(.25,1),!1),new mxConnectionConstraint(new mxPoint(.75,0),!1)];ia.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75,0),!0),new mxConnectionConstraint(new mxPoint(.25,1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.75,1),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0, +.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxLine.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];Qa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.5, 0),!1),new mxConnectionConstraint(new mxPoint(.5,1),!1)];mxDoubleEllipse.prototype.constraints=mxEllipse.prototype.constraints;mxRhombus.prototype.constraints=mxEllipse.prototype.constraints;mxTriangle.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(1, .5),!0)];mxHexagon.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.375,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.625,0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0),new mxConnectionConstraint(new mxPoint(.375, 1),!0),new mxConnectionConstraint(new mxPoint(.5,1),!0),new mxConnectionConstraint(new mxPoint(.625,1),!0)];mxCloud.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,.25),!1),new mxConnectionConstraint(new mxPoint(.4,.1),!1),new mxConnectionConstraint(new mxPoint(.16,.55),!1),new mxConnectionConstraint(new mxPoint(.07,.4),!1),new mxConnectionConstraint(new mxPoint(.31,.8),!1),new mxConnectionConstraint(new mxPoint(.13,.77),!1),new mxConnectionConstraint(new mxPoint(.8,.8),!1),new mxConnectionConstraint(new mxPoint(.55, -.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];I.prototype.constraints=mxRectangleShape.prototype.constraints;Z.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75, -0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;cb.prototype.getConstraints=function(c,l,t){c=[];var m=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),r=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style, -"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*l+.25*m,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+m),r));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,.5*(l+m),.5*(t+r)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+m),t));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-m),t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-m),.5*(t+r)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-m),r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*l-.25*m,r));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,0,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*r));return c};hb.prototype.getConstraints=function(c,l,t){c=[];var m=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),r=Math.max(0,Math.min(t,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,l,.5*r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+m),r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,.5*(t+r)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,m,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*m,t));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -1),!1));return c};ob.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];ab.prototype.getConstraints= -function(c,l,t){c=[];var m=t*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),r=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));m=(t-m)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-r),m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,0));c.push(new mxConnectionConstraint(new mxPoint(1, -.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-r),t-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,t-m));return c};da.prototype.getConstraints=function(c,l,t){c=[];var m=t*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",ab.prototype.arrowWidth)))),r=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",ab.prototype.arrowSize))));m=(t-m)/2;c.push(new mxConnectionConstraint(new mxPoint(0, -.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-r,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,t-m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,t));return c};Oa.prototype.getConstraints= -function(c,l,t){c=[];var m=Math.min(t,l),r=Math.max(0,Math.min(m,m*parseFloat(mxUtils.getValue(this.style,"size",this.size))));m=(t-r)/2;var v=m+r,x=(l-r)/2;r=x+r;c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,0));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,.5*m));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,r,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,t-.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,t));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,t));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,t-.5*m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,r,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+r),m));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,l,m));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+r),v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*x,m));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,m));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0, -0),!1,null,0,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*x,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,m));return c};ra.prototype.constraints=null;u.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7, -.9),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];Fa.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];Ha.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0, +.95),!1),new mxConnectionConstraint(new mxPoint(.875,.5),!1),new mxConnectionConstraint(new mxPoint(.96,.7),!1),new mxConnectionConstraint(new mxPoint(.625,.2),!1),new mxConnectionConstraint(new mxPoint(.88,.25),!1)];L.prototype.constraints=mxRectangleShape.prototype.constraints;U.prototype.constraints=mxRectangleShape.prototype.constraints;P.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.25,0),!0),new mxConnectionConstraint(new mxPoint(.5,0),!0),new mxConnectionConstraint(new mxPoint(.75, +0),!0),new mxConnectionConstraint(new mxPoint(0,.25),!0),new mxConnectionConstraint(new mxPoint(0,.5),!0),new mxConnectionConstraint(new mxPoint(0,.75),!0),new mxConnectionConstraint(new mxPoint(1,.25),!0),new mxConnectionConstraint(new mxPoint(1,.5),!0),new mxConnectionConstraint(new mxPoint(1,.75),!0)];mxArrow.prototype.constraints=null;gb.prototype.getConstraints=function(c,l,r){c=[];var n=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),q=Math.max(0,Math.min(r,parseFloat(mxUtils.getValue(this.style, +"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,.5*q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.75*l+.25*n,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),q));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,.5*(l+n),.5*(r+q)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),r));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),.5*(r+q)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-n),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.25*l-.25*n,q));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,0,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,.5*q));return c};fb.prototype.getConstraints=function(c,l,r){c=[];var n=Math.max(0,Math.min(l,parseFloat(mxUtils.getValue(this.style,"dx",this.dx)))),q=Math.max(0,Math.min(r,parseFloat(mxUtils.getValue(this.style,"dy",this.dy))));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(1,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,l,.5*q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+n),q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,q));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,.5*(r+q)));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,n,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*n,r));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +1),!1));return c};pb.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,0),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,1),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.5,.5),!1),new mxConnectionConstraint(new mxPoint(.75,.5),!1),new mxConnectionConstraint(new mxPoint(1,0),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(1,1),!1)];Za.prototype.getConstraints= +function(c,l,r){c=[];var n=r*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",this.arrowWidth)))),q=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",this.arrowSize))));n=(r-n)/2;c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-q),n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-q,0));c.push(new mxConnectionConstraint(new mxPoint(1, +.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-q,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l-q),r-n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,r-n));return c};lb.prototype.getConstraints=function(c,l,r){c=[];var n=r*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowWidth",Za.prototype.arrowWidth)))),q=l*Math.max(0,Math.min(1,parseFloat(mxUtils.getValue(this.style,"arrowSize",Za.prototype.arrowSize))));n=(r-n)/2;c.push(new mxConnectionConstraint(new mxPoint(0, +.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,q,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-q,0));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l-q,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*l,r-n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,q,r));return c};Aa.prototype.getConstraints= +function(c,l,r){c=[];var n=Math.min(r,l),q=Math.max(0,Math.min(n,n*parseFloat(mxUtils.getValue(this.style,"size",this.size))));n=(r-q)/2;var v=n+q,x=(l-q)/2;q=x+q;c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,0));c.push(new mxConnectionConstraint(new mxPoint(.5,0),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,q,0));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,q,.5*n));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,q,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,r-.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,r));c.push(new mxConnectionConstraint(new mxPoint(.5,1),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,q,r));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,q,r-.5*n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,q,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+q),n));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,l,n));c.push(new mxConnectionConstraint(new mxPoint(1,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,l,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*(l+q),v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*x,n));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,0,n));c.push(new mxConnectionConstraint(new mxPoint(0,.5),!1));c.push(new mxConnectionConstraint(new mxPoint(0, +0),!1,null,0,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,.5*x,v));c.push(new mxConnectionConstraint(new mxPoint(0,0),!1,null,x,n));return c};ma.prototype.constraints=null;u.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.25),!1),new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(0,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7, +.9),!1)];A.prototype.constraints=[new mxConnectionConstraint(new mxPoint(.175,.25),!1),new mxConnectionConstraint(new mxPoint(.25,.5),!1),new mxConnectionConstraint(new mxPoint(.175,.75),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1),new mxConnectionConstraint(new mxPoint(.7,.1),!1),new mxConnectionConstraint(new mxPoint(.7,.9),!1)];Ba.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0,.5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)];Ea.prototype.constraints=[new mxConnectionConstraint(new mxPoint(0, .5),!1),new mxConnectionConstraint(new mxPoint(1,.5),!1)]})();function Actions(a){this.editorUi=a;this.actions={};this.init()} -Actions.prototype.init=function(){function a(k){d.escape();k=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),k);null!=k&&d.setSelectionCells(k)}function b(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var k=d.getSelectionCells(),p=0;pMath.abs(k-d.view.scale)&&5>Math.abs(p-d.container.scrollLeft)&&5>Math.abs(w-d.container.scrollTop)&&z==d.view.translate.x&&C==d.view.translate.y&&f.actions.get("fitWindow").funct()},null,null,"Enter"));this.addAction("keyPressEnter",function(){d.isSelectionEmpty()?f.actions.get("smartFit").funct():d.isEnabled()&& -d.startEditingAtCell()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(k,p){try{var w=mxUtils.parseXml(k);h.graph.setSelectionCells(h.graph.importGraphModel(w.documentElement))}catch(z){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+z.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile= +Actions.prototype.init=function(){function a(k){d.escape();k=d.deleteCells(d.getDeletableCells(d.getSelectionCells()),k);null!=k&&d.setSelectionCells(k)}function b(){if(!d.isSelectionEmpty()){d.getModel().beginUpdate();try{for(var k=d.getSelectionCells(),t=0;tMath.abs(k-d.view.scale)&&5>Math.abs(t-d.container.scrollLeft)&&5>Math.abs(w-d.container.scrollTop)&&z==d.view.translate.x&&B==d.view.translate.y&&f.actions.get("fitWindow").funct()},null,null,"Enter"));this.addAction("keyPressEnter",function(){d.isSelectionEmpty()?f.actions.get("smartFit").funct():d.isEnabled()&& +d.startEditingAtCell()});this.addAction("import...",function(){window.openNew=!1;window.openKey="import";window.openFile=new OpenFile(mxUtils.bind(this,function(){f.hideDialog()}));window.openFile.setConsumer(mxUtils.bind(this,function(k,t){try{var w=mxUtils.parseXml(k);h.graph.setSelectionCells(h.graph.importGraphModel(w.documentElement))}catch(z){mxUtils.alert(mxResources.get("invalidOrMissingFile")+": "+z.message)}}));f.showDialog((new OpenDialog(this)).container,320,220,!0,!0,function(){window.openFile= null})}).isEnabled=g;this.addAction("save",function(){f.saveFile(!1)},null,null,Editor.ctrlKey+"+S").isEnabled=g;this.addAction("saveAs...",function(){f.saveFile(!0)},null,null,Editor.ctrlKey+"+Shift+S");this.addAction("export...",function(){f.showDialog((new ExportDialog(f)).container,300,340,!0,!0)});this.addAction("editDiagram...",function(){var k=new EditDiagramDialog(f);f.showDialog(k.container,620,420,!0,!1);k.init()}).isEnabled=g;this.addAction("pageSetup...",function(){f.showDialog((new PageSetupDialog(f)).container, -320,240,!0,!0)}).isEnabled=g;this.addAction("print...",function(){f.showPrintDialog()},null,"sprite-print",Editor.ctrlKey+"+P");this.addAction("preview",function(){mxUtils.show(d,null,10,10)});this.addAction("undo",function(){f.undo()},null,"sprite-undo",Editor.ctrlKey+"+Z");this.addAction("redo",function(){f.redo()},null,"sprite-redo",mxClient.IS_WIN?Editor.ctrlKey+"+Y":Editor.ctrlKey+"+Shift+Z");this.addAction("cut",function(){var k=null;try{k=f.copyXml(),null!=k&&d.removeCells(k,!1)}catch(p){}try{null== -k&&mxClipboard.cut(d)}catch(p){f.handleError(p)}},null,"sprite-cut",Editor.ctrlKey+"+X");this.addAction("copy",function(){try{f.copyXml()}catch(k){}try{mxClipboard.copy(d)}catch(k){f.handleError(k)}},null,"sprite-copy",Editor.ctrlKey+"+C");this.addAction("paste",function(){if(d.isEnabled()&&!d.isCellLocked(d.getDefaultParent())){var k=!1;try{Editor.enableNativeCipboard&&(f.readGraphModelFromClipboard(function(p){if(null!=p){d.getModel().beginUpdate();try{f.pasteXml(p,!0)}finally{d.getModel().endUpdate()}}else mxClipboard.paste(d)}), -k=!0)}catch(p){}k||mxClipboard.paste(d)}},!1,"sprite-paste",Editor.ctrlKey+"+V");this.addAction("pasteHere",function(k){function p(z){if(null!=z){for(var C=!0,F=0;F"));d.cellLabelChanged(state.cell,Graph.sanitizeHtml(C));d.setCellStyles("html",k,[p[w]])}}f.fireEvent(new mxEventObject("styleChanged", -"keys",["html"],"values",[null!=k?k:"0"],"cells",p))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var k=d.getView().getState(d.getSelectionCell()),p="wrap";d.stopEditing();null!=k&&"wrap"==k.style[mxConstants.STYLE_WHITE_SPACE]&&(p=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,p)});this.addAction("rotation",function(){var k="0",p=d.getView().getState(d.getSelectionCell());null!=p&&(k=p.style[mxConstants.STYLE_ROTATION]||k);k=new FilenameDialog(f,k,mxResources.get("apply"), +function(){if(d.isEnabled()){var k=d.getEditableCells(d.getSelectionCells());d.model.beginUpdate();try{var t=d.ungroupCells();if(null!=k)for(var w=0;w"));d.cellLabelChanged(state.cell,Graph.sanitizeHtml(B));d.setCellStyles("html",k,[t[w]])}}f.fireEvent(new mxEventObject("styleChanged", +"keys",["html"],"values",[null!=k?k:"0"],"cells",t))}finally{d.getModel().endUpdate()}});this.addAction("wordWrap",function(){var k=d.getView().getState(d.getSelectionCell()),t="wrap";d.stopEditing();null!=k&&"wrap"==k.style[mxConstants.STYLE_WHITE_SPACE]&&(t=null);d.setCellStyles(mxConstants.STYLE_WHITE_SPACE,t)});this.addAction("rotation",function(){var k="0",t=d.getView().getState(d.getSelectionCell());null!=t&&(k=t.style[mxConstants.STYLE_ROTATION]||k);k=new FilenameDialog(f,k,mxResources.get("apply"), function(w){null!=w&&0mxUtils.indexOf(this.customFonts,n)&&(this.customFonts.push(n),this.editorUi.fireEvent(new mxEventObject("customFontsChanged")))}))})));this.put("formatBlock",new Menu(mxUtils.bind(this,function(f,h){function d(g,n){return f.addItem(g,null,mxUtils.bind(this,function(){null!=b.cellEditor.textarea&&(b.cellEditor.textarea.focus(),document.execCommand("formatBlock",!1,"<"+ -n+">"))}),h)}d(mxResources.get("normal"),"p");d("","h1").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 1

";d("","h2").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 2

";d("","h3").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 3

";d("","h4").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 4

";d("","h5").firstChild.nextSibling.innerHTML= +Menus.prototype.init=function(){var a=this.editorUi,b=a.editor.graph,e=mxUtils.bind(b,b.isEnabled);this.customFonts=[];this.customFontSizes=[];this.put("fontFamily",new Menu(mxUtils.bind(this,function(f,h){for(var d=mxUtils.bind(this,function(m){this.styleChange(f,m,[mxConstants.STYLE_FONTFAMILY],[m],null,h,function(){document.execCommand("fontname",!1,m);a.fireEvent(new mxEventObject("styleChanged","keys",[mxConstants.STYLE_FONTFAMILY],"values",[m],"cells",[b.cellEditor.getEditingCell()]))},function(){b.updateLabelElements(b.getSelectionCells(), +function(p){p.removeAttribute("face");p.style.fontFamily=null;"PRE"==p.nodeName&&b.replaceElement(p,"div")})}).firstChild.nextSibling.style.fontFamily=m}),g=0;gmxUtils.indexOf(this.customFonts,m)&&(this.customFonts.push(m),this.editorUi.fireEvent(new mxEventObject("customFontsChanged")))}))})));this.put("formatBlock",new Menu(mxUtils.bind(this,function(f,h){function d(g,m){return f.addItem(g,null,mxUtils.bind(this,function(){null!=b.cellEditor.textarea&&(b.cellEditor.textarea.focus(),document.execCommand("formatBlock",!1,"<"+ +m+">"))}),h)}d(mxResources.get("normal"),"p");d("","h1").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 1

";d("","h2").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 2

";d("","h3").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 3

";d("","h4").firstChild.nextSibling.innerHTML='

'+mxResources.get("heading")+" 4

";d("","h5").firstChild.nextSibling.innerHTML= '
'+mxResources.get("heading")+" 5
";d("","h6").firstChild.nextSibling.innerHTML='
'+mxResources.get("heading")+" 6
";d("","pre").firstChild.nextSibling.innerHTML='
'+mxResources.get("formatted")+"
";d("","blockquote").firstChild.nextSibling.innerHTML='
'+mxResources.get("blockquote")+"
"})));this.put("fontSize",new Menu(mxUtils.bind(this,function(f,h){var d= -[6,8,9,10,11,12,14,18,24,36,48,72];0>mxUtils.indexOf(d,this.defaultFontSize)&&(d.push(this.defaultFontSize),d.sort(function(w,z){return w-z}));for(var g=mxUtils.bind(this,function(w){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var z=b.cellEditor.textarea.getElementsByTagName("font"),C=0;CmxUtils.indexOf(d,this.customFontSizes[q])&&(n(this.customFontSizes[q]),k++);0mxUtils.indexOf(d,this.defaultFontSize)&&(d.push(this.defaultFontSize),d.sort(function(w,z){return w-z}));for(var g=mxUtils.bind(this,function(w){if(null!=b.cellEditor.textarea){document.execCommand("fontSize",!1,"3");for(var z=b.cellEditor.textarea.getElementsByTagName("font"),B=0;BmxUtils.indexOf(d,this.customFontSizes[p])&&(m(this.customFontSizes[p]),k++);0"];for(var P=0;P");for(var I=0;I
");K.push("")}K.push("");F=K.join("");G.call(H,F);F=H.cellEditor.textarea.getElementsByTagName("table");if(F.length==C.length+1)for(G=F.length-1;0<=G;G--)if(0==G||F[G]!=C[G-1]){H.selectNode(F[G].rows[0].cells[0]);break}}});var d=this.editorUi.editor.graph,g=null,n=null;null==e&&(a.div.className+=" geToolbarMenu", -a.labels=!1);a=a.addItem("",null,null,e,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";e=a.getElementsByTagName("td");1"];for(var P=0;P");for(var L=0;L
");I.push("")}I.push("");D=I.join("");H.call(G,D);D=G.cellEditor.textarea.getElementsByTagName("table");if(D.length==B.length+1)for(H=D.length-1;0<=H;H--)if(0==H||D[H]!=B[H-1]){G.selectNode(D[H].rows[0].cells[0]);break}}});var d=this.editorUi.editor.graph,g=null,m=null;null==e&&(a.div.className+=" geToolbarMenu", +a.labels=!1);a=a.addItem("",null,null,e,null,null,null,!0);a.firstChild.style.fontSize=Menus.prototype.defaultFontSize+"px";e=a.getElementsByTagName("td");1';this.appendDropDownImageHtml(a);b=a.getElementsByTagName("div")[0];b.style.marginLeft=h+"px";b.style.marginTop=d+"px";EditorUi.compactUi&&(a.getElementsByTagName("img")[0].style.left="24px",a.getElementsByTagName("img")[0].style.top="5px",a.style.width= +Toolbar.prototype.addDropDownArrow=function(a,b,e,f,h,d,g,m){h=EditorUi.compactUi?h:m;a.style.whiteSpace="nowrap";a.style.overflow="hidden";a.style.position="relative";a.style.width=f-(null!=g?g:32)+"px";a.innerHTML='
';this.appendDropDownImageHtml(a);b=a.getElementsByTagName("div")[0];b.style.marginLeft=h+"px";b.style.marginTop=d+"px";EditorUi.compactUi&&(a.getElementsByTagName("img")[0].style.left="24px",a.getElementsByTagName("img")[0].style.top="5px",a.style.width= e-10+"px")};Toolbar.prototype.setFontName=function(a){if(null!=this.fontMenu){this.fontMenu.innerText="";var b=document.createElement("div");b.style.display="inline-block";b.style.overflow="hidden";b.style.textOverflow="ellipsis";b.style.maxWidth="66px";mxUtils.write(b,a);this.fontMenu.appendChild(b);this.appendDropDownImageHtml(this.fontMenu)}}; Toolbar.prototype.setFontSize=function(a){if(null!=this.sizeMenu){this.sizeMenu.innerText="";var b=document.createElement("div");b.style.display="inline-block";b.style.overflow="hidden";b.style.textOverflow="ellipsis";b.style.maxWidth="24px";mxUtils.write(b,a);this.sizeMenu.appendChild(b);this.appendDropDownImageHtml(this.sizeMenu)}}; Toolbar.prototype.createTextToolbar=function(){var a=this.editorUi,b=a.editor.graph,e=this.addMenu("",mxResources.get("style"),!0,"formatBlock");e.style.position="relative";e.style.whiteSpace="nowrap";e.style.overflow="hidden";e.innerHTML=mxResources.get("style");this.appendDropDownImageHtml(e);EditorUi.compactUi&&(e.style.paddingRight="18px",e.getElementsByTagName("img")[0].style.right="1px",e.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.fontMenu=this.addMenu("",mxResources.get("fontFamily"), @@ -3713,109 +3695,128 @@ null,"geIcon geSprite geSprite-fontbackground");h.setAttribute("title",mxResourc "-2px";f.appendChild(e);this.appendDropDownImageHtml(f);EditorUi.compactUi&&(f.getElementsByTagName("img")[0].style.left="22px",f.getElementsByTagName("img")[0].style.top="5px");this.addSeparator();this.addButton("geIcon geSprite geSprite-code",mxResources.get("html"),function(){b.cellEditor.toggleViewMode();0d.div.clientHeight&&(d.div.style.width="40px");d.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(d, -arguments);this.editorUi.resetCurrentMenu();d.destroy()});var q=mxUtils.getOffset(a);d.popup(q.x,q.y+a.offsetHeight,null,n);this.editorUi.setCurrentMenu(d,a)}g=!0;mxEvent.consume(n)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(n){g=null==d||null==d.div||null==d.div.parentNode;n.preventDefault()}))}};Toolbar.prototype.destroy=function(){null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null)};var OpenDialog=function(){var a=document.createElement("iframe");a.style.backgroundColor="transparent";a.allowTransparency="true";a.style.borderStyle="none";a.style.borderWidth="0px";a.style.overflow="hidden";a.style.maxWidth="100%";a.frameBorder="0";a.setAttribute("width",(Editor.useLocalStorage?640:320)+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorDialog=function(a,b,e,f,h,d){function g(I,Z,S){var Y=I.toLowerCase();if(null!= -h&&(""==I||"automatic"==Y||Y==z.toLowerCase()||Y==mxResources.get("default").toLowerCase())||Y==mxResources.get("automatic").toLowerCase())I="default";Y==mxResources.get("none").toLowerCase()&&(I="none");if(null!=h&&"default"==I)Z?I=d:null!=S&&(I=S);else if("none"!=I&&"#"!=I.charAt(0))try{var V=document.createElement("canvas").getContext("2d");V.fillStyle="#"+I;V.fillStyle!="#"+I.toLowerCase()&&(V.fillStyle=I,I=V.fillStyle.substring(1).toUpperCase())}catch(L){}return I}function n(){var I=g(p.value, -!1);/(^#?[a-zA-Z0-9]*$)/.test(I)?("default"!=I&&("none"!=I&&"#"!=I.charAt(0)&&(I="#"+I),ColorDialog.addRecentColor("none"!=I?I.substring(1):I,12)),w(I),a.hideDialog()):a.handleError({message:mxResources.get("invalidInput")})}function q(){mxClient.IS_TOUCH||(p.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?p.select():document.execCommand("selectAll",!1,null))}function k(){var I=D(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);I.style.marginBottom= -"8px";return I}this.editorUi=a;var p=document.createElement("input");p.style.marginBottom="10px";p.style.marginLeft="8px";mxClient.IS_IE&&(p.style.marginTop="10px",document.body.appendChild(p));var w=null!=e?e:this.createApplyFunction();null==d&&(d=Editor.isDarkMode()&&"default"==h?"#ffffff":"#000000");var z=d.substring(1).toUpperCase()+" ("+mxResources.get("automatic")+")";this.init=function(){q()};var C=new mxJSColor.color(p);C.pickerOnfocus=!1;C.showPicker();e=document.createElement("div");mxJSColor.picker.box.style.position= -"relative";mxJSColor.picker.box.style.width="230px";mxJSColor.picker.box.style.height="100px";mxJSColor.picker.box.style.paddingBottom="10px";e.appendChild(mxJSColor.picker.box);var F=document.createElement("center"),D=mxUtils.bind(this,function(I,Z,S,Y){Z=null!=Z?Z:12;var V=document.createElement("table");V.style.borderCollapse="collapse";V.setAttribute("cellspacing","0");V.style.marginBottom="20px";V.style.cellSpacing="0px";V.style.marginLeft="1px";var L=document.createElement("tbody");V.appendChild(L); -for(var U=I.length/Z,ba=0;bad.div.clientHeight&&(d.div.style.width="40px");d.hideMenu=mxUtils.bind(this,function(){mxPopupMenu.prototype.hideMenu.apply(d, +arguments);this.editorUi.resetCurrentMenu();d.destroy()});var p=mxUtils.getOffset(a);d.popup(p.x,p.y+a.offsetHeight,null,m);this.editorUi.setCurrentMenu(d,a)}g=!0;mxEvent.consume(m)}));mxEvent.addListener(a,mxClient.IS_POINTER?"pointerdown":"mousedown",mxUtils.bind(this,function(m){g=null==d||null==d.div||null==d.div.parentNode;m.preventDefault()}))}};Toolbar.prototype.destroy=function(){null!=this.gestureHandler&&(mxEvent.removeGestureListeners(document,this.gestureHandler),this.gestureHandler=null)};var OpenDialog=function(){var a=document.createElement("iframe");a.style.backgroundColor="transparent";a.allowTransparency="true";a.style.borderStyle="none";a.style.borderWidth="0px";a.style.overflow="hidden";a.style.maxWidth="100%";a.frameBorder="0";a.setAttribute("width",(Editor.useLocalStorage?640:320)+"px");a.setAttribute("height",(Editor.useLocalStorage?480:220)+"px");a.setAttribute("src",OPEN_FORM);this.container=a},ColorPicker=function(){function a(D,E,G){if(null==D)return[G,G,G];var I=Math.floor(D), +H=G*(1-E);D=G*(1-E*(I%2?D-I:1-(D-I)));switch(I){case 6:case 0:return[G,D,H];case 1:return[D,G,H];case 2:return[H,G,D];case 3:return[H,D,G];case 4:return[D,H,G];case 5:return[G,H,D]}}mxEventSource.call(this);var b=document.createElement("div");b.style.overflow="visible";b.style.position="relative";b.style.top="0px";b.style.left="0px";b.style.width="230px";b.style.height="114px";var e=document.createElement("div");e.style.border="1px solid light-dark(black, white)";e.style.backgroundImage="url("+this.hsImage+ +")";e.style.position="absolute";e.style.overflow="hidden";e.style.cursor="crosshair";e.style.width="181px";e.style.height="101px";e.style.left="6px";e.style.top="4px";var f=document.createElement("div");f.style.background="url("+this.crossImage+")";f.style.pointerEvents="none";f.style.position="absolute";f.style.width="15px";f.style.height="15px";f.style.left="-8px";f.style.top="-8px";var h=[0,0,1];e.appendChild(f);b.appendChild(e);sliderBox=document.createElement("div");sliderBox.style.position= +"absolute";sliderBox.style.cursor="pointer";sliderBox.style.width="38px";sliderBox.style.height="110px";sliderBox.style.left="199px";sliderBox.style.top="4px";var d=document.createElement("div");d.style.border="1px solid light-dark(black, white)";d.style.pointerEvents="none";d.style.overflow="hidden";d.style.position="absolute";d.style.width="16px";d.style.height="101px";d.style.left="9px";d.style.top="0px";var g=!1,m=!1,p=mxUtils.bind(this,function(D){var E=Math.round(100*(1-h[1]));f.style.left= +Math.round(h[0]/6*180)-8+"px";f.style.top=E-8+"px";E=d.childNodes;for(var G=a(h[0],h[1],1),I=0;IG&&(G=0);6D&&(D=0);1E&&(E=0);1k;k+=4)t=document.createElement("div"),t.style.height= +"4px",t.style.pointerEvents="none",d.appendChild(t);b.appendChild(d);var B=document.createElement("div");B.style.background="url("+this.arrowImage+")";B.style.position="absolute";B.style.pointerEvents="none";B.style.width="7px";B.style.height="11px";B.style.left="2px";B.style.top="-3px";sliderBox.appendChild(B);sliderBox.appendChild(d);b.appendChild(sliderBox);this.fromString=function(D,E){E=null!=E?E:!1;if(null==D||""==D||mxUtils.isVarColor(D)||D==mxConstants.NONE)D="#ffffff",E=!0;var G=mxUtils.parseColor(D); +D=G.r/255;var I=G.g/255,H=G.b/255,P=Math.min(Math.min(D,I),H);G=Math.max(Math.max(D,I),H);var L=G-P;0===L?D=[null,0,G]:(D=D===P?3+(H-I)/L:I===P?5+(D-H)/L:1+(I-D)/L,D=[6===D?0:D,L/G,G]);null!=D[0]&&(h[0]=D[0]);0!=D[2]&&(h[1]=D[1]);h[2]=D[2];p(E)};this.fromString("#ffffff");this.div=b};mxUtils.extend(ColorPicker,mxEventSource);ColorPicker.prototype.hsImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALUAAABlCAIAAACEDzXRAAAKQ0lEQVR42u2d23IjKwxFBeRh5v8/9uQlzXlI2gGELoCEm6pxubp6PI69WoV3C20uIQPAH4A/AH/p41/pDcTxP4BPGDtq3vYJGPpv8craeRdo/fyTI8ZhHnodOGgcV/3rnx8QI0SABO2xfAbiCfVR8Wj+CD8jenbRJNyGOxLoAaH1iLu4EUEHAv1+MsQ4zLE4AiIOcpibv4u9OET6+cP4ASnJ1JH4/G60A9km+GbBxLlpKAkADoR2JnaBrvWD/x1GCZn9EYLEHqVfI6Efx0D7E9tDF/rBSJ54l8FqTUse0J+EvxPrdK0fD4aOLXQi7zyGxMaRvvWjjH2U8o9I44OKnf+wyCpHoR/Phk6d/COq8481YrNI3/qR2B+kMl1Fl6J8o/JrU/GEA6HdiB2ha/0YBVx7rFwNHAj9JuIl6EI/qKyJug4Yvg7xA0QEpB8nQe8itoQu9EOT8M3mTsqUSUzykH6cBO1PbA9d91+ShDzV9xrtcgW21IT6L0yfcS90FKCdw+wS6Q9ISWjVfLTVVT2mdiPGGRduFKWm7dBStWlLmI0j/QExdgp7gT5qCu2BLKiLqtc94hI7PB8auQP4KuyIvSJ960fUqXWcd2F48Khr1bHSj2dDp/afmg7tMrFxpG/9mHMFuqrH3spFw0s0Bgr9OAzamdgFutaPpMuqo6WVEXWJdSL14xhof2J76MKfS2yXWGOVB1WXXGOVdxFSx587CXoLsTE0689RH7VW4RMLeKI9wPpzz4XeS2wDzdbXR52AWStjwiSAA6HdiB2h1f6cqT0whzzuzz0LejuxATTy90Xt40v7CzdGRvKS4O/zQ0AiXaRW5x/dv4vS4A/a308LYR5pFquRRvlHIrKWoCj5woCVId4eR/KPNDjURg2tdEC7rSQN5B9DYR70X5YivVxft7AyrOvrD4V2JnaBJurr+qpemLEywlRhT6qvPx16C7ExdK0fSjcj0maAzsqgBt7rfIxGP46B9iT2gi70I842bNj0U4wd/WAG/L5VP3p0W4iNoYv6Oh6eoJmSMW5laIzF8iT1TtgeV9RZoZ7QvdEUzsQu0CP+HOMKDFoZvDFg6s89CNqf2B5a4e8Hts84W0pgeohBtspBXYp8H3Tk/H23MBtHuvbn5mp7dlU9TUkP+XNJMabzHdCIbnuYDSItzZ+bdgUWrAwNPhwInRxw1/wXuYGj+4vo7flboRpjEQ6EjgojYK9/K04NFfNTauEBypXQWQLAfqQoHl9CfvpQ6C3ExtC9/q2YW2u6X1JWzfsYFPKX3L99LrQ/sT10XR+jKh+UN2AxlDOyXfLQaxxf/fkvT4d2JnaBZv258M6h4IFu2Em7/sezoLcQG0Mjfy6xrqLnVBLGWHw1i69WP5LCCn0TNEL3DLNXpCV/n5oo5jAVLY5Em6i8Pwm6uSNuCrNxpNX+nDira20qqyZriv384xhoZ2IX6Lr/wg8eiwpXYGQqPEgjsBrX+er3X46B9ie2h6bX/4i6IfcLS2mIY++7TfoCuLj6hwgN89CwBJ3Gx8rOVsn0kQ48tDS/4X1L8SzMb3BbkGdtwsD05AbP9YOU8xui+uljZei/P/3qx2HQbsSO0Ar/lveHLZYCVK4GeN1P5N+eAb2R2Aya9ueUY+8dlhLtdhWvgfEfz4AeGf9hR2wcaeTPpacvRdzLTx8J/Qq1Ij995PrJ3/mp0p8LO5YyF0s215g/9yxoZ2IXaLo+FiwtgTlvIAznp4+G3khsBk3Pf5mYvqOwMqZnNnw3i9cRDoT2JPaCZuvreskDuXkHxfQMvfbBgdBbiI2hC/3QLCg6lESZZkrfJ7nSj3gWNEMcRkYJsf5L0BXENBl1WV8/aquMLM9/eSJ0UtxZmFGGg4MigZ75ovHnvsOcUX09zRbzjCrU/K/Rev0gT2i2vu4cZrNI1+sH2e49Yb3lRC6e9fSS9ETohjj7hdkx0rQ/57/rxIrhBQdCv494Hlrtz1lo30Qjz1z+cRh02ndTNIMm1j8NxtmePs+76i+/esJHrH/6dGh/YntoRf9l2RtQWgJXzY4bdtbqx0OhnYldoHv7I79jf4+rOGGaRWr14yToLcTG0Ky/v32rjAsdX9S5vgI4ENqT2Asa7Z/9vq0yStiGNNVHkOe/RGmqwBQ0jEDHFpoJ85BLN+jPaRoHGWl2/2yx3msxVRHjZ0Td4GfV/Bf9bCM1dBiBfrHeJ1HR6dKEedDf5yPdBLilp/efC3Ribb1VxlUHGQe8iTb0598+Hdqf2B6a3b9SOerezsoIBWaJ3IBn1fp0j4PeQmwMzc5/idLK3UZWRkmKX2zA4Vc/DoPeSGwGrdvfY24RpKmVjrLuCQdCuxE7Qkv64TZ3Z44dVPrxUOh3EK9C1/lHGpz7ZzpVsYTF7K8Hyj+Ogd5FbAk9uL9H9LIyYg821sjo13gYtD+xPbRU/9Ds/b1sZTTIr5OStMGHA6GdiV2gUf2UmQcfJdUbXOoe6HoN1A0b2uQD4EBosXJqQTwKnXvXAEX+oZlfGaS9ewetDGCLeV1exH4e9Mr+2TDpv2iggYFW+LdBsTbngv/yUroGH0jleEX7MOgtxMbQ7PzKoMuajKyM8pYIiB194HnQzsQu0Gp/LvpulVHylsgK/TgG2p/YHrqXf6T3bJUBhfxFWUDPg95CbAytm/+ycasM9WOxWu0PnTniLWE2iLRi/4Z3bJXRvY76s0+Arl93I3aMNOHPBce2PdSkL7Kpnwe9l9gGutCPoFgkUtytXAGbex0vKCznSOs00o+ToLcQG0N/QErCrG6jrTIynVUDwo896vCzssPrNnAYtD+xPfR9fwmKeu/CVhm5OAn1STPkvhxBW1KXjeP60Y/DoJ2JXaAL/RCPy+PXc80L9d7OV294dVPbC/fb4EDoLcTG0IV+TCDrrIxMHIFg512BWj9OgvYk9oK+9SMoZG55q/JMiGS40/sLjacu28T3MVfd0Aha+u3QJXr+0Q//MBtHutaPQOzh3H0RBoZS5OJ/MjqJ9x2vQb7qgSuvX0StH0+FLptzrvTDh9gl0oV+iAbi2lAsqNmbK3yBAyLNdbRzW8Y6Btqf2B76A2IURE2zZY16KGfZlwqofJSL4feABka+xCNX+ekx0LuILaFr/Zit7s4ZA7y5Qg2sDr/t4zDodxCvQt/6occctDKGriMPzH85D9qN2BG61g/QwcLSVDSGl78C6LePY6A3EptBf0BKcjWWH/GqyJqoxKnMufEVBLJxAJwJ7U9sDH3fX0CxnIB4orMyuilTyRh6g+0bfDgQ2p/YHrrQD+jV6qb/SdRrMit8TRWwyEabxgFwJrQnsQt0rR+LR3VqFNiGHRBv73ge9EZiM+haPyicuRcVmIxzAMTMl9wfi3sGtBuxF3ShH92C29yJTteU+ohbRrZk3Qe9hdgY+tYPnOqanA+mTN33ZGKE06HQbsQu0LV+MF8+94rU5dK8B8/KyJaI+6D9ie2hC/3Q12QnSnYLn5p9P/6d0D7EltAh5wz/Hv8exON/LUjHOuz5CksAAAAASUVORK5CYII="; +ColorPicker.prototype.crossImage="data:image/gif;base64,R0lGODlhDwAPAKEBAAAAAP///////////yH5BAEKAAIALAAAAAAPAA8AAAIklB8Qx53b4otSUWcvyiz4/4AeQJbmKY4p1HHapBlwPL/uVRsFADs=";ColorPicker.prototype.arrowImage="data:image/gif;base64,R0lGODlhBwALAKECAAAAAP///6g8eKg8eCH5BAEKAAIALAAAAAAHAAsAAAITTIQYcLnsgGxvijrxqdQq6DRJAQA7"; +var ColorDialog=function(a,b,e,f,h,d,g){function m(W){return mxUtils.color2hex("#"+W).substring(1).toUpperCase()}function p(){V.src="none"==M.style.display?Editor.arrowRightImage:Editor.arrowDownImage}function k(W){""==W.value&&null!=I&&P?W.style.background=W==Y?I.dark:I.light:""==W.value||W.value==mxConstants.NONE||mxUtils.isVarColor(W.value)?W.style.background="transparent":W.style.background="#"+W.value;W.style.color="transparent"==W.style.background?"light-dark(#000000, #ffffff)":mxUtils.isDarkColor(W.style.background)? +"#ffffff":"#000000"}function t(){k(L);k(Y)}function w(W){W?(L.value="",Y.value="",R.value="automatic",L.setAttribute("placeholder",mxResources.get("useBlackAndWhite")),Y.setAttribute("title",mxResources.get("useBlackAndWhite")),L.setAttribute("title",mxResources.get("useBlackAndWhite"))):(""==L.value&&null!=I&&(L.value=I.light.substring(1).toUpperCase()),L.removeAttribute("placeholder"),L.removeAttribute("title"),""==Y.value&&null!=I&&(Y.value=I.dark.substring(1).toUpperCase()),Y.removeAttribute("placeholder"), +Y.removeAttribute("title"),W=!1);P=W}function z(W){var ka=W.value,J=ka.toLowerCase();null==h||""!=ka&&"automatic"!=J&&"default"!=J&&J!=mxResources.get("default").toLowerCase()&&J!=mxResources.get("automatic").toLowerCase()||null==I?(W.value==mxConstants.NONE||mxUtils.isVarColor(W.value)||(W.value=m(W.value),sa.fromString("#"+W.value)),w(!1),W!=Y||L.value==mxConstants.NONE&&Y.value==mxConstants.NONE||(R.value="custom"),W==L&&"automatic"==R.value&&(L.value==mxConstants.NONE?Y.value=mxConstants.NONE: +mxUtils.isVarColor(L.value)?Y.value=L.value:Y.value=mxUtils.rgba2hex(mxUtils.getInverseColor("#"+W.value)).substring(1).toUpperCase()),t()):ca.click()}function B(){var W=L.value,ka=Y.value;if(P&&null!=I||(/(^#?[a-zA-Z0-9]*$)/.test(W)||mxUtils.isVarColor(W))&&(/(^#?[a-zA-Z0-9]*$)/.test(ka)||mxUtils.isVarColor(ka))){if(P)W="default";else if(""==W&&(W=mxConstants.NONE),""==ka&&(ka=mxConstants.NONE),W==mxConstants.NONE||mxUtils.isVarColor(W)||"#"==W.charAt(0)||(W="#"+m(W)),ka==mxConstants.NONE||mxUtils.isVarColor(ka)|| +"#"==ka.charAt(0)||(ka="#"+m(ka)),ColorDialog.addRecentColor("none"!=W?W.substring(1):W,12),"automatic"!=R.value&&ColorDialog.addRecentColor("none"!=ka?ka.substring(1):ka,12),"none"!=W||"none"!=ka)W=W==mxConstants.NONE?"transparent":W,ka=ka==mxConstants.NONE?"transparent":ka,g||"automatic"==R.value||(W="light-dark("+W+","+ka+")");ia(W);a.hideDialog()}else a.handleError({message:mxResources.get("invalidInput")})}function D(){mxClient.IS_TOUCH||(la.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode? +la.select():document.execCommand("selectAll",!1,null))}function E(){var W=aa(0==ColorDialog.recentColors.length?["FFFFFF"]:ColorDialog.recentColors,11,"FFFFFF",!0);W.style.marginBottom="8px";return W}function G(W){13==W.keyCode&&(z(mxEvent.getSource(W)),B())}var I=null!=d?mxUtils.getLightDarkColor(d):null,H=a.editor.graph;this.editorUi=a;var P=!1;"default"==b||"transparent"==b||b==mxConstants.NONE||mxUtils.isVarColor(b)||mxUtils.isHexColor(b)||mxUtils.isRgbColor(b)||mxUtils.isLightDarkColor(b)||(b= +mxUtils.color2hex(b));var L=document.createElement("input");L.style.textOverflow="ellipsis";L.style.margin="0 0 0 4px";L.style.width="100%";d=document.createElement("div");d.style.padding="0 4px";var U=document.createElement("div");U.style.display="flex";U.style.alignItems="center";d.appendChild(U);var Y=document.createElement("input");Y.style.textOverflow="ellipsis";Y.style.margin="0 4px";Y.style.maxWidth="60px";Y.style.width="100%";var R=document.createElement("select");R.style.textOverflow="ellipsis"; +R.style.width="100%";var T=document.createElement("option");T.setAttribute("value","automatic");mxUtils.write(T,mxResources.get("automatic"));R.appendChild(T);T=document.createElement("option");T.setAttribute("value","custom");mxUtils.write(T,mxResources.get("userDefined"));R.appendChild(T);R.value=mxUtils.isLightDarkColor(b)?"custom":"automatic";var M=document.createElement("div");M.style.padding="0 6px 0 6px";T=document.createElement("img");T.setAttribute("title",mxResources.get("dark"));T.className= +"geAdaptiveAsset";T.src=Editor.thinDarkImage;T.style.width="20px";M.appendChild(T);mxEvent.addListener(T,"click",function(){Y.focus()});M.appendChild(Y);M.appendChild(R);M.style.display="flex";M.style.alignItems="center";T=document.createElement("div");T.style.display="flex";T.style.alignItems="center";T.style.userSelect="none";T.style.cursor="pointer";T.style.padding="2px 0 2px 0";var V=document.createElement("img");V.setAttribute("title",mxResources.get("dark"));V.className="geAdaptiveAsset";V.style.marginLeft= +"-2px";T.appendChild(V);mxUtils.write(T,mxResources.get("advanced"));p();mxEvent.addListener(T,"click",function(){M.style.display="none"==M.style.display?"flex":"none";p();p();ColorDialog.collapsed="none"==M.style.display});var ca=mxUtils.button("",function(){w(!0);t();la.focus();""==la.value&&null!=I&&P&&sa.fromString(la==Y?I.dark:I.light,!0)});mxEvent.addListener(R,"change",function(){"automatic"==R.value?(L.focus(),z(L)):(w(!1),mxUtils.isVarColor(Y.value)||(Y.value=P&&null!=I?I.dark.substring(1).toUpperCase(): +Y.value=mxUtils.rgba2hex(mxUtils.getInverseColor("#"+L.value)).substring(1).toUpperCase()),Y.focus(),D());t()});mxEvent.addListener(L,"change",function(){z(L)});mxEvent.addListener(Y,"change",function(){z(Y)});var ia=null!=e?e:this.createApplyFunction();this.init=function(){D()};var sa=new ColorPicker,la=Editor.isDarkMode()&&("auto"==H.getAdaptiveColors()||"simple"==H.getAdaptiveColors()&&"custom"==R.value)&&!g?Y:L;mxEvent.addListener(L,"focus",function(){la=L});mxEvent.addListener(Y,"focus",function(){la= +Y});sa.addListener("change",function(W,ka){W=ka.getProperty("color").substring(1).toUpperCase();la.value.toUpperCase()!=W&&(la.value=W,z(la),window.setTimeout(function(){la.focus()},0))});e=document.createElement("div");e.appendChild(sa.div);var O=document.createElement("div");O.style.display="flex";O.style.flexFlow="row wrap";O.style.justifyContent="center";O.style.paddingTop="10px";var aa=mxUtils.bind(this,function(W,ka,J,da){ka=null!=ka?ka:12;var ma=document.createElement("table");ma.style.borderCollapse= +"collapse";ma.setAttribute("cellspacing","0");ma.style.marginBottom="20px";ma.style.cellSpacing="0px";ma.style.marginLeft="1px";var ua=document.createElement("tbody");ma.appendChild(ua);for(var Qa=W.length/ka,pa=0;pa=b&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]}; +ColorDialog.addRecentColor=function(a,b){null!=a&&(mxUtils.remove(a,ColorDialog.recentColors),ColorDialog.recentColors.splice(0,0,a),ColorDialog.recentColors.length>=b&&ColorDialog.recentColors.pop())};ColorDialog.resetRecentColors=function(){ColorDialog.recentColors=[]};ColorDialog.collapsed=!0; var AboutDialog=function(a){var b=document.createElement("div");b.setAttribute("align","center");var e=document.createElement("h3");mxUtils.write(e,mxResources.get("about")+" GraphEditor");b.appendChild(e);e=document.createElement("img");e.style.border="0px";e.setAttribute("width","176");e.setAttribute("width","151");e.setAttribute("src",IMAGE_PATH+"/logo.png");b.appendChild(e);mxUtils.br(b);mxUtils.write(b,"Powered by mxGraph "+mxClient.VERSION);mxUtils.br(b);e=document.createElement("a");e.setAttribute("href", -"http://www.jgraph.com/");e.setAttribute("target","_blank");mxUtils.write(e,"www.jgraph.com");b.appendChild(e);mxUtils.br(b);mxUtils.br(b);e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);this.container=b},TextareaDialog=function(a,b,e,f,h,d,g,n,q,k,p,w,z,C,F){k=null!=k?k:!1;g=document.createElement("div");g.style.position="absolute";g.style.top="20px";g.style.bottom="20px";g.style.left="20px";g.style.right="20px";n=document.createElement("div"); -n.style.position="absolute";n.style.left="0px";n.style.right="0px";var D=n.cloneNode(!1),H=n.cloneNode(!1);n.style.top="0px";n.style.height="20px";D.style.top="20px";D.style.bottom="64px";H.style.bottom="0px";H.style.height="60px";H.style.textAlign="right";H.style.paddingTop="14px";H.style.boxSizing="border-box";mxUtils.write(n,b);g.appendChild(n);g.appendChild(D);g.appendChild(H);null!=F&&n.appendChild(F);var K=document.createElement("textarea");p&&K.setAttribute("wrap","off");K.setAttribute("spellcheck", -"false");K.setAttribute("autocorrect","off");K.setAttribute("autocomplete","off");K.setAttribute("autocapitalize","off");mxUtils.write(K,e||"");K.style.resize="none";K.style.outline="none";K.style.position="absolute";K.style.boxSizing="border-box";K.style.top="0px";K.style.left="0px";K.style.height="100%";K.style.width="100%";this.textarea=K;this.init=function(){K.focus();K.scrollTop=0};D.appendChild(K);null==z||a.isOffline()||H.appendChild(a.createHelpIcon(z));if(null!=C)for(b=0;bMAX_AREA||0>=C.value?"red":"";F.style.backgroundColor=C.value*F.value>MAX_AREA||0>=F.value?"red":""}var f=a.editor.graph,h=f.getGraphBounds(),d=f.view.scale,g=Math.ceil(h.width/ -d),n=Math.ceil(h.height/d);d=document.createElement("table");var q=document.createElement("tbody");d.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");h=document.createElement("tr");var k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,mxResources.get("filename")+":");h.appendChild(k);var p=document.createElement("input");p.setAttribute("value",a.editor.getOrCreateFilename());p.style.width="180px";k=document.createElement("td");k.appendChild(p);h.appendChild(k); -q.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");h.appendChild(k);var w=document.createElement("select");w.style.width="180px";k=document.createElement("option");k.setAttribute("value","png");mxUtils.write(k,mxResources.get("formatPng"));w.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),w.appendChild(k)); -k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));w.appendChild(k);k=document.createElement("option");k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));w.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),w.appendChild(k));k=document.createElement("td");k.appendChild(w);h.appendChild(k);q.appendChild(h);h=document.createElement("tr"); -k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");h.appendChild(k);var z=document.createElement("input");z.setAttribute("type","number");z.setAttribute("value","100");z.style.width="180px";k=document.createElement("td");k.appendChild(z);h.appendChild(k);q.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("width")+":");h.appendChild(k);var C=document.createElement("input"); -C.setAttribute("value",g);C.style.width="180px";k=document.createElement("td");k.appendChild(C);h.appendChild(k);q.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("height")+":");h.appendChild(k);var F=document.createElement("input");F.setAttribute("value",n);F.style.width="180px";k=document.createElement("td");k.appendChild(F);h.appendChild(k);q.appendChild(h);h=document.createElement("tr");k=document.createElement("td"); -k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("dpi")+":");h.appendChild(k);var D=document.createElement("select");D.style.width="180px";k=document.createElement("option");k.setAttribute("value","100");mxUtils.write(k,"100dpi");D.appendChild(k);k=document.createElement("option");k.setAttribute("value","200");mxUtils.write(k,"200dpi");D.appendChild(k);k=document.createElement("option");k.setAttribute("value","300");mxUtils.write(k,"300dpi");D.appendChild(k);k=document.createElement("option"); -k.setAttribute("value","400");mxUtils.write(k,"400dpi");D.appendChild(k);k=document.createElement("option");k.setAttribute("value","custom");mxUtils.write(k,mxResources.get("custom"));D.appendChild(k);var H=document.createElement("input");H.style.width="180px";H.style.display="none";H.setAttribute("value","100");H.setAttribute("type","number");H.setAttribute("min","50");H.setAttribute("step","50");var K=!1;mxEvent.addListener(D,"change",function(){"custom"==this.value?(this.style.display="none",H.style.display= -"",H.focus()):(H.value=this.value,K||(z.value=this.value))});mxEvent.addListener(H,"change",function(){var Y=parseInt(H.value);isNaN(Y)||0>=Y?H.style.backgroundColor="red":(H.style.backgroundColor="",K||(z.value=Y))});k=document.createElement("td");k.appendChild(D);k.appendChild(H);h.appendChild(k);q.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("background")+":");h.appendChild(k);var G=document.createElement("input"); -G.setAttribute("type","checkbox");G.checked=null==f.background||f.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(G);mxUtils.write(k,mxResources.get("transparent"));h.appendChild(k);q.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("grid")+":");h.appendChild(k);var P=document.createElement("input");P.setAttribute("type","checkbox");P.checked=!1;k=document.createElement("td");k.appendChild(P); -h.appendChild(k);q.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");h.appendChild(k);var I=document.createElement("input");I.setAttribute("type","number");I.setAttribute("value",ExportDialog.lastBorderValue);I.style.width="180px";k=document.createElement("td");k.appendChild(I);h.appendChild(k);q.appendChild(h);d.appendChild(q);mxEvent.addListener(w,"change",b);b();mxEvent.addListener(z,"change", -function(){K=!0;var Y=Math.max(0,parseFloat(z.value)||100)/100;z.value=parseFloat((100*Y).toFixed(2));0=parseInt(z.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var Y=p.value,V=w.value,L=Math.max(0,parseFloat(z.value)||100)/100,U=Math.max(0,parseInt(I.value)),ba=f.background,ja=Math.max(1,parseInt(H.value));if(("svg"==V||"png"==V|| -"pdf"==V)&&G.checked)ba=null;else if(null==ba||ba==mxConstants.NONE)ba="#ffffff";ExportDialog.lastBorderValue=U;ExportDialog.exportFile(a,Y,V,ba,L,U,ja,P.checked)}}));Z.className="geBtn gePrimaryBtn";var S=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});S.className="geBtn";a.editor.cancelFirst?(k.appendChild(S),k.appendChild(Z)):(k.appendChild(Z),k.appendChild(S));h.appendChild(k);q.appendChild(h);d.appendChild(q);this.container=d};ExportDialog.lastBorderValue=0; +"http://www.jgraph.com/");e.setAttribute("target","_blank");mxUtils.write(e,"www.jgraph.com");b.appendChild(e);mxUtils.br(b);mxUtils.br(b);e=mxUtils.button(mxResources.get("close"),function(){a.hideDialog()});e.className="geBtn gePrimaryBtn";b.appendChild(e);this.container=b},TextareaDialog=function(a,b,e,f,h,d,g,m,p,k,t,w,z,B,D){k=null!=k?k:!1;g=document.createElement("div");g.style.position="absolute";g.style.top="20px";g.style.bottom="20px";g.style.left="20px";g.style.right="20px";m=document.createElement("div"); +m.style.position="absolute";m.style.left="0px";m.style.right="0px";var E=m.cloneNode(!1),G=m.cloneNode(!1);m.style.top="0px";m.style.height="20px";E.style.top="20px";E.style.bottom="64px";G.style.bottom="0px";G.style.height="60px";G.style.textAlign="right";G.style.paddingTop="14px";G.style.boxSizing="border-box";mxUtils.write(m,b);g.appendChild(m);g.appendChild(E);g.appendChild(G);null!=D&&m.appendChild(D);var I=document.createElement("textarea");t?I.setAttribute("wrap","off"):I.style.wordBreak="break-all"; +I.setAttribute("spellcheck","false");I.setAttribute("autocorrect","off");I.setAttribute("autocomplete","off");I.setAttribute("autocapitalize","off");mxUtils.write(I,e||"");I.style.resize="none";I.style.outline="none";I.style.position="absolute";I.style.boxSizing="border-box";I.style.top="0px";I.style.left="0px";I.style.height="100%";I.style.width="100%";this.textarea=I;this.init=function(){I.focus();I.scrollTop=0};E.appendChild(I);null==z||a.isOffline()||G.appendChild(a.createHelpIcon(z));if(null!= +B)for(b=0;bMAX_AREA||0>=B.value?"red":"";D.style.backgroundColor=B.value*D.value>MAX_AREA||0>=D.value?"red":""}var f=a.editor.graph,h=f.getGraphBounds(),d=f.view.scale,g=Math.ceil(h.width/ +d),m=Math.ceil(h.height/d);d=document.createElement("table");var p=document.createElement("tbody");d.setAttribute("cellpadding",mxClient.IS_SF?"0":"2");h=document.createElement("tr");var k=document.createElement("td");k.style.fontSize="10pt";k.style.width="100px";mxUtils.write(k,mxResources.get("filename")+":");h.appendChild(k);var t=document.createElement("input");t.setAttribute("value",a.editor.getOrCreateFilename());t.style.width="180px";k=document.createElement("td");k.appendChild(t);h.appendChild(k); +p.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("format")+":");h.appendChild(k);var w=document.createElement("select");w.style.width="180px";k=document.createElement("option");k.setAttribute("value","png");mxUtils.write(k,mxResources.get("formatPng"));w.appendChild(k);k=document.createElement("option");ExportDialog.showGifOption&&(k.setAttribute("value","gif"),mxUtils.write(k,mxResources.get("formatGif")),w.appendChild(k)); +k=document.createElement("option");k.setAttribute("value","jpg");mxUtils.write(k,mxResources.get("formatJpg"));w.appendChild(k);k=document.createElement("option");k.setAttribute("value","svg");mxUtils.write(k,mxResources.get("formatSvg"));w.appendChild(k);ExportDialog.showXmlOption&&(k=document.createElement("option"),k.setAttribute("value","xml"),mxUtils.write(k,mxResources.get("formatXml")),w.appendChild(k));k=document.createElement("td");k.appendChild(w);h.appendChild(k);p.appendChild(h);h=document.createElement("tr"); +k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("zoom")+" (%):");h.appendChild(k);var z=document.createElement("input");z.setAttribute("type","number");z.setAttribute("value","100");z.style.width="180px";k=document.createElement("td");k.appendChild(z);h.appendChild(k);p.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("width")+":");h.appendChild(k);var B=document.createElement("input"); +B.setAttribute("value",g);B.style.width="180px";k=document.createElement("td");k.appendChild(B);h.appendChild(k);p.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("height")+":");h.appendChild(k);var D=document.createElement("input");D.setAttribute("value",m);D.style.width="180px";k=document.createElement("td");k.appendChild(D);h.appendChild(k);p.appendChild(h);h=document.createElement("tr");k=document.createElement("td"); +k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("dpi")+":");h.appendChild(k);var E=document.createElement("select");E.style.width="180px";k=document.createElement("option");k.setAttribute("value","100");mxUtils.write(k,"100dpi");E.appendChild(k);k=document.createElement("option");k.setAttribute("value","200");mxUtils.write(k,"200dpi");E.appendChild(k);k=document.createElement("option");k.setAttribute("value","300");mxUtils.write(k,"300dpi");E.appendChild(k);k=document.createElement("option"); +k.setAttribute("value","400");mxUtils.write(k,"400dpi");E.appendChild(k);k=document.createElement("option");k.setAttribute("value","custom");mxUtils.write(k,mxResources.get("custom"));E.appendChild(k);var G=document.createElement("input");G.style.width="180px";G.style.display="none";G.setAttribute("value","100");G.setAttribute("type","number");G.setAttribute("min","50");G.setAttribute("step","50");var I=!1;mxEvent.addListener(E,"change",function(){"custom"==this.value?(this.style.display="none",G.style.display= +"",G.focus()):(G.value=this.value,I||(z.value=this.value))});mxEvent.addListener(G,"change",function(){var R=parseInt(G.value);isNaN(R)||0>=R?G.style.backgroundColor="red":(G.style.backgroundColor="",I||(z.value=R))});k=document.createElement("td");k.appendChild(E);k.appendChild(G);h.appendChild(k);p.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("background")+":");h.appendChild(k);var H=document.createElement("input"); +H.setAttribute("type","checkbox");H.checked=null==f.background||f.background==mxConstants.NONE;k=document.createElement("td");k.appendChild(H);mxUtils.write(k,mxResources.get("transparent"));h.appendChild(k);p.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("grid")+":");h.appendChild(k);var P=document.createElement("input");P.setAttribute("type","checkbox");P.checked=!1;k=document.createElement("td");k.appendChild(P); +h.appendChild(k);p.appendChild(h);h=document.createElement("tr");k=document.createElement("td");k.style.fontSize="10pt";mxUtils.write(k,mxResources.get("borderWidth")+":");h.appendChild(k);var L=document.createElement("input");L.setAttribute("type","number");L.setAttribute("value",ExportDialog.lastBorderValue);L.style.width="180px";k=document.createElement("td");k.appendChild(L);h.appendChild(k);p.appendChild(h);d.appendChild(p);mxEvent.addListener(w,"change",b);b();mxEvent.addListener(z,"change", +function(){I=!0;var R=Math.max(0,parseFloat(z.value)||100)/100;z.value=parseFloat((100*R).toFixed(2));0=parseInt(z.value))mxUtils.alert(mxResources.get("drawingEmpty"));else{var R=t.value,T=w.value,M=Math.max(0,parseFloat(z.value)||100)/100,V=Math.max(0,parseInt(L.value)),ca=f.background,ia=Math.max(1,parseInt(G.value));if(("svg"==T||"png"==T|| +"pdf"==T)&&H.checked)ca=null;else if(null==ca||ca==mxConstants.NONE)ca="#ffffff";ExportDialog.lastBorderValue=V;ExportDialog.exportFile(a,R,T,ca,M,V,ia,P.checked)}}));U.className="geBtn gePrimaryBtn";var Y=mxUtils.button(mxResources.get("cancel"),function(){a.hideDialog()});Y.className="geBtn";a.editor.cancelFirst?(k.appendChild(Y),k.appendChild(U)):(k.appendChild(U),k.appendChild(Y));h.appendChild(k);p.appendChild(h);d.appendChild(p);this.container=d};ExportDialog.lastBorderValue=0; ExportDialog.showGifOption=!0;ExportDialog.showXmlOption=!0; -ExportDialog.exportFile=function(a,b,e,f,h,d,g,n){n=a.editor.graph;if("xml"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(a.editor.getGraphXml()),b,e);else if("svg"==e)ExportDialog.saveLocalFile(a,mxUtils.getXml(n.getSvg(f,h,d)),b,e);else{var q=n.getGraphBounds(),k=mxUtils.createXmlDocument(),p=k.createElement("output");k.appendChild(p);k=new mxXmlCanvas2D(p);k.translate(Math.floor((d/h-q.x)/n.view.scale),Math.floor((d/h-q.y)/n.view.scale));k.scale(h/n.view.scale);(new mxImageExport).drawState(n.getView().getState(n.model.root), -k);p="xml="+encodeURIComponent(mxUtils.getXml(p));k=Math.ceil(q.width*h/n.view.scale+2*d);h=Math.ceil(q.height*h/n.view.scale+2*d);p.length<=MAX_REQUEST_SIZE&&k*h -V.name?1:0});if(null!=F){p=document.createElement("div");p.style.width="100%";p.style.fontSize="11px";p.style.textAlign="center";mxUtils.write(p,F);var P=k.addField(mxResources.get("id")+":",p);mxEvent.addListener(p,"dblclick",function(Y){Y=new FilenameDialog(a,F,mxResources.get("apply"),mxUtils.bind(this,function(V){if(null!=V&&0Y.indexOf(":"))try{var V=mxUtils.indexOf(w,Y);if(0<=V&&null!=z[V])z[V].focus();else{d.cloneNode(!1).setAttribute(Y, -"");0<=V&&(w.splice(V,1),z.splice(V,1));w.push(Y);var L=k.addTextarea(Y+":","",2);L.style.width="100%";z.push(L);D(L,Y);L.focus()}Z.setAttribute("disabled","disabled");I.value=""}catch(U){mxUtils.alert(U)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(I,"keypress",function(Y){13==Y.keyCode&&Z.click()});this.init=function(){0 +T.name?1:0});if(null!=D){t=document.createElement("div");t.style.width="100%";t.style.fontSize="11px";t.style.textAlign="center";mxUtils.write(t,D);var P=k.addField(mxResources.get("id")+":",t);mxEvent.addListener(t,"dblclick",function(R){R=new FilenameDialog(a,D,mxResources.get("apply"),mxUtils.bind(this,function(T){if(null!=T&&0R.indexOf(":"))try{var T=mxUtils.indexOf(w,R);if(0<=T&&null!=z[T])z[T].focus();else{d.cloneNode(!1).setAttribute(R, +"");0<=T&&(w.splice(T,1),z.splice(T,1));w.push(R);var M=k.addTextarea(R+":","",2);M.style.width="100%";z.push(M);E(M,R);M.focus()}U.setAttribute("disabled","disabled");L.value=""}catch(V){mxUtils.alert(V)}else mxUtils.alert(mxResources.get("invalidName"))});mxEvent.addListener(L,"keypress",function(R){13==R.keyCode&&U.click()});this.init=function(){0"))}); -mxEvent.addListener(X,"dragend",function(ea){null!=z&&null!=C&&q.addCell(O,q.model.root,C);C=z=null;ea.stopPropagation();ea.preventDefault()});var pa=document.createElement("img");pa.setAttribute("draggable","false");pa.setAttribute("align","top");pa.setAttribute("border","0");pa.className="geAdaptiveAsset";pa.style.width="16px";pa.style.padding="0px 6px 0 4px";pa.style.marginTop="2px";pa.style.cursor="pointer";pa.setAttribute("title",mxResources.get(q.model.isVisible(O)?"hide":"show"));q.model.isVisible(O)? -(pa.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(X,90)):(pa.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(X,40));q.isEnabled()||mxUtils.setOpacity(pa,50);ca.appendChild(pa);mxEvent.addListener(pa,"click",function(ea){q.isEnabled()&&q.model.setVisible(O,!q.model.isVisible(O));mxEvent.consume(ea)});pa=document.createElement("img");pa.setAttribute("draggable","false");pa.setAttribute("align","top");pa.setAttribute("border","0");pa.className="geAdaptiveAsset";pa.style.width= -"16px";pa.style.padding="0px 6px 0 0";pa.style.marginTop="2px";pa.setAttribute("title",mxResources.get("lockUnlock"));var M=q.getCurrentCellStyle(O);"1"==mxUtils.getValue(M,"locked","0")?(pa.setAttribute("src",Editor.lockedImage),mxUtils.setOpacity(pa,90),X.style.color="red"):(pa.setAttribute("src",Editor.unlockedImage),mxUtils.setOpacity(pa,40));q.isEnabled()&&(pa.style.cursor="pointer");mxEvent.addListener(pa,"click",function(ea){if(q.isEnabled()){var ra=null;q.getModel().beginUpdate();try{ra="1"== -mxUtils.getValue(M,"locked","0")?null:"1",q.setCellStyles("locked",ra,[O])}finally{q.getModel().endUpdate()}"1"==ra&&q.removeSelectionCells(q.getModel().getDescendants(O));mxEvent.consume(ea)}});ca.appendChild(pa);mxUtils.write(na,sa);na.style.display="block";na.style.whiteSpace="nowrap";na.style.overflow="hidden";na.style.textOverflow="ellipsis";na.style.position="absolute";na.style.padding="2px";na.style.left="52px";na.style.right="8px";na.style.top="6px";ca.appendChild(na);X.appendChild(ca);if(q.isEnabled()){if(mxClient.IS_TOUCH|| -mxClient.IS_POINTER||mxClient.IS_IE&&10>document.documentMode)sa=document.createElement("div"),sa.style.display="block",sa.style.textAlign="right",sa.style.whiteSpace="nowrap",sa.style.position="absolute",sa.style.right="16px",sa.style.top="6px",0"))});mxEvent.addListener(aa,"dragend",function(da){null!=z&& +null!=B&&p.addCell(la,p.model.root,B);B=z=null;da.stopPropagation();da.preventDefault()});var ka=document.createElement("img");ka.setAttribute("draggable","false");ka.setAttribute("align","top");ka.setAttribute("border","0");ka.className="geAdaptiveAsset";ka.style.width="16px";ka.style.padding="0px 6px 0 4px";ka.style.cursor="pointer";ka.setAttribute("title",mxResources.get(p.model.isVisible(la)?"hide":"show"));p.model.isVisible(la)?(ka.setAttribute("src",Editor.visibleImage),mxUtils.setOpacity(aa, +90)):(ka.setAttribute("src",Editor.hiddenImage),mxUtils.setOpacity(aa,40));p.isEnabled()||mxUtils.setOpacity(ka,50);Z.appendChild(ka);mxEvent.addListener(ka,"click",function(da){p.isEnabled()&&p.model.setVisible(la,!p.model.isVisible(la));mxEvent.consume(da)});ka=document.createElement("img");ka.setAttribute("draggable","false");ka.setAttribute("align","top");ka.setAttribute("border","0");ka.className="geAdaptiveAsset";ka.style.width="16px";ka.style.padding="0px 6px 0 0";ka.setAttribute("title",mxResources.get("lockUnlock")); +var J=p.getCurrentCellStyle(la);"1"==mxUtils.getValue(J,"locked","0")?(ka.setAttribute("src",Editor.lockedImage),mxUtils.setOpacity(ka,90),aa.style.color="red"):(ka.setAttribute("src",Editor.unlockedImage),mxUtils.setOpacity(ka,40));p.isEnabled()&&(ka.style.cursor="pointer");mxEvent.addListener(ka,"click",function(da){if(p.isEnabled()){var ma=null;p.getModel().beginUpdate();try{ma="1"==mxUtils.getValue(J,"locked","0")?null:"1",p.setCellStyles("locked",ma,[la])}finally{p.getModel().endUpdate()}"1"== +ma&&p.removeSelectionCells(p.getModel().getDescendants(la));mxEvent.consume(da)}});Z.appendChild(ka);mxUtils.write(W,sa);W.style.display="block";W.style.whiteSpace="nowrap";W.style.overflow="hidden";W.style.textOverflow="ellipsis";W.style.position="absolute";W.style.padding="2px";W.style.left="52px";W.style.right="8px";Z.appendChild(W);aa.appendChild(Z);if(p.isEnabled()){if(mxClient.IS_TOUCH||mxClient.IS_POINTER||mxClient.IS_IE&&10>document.documentMode)sa=document.createElement("div"),sa.style.display= +"block",sa.style.textAlign="right",sa.style.whiteSpace="nowrap",sa.style.position="absolute",sa.style.right="16px",sa.style.top="6px",0k&&(k=h.length);return h.substring(6,k)}return null};var d=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil=function(h,k,l){var m= -d.apply(this,arguments);null!=this.shapetags&&(h=h.toLowerCase(),k=k.toLowerCase(),null!=this.shapetags[h]&&m.push(this.shapetags[h]),k=h+"."+k,null!=this.shapetags[k]&&m.push(this.shapetags[k]));return m};Sidebar.prototype.addTagIndex=function(h){h=h.split("\n");for(var k=0;kq?"":l.substring(q+1));this.setCurrentSearchEntryLibrary(h[k].id,h[k].lib);this.createVertexTemplateEntry(l,parseInt(h[k].w),parseInt(h[k].h),"", -m.replace(/_/g," "),null,null,this.filterTags(n.join(" ")));null!=this.currentSearchEntryLibrary&&this.addLibForStyle(this.getKeyStyle(l),this.currentSearchEntryLibrary);this.setCurrentSearchEntryLibrary()}}}}};Sidebar.prototype.initPalettes=function(){var h=GRAPH_IMAGE_PATH,k=STENCIL_PATH,l=this.signs,m=this.rack,n=this.pids,p=this.cisco,q=this.sysml;"1"==urlParams.createindex&&(this.createdSearchIndex=[]);this.addSearchPalette(!0);this.appendCustomLibraries||this.addCustomEntries();this.addGeneralPalette(null== -this.customEntries);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addBasicPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),k+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;",null,null,null,null,null,"arrows");this.addArrows2Palette();this.setCurrentSearchEntryLibrary("clipart","computer");this.addImagePalette("computer","Clipart / Computer",h+ -"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "),"Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";")); -this.setCurrentSearchEntryLibrary("clipart","finance");this.addImagePalette("finance","Clipart / Finance",h+"/lib/clip_art/finance/","_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.setCurrentSearchEntryLibrary("clipart","clipart");this.addImagePalette("clipart","Clipart / Various", -h+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "),"Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.setCurrentSearchEntryLibrary("clipart","networking");this.addImagePalette("networking","Clipart / Networking", -h+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "),"Bridge;Certificate;Certificate Off;Cloud;Cloud Computer;Cloud Computer Private;Cloud Rack;Cloud Rack Private;Cloud Server;Cloud Server Private;Cloud Storage;Concentrator;Email;Firewall 1;Firewall 2;Firewall;Camera;Modem;Power Distribution Unit;Print Server;Print Server Wireless;Repeater;Router;Router Icon;Switch;UPS;Wireless Router;Wireless Router N".split(";"), -{Wireless_Router:"wireless router switch wap wifi access point wlan",Wireless_Router_N:"wireless router switch wap wifi access point wlan",Router:"router switch",Router_Icon:"router switch"});this.setCurrentSearchEntryLibrary("clipart","people");this.addImagePalette("people","Clipart / People",h+"/lib/clip_art/people/","_128x128.png","Suit_Man Suit_Man_Black Suit_Man_Blue Suit_Man_Green Suit_Man_Green_Black Suit_Woman Suit_Woman_Black Suit_Woman_Blue Suit_Woman_Green Suit_Woman_Green_Black Construction_Worker_Man Construction_Worker_Man_Black Construction_Worker_Woman Construction_Worker_Woman_Black Doctor_Man Doctor_Man_Black Doctor_Woman Doctor_Woman_Black Farmer_Man Farmer_Man_Black Farmer_Woman Farmer_Woman_Black Nurse_Man Nurse_Man_Black Nurse_Woman Nurse_Woman_Black Military_Officer Military_Officer_Black Military_Officer_Woman Military_Officer_Woman_Black Pilot_Man Pilot_Man_Black Pilot_Woman Pilot_Woman_Black Scientist_Man Scientist_Man_Black Scientist_Woman Scientist_Woman_Black Security_Man Security_Man_Black Security_Woman Security_Woman_Black Tech_Man Tech_Man_Black Telesales_Man Telesales_Man_Black Telesales_Woman Telesales_Woman_Black Waiter Waiter_Black Waiter_Woman Waiter_Woman_Black Worker_Black Worker_Man Worker_Woman Worker_Woman_Black".split(" ")); +image:IMAGE_PATH+"/sidebar-threatmodeling.png"},{title:"Web Icons",id:"webicons",image:IMAGE_PATH+"/sidebar-webIcons.png"},{title:mxResources.get("signs"),id:"signs",image:IMAGE_PATH+"/sidebar-signs.png"}]}]};"1"==urlParams.savesidebar&&(Sidebar.prototype.addFoldingHandler=function(h,k,l){var m=!1;h.style.backgroundImage="none"==k.style.display?"url('"+Editor.arrowRightImage+"')":"url('"+Editor.arrowDownImage+"')";h.style.backgroundRepeat="no-repeat";h.style.backgroundPosition="0px 50%";h.style.backgroundSize= +"20px";var n=document.createElement("button");n.style.marginLeft="4px";mxUtils.write(n,"Save");mxEvent.addListener(h,"click",mxUtils.bind(this,function(p){if("BUTTON"==mxEvent.getSource(p).nodeName){p=k.getElementsByTagName("svg");var q=68*Math.ceil(p.length/6)+36,t=Graph.createSvgNode(0,0,432,q,mxUtils.getLightDarkColor("#ffffff")),v=new mxSvgCanvas2D(t);v.setFontFamily(mxConstants.DEFAULT_FONTFAMILY);v.setFontStyle(mxConstants.FONT_BOLD);v.setFontColor("rgb(80, 80, 80)");v.setFontSize(14);var u= +h.getElementsByTagName("span");0k&&(k=h.length);return h.substring(6,k)}return null};var d=Sidebar.prototype.getTagsForStencil;Sidebar.prototype.getTagsForStencil= +function(h,k,l){var m=d.apply(this,arguments);null!=this.shapetags&&(h=h.toLowerCase(),k=k.toLowerCase(),null!=this.shapetags[h]&&m.push(this.shapetags[h]),k=h+"."+k,null!=this.shapetags[k]&&m.push(this.shapetags[k]));return m};Sidebar.prototype.addTagIndex=function(h){h=h.split("\n");for(var k=0;kq?"":l.substring(q+1));this.setCurrentSearchEntryLibrary(h[k].id,h[k].lib);this.createVertexTemplateEntry(l,parseInt(h[k].w), +parseInt(h[k].h),"",m.replace(/_/g," "),null,null,this.filterTags(n.join(" ")));null!=this.currentSearchEntryLibrary&&this.addLibForStyle(this.getKeyStyle(l),this.currentSearchEntryLibrary);this.setCurrentSearchEntryLibrary()}}}}};Sidebar.prototype.initPalettes=function(){var h=GRAPH_IMAGE_PATH,k=STENCIL_PATH,l=this.signs,m=this.rack,n=this.pids,p=this.cisco,q=this.sysml;"1"==urlParams.createindex&&(this.createdSearchIndex=[]);this.addSearchPalette(!0);this.appendCustomLibraries||this.addCustomEntries(); +this.addGeneralPalette(null==this.customEntries);this.addMiscPalette(!1);this.addAdvancedPalette(!1);this.addBasicPalette();this.addStencilPalette("arrows",mxResources.get("arrows"),k+"/arrows.xml",";html=1;"+mxConstants.STYLE_VERTICAL_LABEL_POSITION+"=bottom;"+mxConstants.STYLE_VERTICAL_ALIGN+"=top;"+mxConstants.STYLE_STROKEWIDTH+"=2;strokeColor=#000000;",null,null,null,null,null,"arrows");this.addArrows2Palette();this.setCurrentSearchEntryLibrary("clipart","computer");this.addImagePalette("computer", +"Clipart / Computer",h+"/lib/clip_art/computers/","_128x128.png","Antivirus Data_Filtering Database Database_Add Database_Minus Database_Move_Stack Database_Remove Fujitsu_Tablet Harddrive IBM_Tablet iMac iPad Laptop MacBook Mainframe Monitor Monitor_Tower Monitor_Tower_Behind Netbook Network Network_2 Printer Printer_Commercial Secure_System Server Server_Rack Server_Rack_Empty Server_Rack_Partial Server_Tower Software Stylus Touch USB_Hub Virtual_Application Virtual_Machine Virus Workstation".split(" "), +"Antivirus;Data Filtering;Database;Database Add;Database Minus;Database Move Stack;Database Remove;Fujitsu Tablet;Harddrive;IBMTablet;iMac;iPad;Laptop;MacBook;Mainframe;Monitor;Monitor Tower;Monitor Tower Behind;Netbook;Network;Network 2;Printer;Printer Commercial;Secure System;Server;Server Rack;Server Rack Empty;Server Rack Partial;Server Tower;Software;Stylus;Touch;USB Hub;Virtual Application;Virtual Machine;Virus;Workstation".split(";"));this.setCurrentSearchEntryLibrary("clipart","finance"); +this.addImagePalette("finance","Clipart / Finance",h+"/lib/clip_art/finance/","_128x128.png","Arrow_Down Arrow_Up Coins Credit_Card Dollar Graph Pie_Chart Piggy_Bank Safe Shopping_Cart Stock_Down Stock_Up".split(" "),"Arrow_Down;Arrow Up;Coins;Credit Card;Dollar;Graph;Pie Chart;Piggy Bank;Safe;Shopping Basket;Stock Down;Stock Up".split(";"));this.setCurrentSearchEntryLibrary("clipart","clipart");this.addImagePalette("clipart","Clipart / Various",h+"/lib/clip_art/general/","_128x128.png","Battery_0 Battery_100 Battery_50 Battery_75 Battery_allstates Bluetooth Earth_globe Empty_Folder Full_Folder Gear Keys Lock Mouse_Pointer Plug Ships_Wheel Star Tire".split(" "), +"Battery 0%;Battery 100%;Battery 50%;Battery 75%;Battery;Bluetooth;Globe;Empty Folder;Full Folder;Gear;Keys;Lock;Mousepointer;Plug;Ships Wheel;Star;Tire".split(";"));this.setCurrentSearchEntryLibrary("clipart","networking");this.addImagePalette("networking","Clipart / Networking",h+"/lib/clip_art/networking/","_128x128.png","Bridge Certificate Certificate_Off Cloud Cloud_Computer Cloud_Computer_Private Cloud_Rack Cloud_Rack_Private Cloud_Server Cloud_Server_Private Cloud_Storage Concentrator Email Firewall_02 Firewall Firewall-page1 Ip_Camera Modem power_distribution_unit Print_Server Print_Server_Wireless Repeater Router Router_Icon Switch UPS Wireless_Router Wireless_Router_N".split(" "), +"Bridge;Certificate;Certificate Off;Cloud;Cloud Computer;Cloud Computer Private;Cloud Rack;Cloud Rack Private;Cloud Server;Cloud Server Private;Cloud Storage;Concentrator;Email;Firewall 1;Firewall 2;Firewall;Camera;Modem;Power Distribution Unit;Print Server;Print Server Wireless;Repeater;Router;Router Icon;Switch;UPS;Wireless Router;Wireless Router N".split(";"),{Wireless_Router:"wireless router switch wap wifi access point wlan",Wireless_Router_N:"wireless router switch wap wifi access point wlan", +Router:"router switch",Router_Icon:"router switch"});this.setCurrentSearchEntryLibrary("clipart","people");this.addImagePalette("people","Clipart / People",h+"/lib/clip_art/people/","_128x128.png","Suit_Man Suit_Man_Black Suit_Man_Blue Suit_Man_Green Suit_Man_Green_Black Suit_Woman Suit_Woman_Black Suit_Woman_Blue Suit_Woman_Green Suit_Woman_Green_Black Construction_Worker_Man Construction_Worker_Man_Black Construction_Worker_Woman Construction_Worker_Woman_Black Doctor_Man Doctor_Man_Black Doctor_Woman Doctor_Woman_Black Farmer_Man Farmer_Man_Black Farmer_Woman Farmer_Woman_Black Nurse_Man Nurse_Man_Black Nurse_Woman Nurse_Woman_Black Military_Officer Military_Officer_Black Military_Officer_Woman Military_Officer_Woman_Black Pilot_Man Pilot_Man_Black Pilot_Woman Pilot_Woman_Black Scientist_Man Scientist_Man_Black Scientist_Woman Scientist_Woman_Black Security_Man Security_Man_Black Security_Woman Security_Woman_Black Tech_Man Tech_Man_Black Telesales_Man Telesales_Man_Black Telesales_Woman Telesales_Woman_Black Waiter Waiter_Black Waiter_Woman Waiter_Woman_Black Worker_Black Worker_Man Worker_Woman Worker_Woman_Black".split(" ")); this.setCurrentSearchEntryLibrary("clipart","telco");this.addImagePalette("telco","Clipart / Telecommunication",h+"/lib/clip_art/telecommunication/","_128x128.png","BlackBerry Cellphone HTC_smartphone iPhone Palm_Treo Signal_tower_off Signal_tower_on".split(" "),"BlackBerry;Cellphone;HTC smartphone;iPhone;Palm Treo;Signaltower off;Signaltower on".split(";"));this.setCurrentSearchEntryLibrary();this.addFlowchartPalette();this.addActiveDirectoryPalette();this.addAndroidPalette();this.addAtlassianPalette(); this.addBootstrapPalette();this.addDFDPalette();this.addErPalette();this.addIos7Palette();this.addIosPalette();this.addKubernetesPalette();this.addMockupPalette();this.addSitemapPalette();this.addSalesforcePalette();this.addUml25Palette();this.addUmlPalette(!1);this.addAlibabaCloudPalette();this.addAlliedTelesisPalette();this.addAWS3Palette();this.addAWS4bPalette();this.addAWS4Palette();this.addAWS3DPalette();this.addAzurePalette();this.addAzure2Palette();this.addMSCAEPalette();this.addC4Palette(); this.addCiscoPalette(p,k);this.addCisco19Palette();this.addCiscoSafePalette();this.addCumulusPalette();this.addCitrix2Palette();this.addCitrixPalette();this.addDynamics365Palette();this.addGCP2Palette();this.addGCPIconsPalette();this.addIBMPalette();this.addIBMCloudPalette();this.addNetworkPalette();this.addSAPPalette();this.addOfficePalette();this.addOpenStackPalette();this.addRackPalette(m,k);this.addVeeamPalette();this.addVeeam2Palette();this.addVVDPalette();this.addArchimate3Palette();this.addArchiMatePalette(); @@ -5346,151 +5348,149 @@ this.addAzure2AzureStackPalette("mxgraph.azure2",400,this,"image;aspect=fixed;ht 400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/blockchain/");this.setCurrentSearchEntryLibrary("azure2","azure2Compute");this.addAzure2ComputePalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/compute/");this.setCurrentSearchEntryLibrary("azure2","azure2Containers");this.addAzure2ContainersPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/containers/"); this.setCurrentSearchEntryLibrary("azure2","azure2CXP");this.addAzure2CXPPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/cxp/");this.setCurrentSearchEntryLibrary("azure2","azure2Databases");this.addAzure2DatabasesPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/databases/");this.setCurrentSearchEntryLibrary("azure2","azure2DevOps");this.addAzure2DevOpsPalette("mxgraph.azure2", 400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/devops/");this.setCurrentSearchEntryLibrary("azure2","azure2General");this.addAzure2GeneralPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/general/");this.setCurrentSearchEntryLibrary("azure2","azure2Hybrid and Multicloud");this.addAzure2HybridAndMulticloudPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/hybrid_multicloud/"); -this.setCurrentSearchEntryLibrary("azure2","azure2Identity");this.addAzure2IdentityPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/identity/");this.setCurrentSearchEntryLibrary("azure2","azure2Integration");this.addAzure2IntegrationPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/integration/");this.setCurrentSearchEntryLibrary("azure2","azure2Internet of Things"); -this.addAzure2InternetOfThingsPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/internet_of_things/");this.setCurrentSearchEntryLibrary("azure2","azure2Intune");this.addAzure2IntunePalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/intune/");this.setCurrentSearchEntryLibrary("azure2","azure2IoT");this.addAzure2IOTPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/iot/"); -this.setCurrentSearchEntryLibrary("azure2","azure2Management Governance");this.addAzure2ManagementGovernancePalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/management_governance/");this.setCurrentSearchEntryLibrary("azure2","azure2Menu");this.addAzure2MenuPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/menu/");this.setCurrentSearchEntryLibrary("azure2","azure2Migrate"); -this.addAzure2MigratePalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/migrate/");this.setCurrentSearchEntryLibrary("azure2","azure2Mixed Reality");this.addAzure2MixedRealityPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/mixed_reality/");this.setCurrentSearchEntryLibrary("azure2","azure2Mobile");this.addAzure2MobilePalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/mobile/"); -this.setCurrentSearchEntryLibrary("azure2","azure2Monitor");this.addAzure2MonitorPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/monitor/");this.setCurrentSearchEntryLibrary("azure2","azure2Networking");this.addAzure2NetworkingPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/networking/");this.setCurrentSearchEntryLibrary("azure2","azure2Other");this.addAzure2OtherPalette("mxgraph.azure2", -400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/other/");this.setCurrentSearchEntryLibrary("azure2","azure2Power Platform");this.addAzure2PowerPlatformPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/power_platform/");this.setCurrentSearchEntryLibrary("azure2","azure2Preview");this.addAzure2PreviewPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/preview/"); -this.setCurrentSearchEntryLibrary("azure2","azure2Security");this.addAzure2SecurityPalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/security/");this.setCurrentSearchEntryLibrary("azure2","azure2Storage");this.addAzure2StoragePalette("mxgraph.azure2",400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/storage/");this.setCurrentSearchEntryLibrary("azure2","azure2Web");this.addAzure2WebPalette("mxgraph.azure2", -400,this,"image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/web/");this.setCurrentSearchEntryLibrary()};Sidebar.prototype.addAzure2AIMachineLearningPalette=function(a,b,d,c){var e=[this.createVertexTemplateEntry(c+"AI_Studio.svg;",.16*b,.17*b,"","AI Studio",null,null,this.getTagsForStencil(a,"ai studio","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Anomaly_Detector.svg;",.17*b,.17*b,"","Anomaly Detector",null,null, -this.getTagsForStencil(a,"anomaly detector","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Azure_Applied_AI.svg;",.17*b,.13*b,"","Applied AI",null,null,this.getTagsForStencil(a,"applied","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Batch_AI.svg;",.12*b,.17*b,"","Batch AI",null,null,this.getTagsForStencil(a,"batch","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+ -"Bonsai.svg;",.17*b,.165*b,"","Bonsai",null,null,this.getTagsForStencil(a,"bonsai","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Bot_Services.svg;",.17*b,.17*b,"","Bot Services",null,null,this.getTagsForStencil(a,"bot services","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Computer_Vision.svg;",.17*b,.17*b,"","Computer Vision",null,null,this.getTagsForStencil(a,"computer vision","azure ai machine learning artificial intelligence ").join(" ")), -this.createVertexTemplateEntry("image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/app_services/Search_Services.svg;",.17*b,.1228*b,"","Cognitive Search",null,null,this.getTagsForStencil(a,"cognitive search","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Cognitive_Services.svg;",.17*b,.12*b,"","Cognitive Services",null,null,this.getTagsForStencil(a,"cognitive services","azure ai machine learning artificial intelligence ").join(" ")), -this.createVertexTemplateEntry(c+"Content_Moderators.svg;",.17*b,.157*b,"","Content Moderators",null,null,this.getTagsForStencil(a,"content moderators","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Custom_Vision.svg;",.17*b,.17*b,"","Custom Vision",null,null,this.getTagsForStencil(a,"custom vision","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Azure_Experimentation_Studio.svg;",.17*b,.14*b,"", -"Experimentation Studio",null,null,this.getTagsForStencil(a,"experimentation studio","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Face_APIs.svg;",.17*b,.17*b,"","Face APIs",null,null,this.getTagsForStencil(a,"face apis api application programming interface","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Form_Recognizers.svg;",.158*b,.17*b,"","Form Recognizers",null,null,this.getTagsForStencil(a, -"form recognizers","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Genomics.svg;",.09*b,.17*b,"","Genomics",null,null,this.getTagsForStencil(a,"genomics","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Immersive_Readers.svg;",.17*b,.17*b,"","Immersive Readers",null,null,this.getTagsForStencil(a,"immersive readers","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+ -"Language_Services.svg;",.17*b,.17*b,"","Language",null,null,this.getTagsForStencil(a,"language services","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Cognitive_Services_Decisions.svg;",.17*b,.17*b,"","Cognitive Services Decisions",null,null,this.getTagsForStencil(a,"cognitive services decisions","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Content_Safety.svg;",.17*b,.17*b,"","Content Safety", -null,null,this.getTagsForStencil(a,"content safety","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Language_Understanding.svg;",.17*b,.17*b,"","Language Understanding",null,null,this.getTagsForStencil(a,"language understanding","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Machine_Learning.svg;",.16*b,.17*b,"","Machine Learning",null,null,this.getTagsForStencil(a,"","azure ai machine learning artificial intelligence ").join(" ")), -this.createVertexTemplateEntry(c+"Machine_Learning_Studio_Classic_Web_Services.svg;",.17*b,.17*b,"","Machine Learning Studio - Classic Web Services",null,null,this.getTagsForStencil(a,"studio classic web services","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Machine_Learning_Studio_Web_Service_Plans.svg;",.17*b,.17*b,"","Machine Learning Studio - Web Service Plans",null,null,this.getTagsForStencil(a,"studio web service plans","azure ai machine learning artificial intelligence ").join(" ")), -this.createVertexTemplateEntry(c+"Machine_Learning_Studio_Workspaces.svg;",.17*b,.17*b,"","Machine Learning Studio - Workspaces",null,null,this.getTagsForStencil(a,"studio workspaces","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry("image;aspect=fixed;html=1;points=[];align=center;fontSize=12;image=img/lib/azure2/compute/Metrics_Advisor.svg;",.137*b,.17*b,"","Metrics Advisor",null,null,this.getTagsForStencil(a,"metrics advisor","azure ai machine learning artificial intelligence ").join(" ")), -this.createVertexTemplateEntry(c+"Azure_Object_Understanding.svg;",.17*b,.17*b,"","Object Understanding",null,null,this.getTagsForStencil(a,"object understanding","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Azure_OpenAI.svg;",.17*b,.17*b,"","OpenAI",null,null,this.getTagsForStencil(a,"openai open ai","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Personalizers.svg;",.17*b,.138*b,"","Personalizers", -null,null,this.getTagsForStencil(a,"personalizers","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"QnA_Makers.svg;",.17*b,.17*b,"","QnA Makers",null,null,this.getTagsForStencil(a,"qna makers","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Serverless_Search.svg;",.17*b,.17*b,"","Serverless Search",null,null,this.getTagsForStencil(a,"serverless search","azure ai machine learning artificial intelligence ").join(" ")), -this.createVertexTemplateEntry(c+"Speech_Services.svg;",.17*b,.17*b,"","Speech Services",null,null,this.getTagsForStencil(a,"speech services","azure ai machine learning artificial intelligence ").join(" ")),this.createVertexTemplateEntry(c+"Translator_Text.svg;",.17*b,.17*b,"","Translator Text",null,null,this.getTagsForStencil(a,"translator text","azure ai machine learning artificial intelligence ").join(" "))];this.addPalette("azure2AI Machine Learning","Azure / AI and Machine Learning",!1,mxUtils.bind(this, -function(f){for(var g=0;gf?b=b.substring(0,f)+"[...]":null!=b&&b.length>e&&(b=Graph.compress(b)+"\n");return b}; -DrawioFile.prototype.checksumError=function(b,e,f,c,k,n,q,u){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{var G=this.getCurrentUser(),H=null!=G?G.id:"unknown",E=""!=this.getId()?this.getId():"("+this.ui.hashValue(this.getTitle())+")",L=JSON.stringify(e).length,F=null;if(null!=e&&1E3>L){for(b=0;bF.length?Graph.compress(F): +DrawioFile.prototype.checksumError=function(b,e,f,c,k,n,q,u){this.stats.checksumErrors++;this.invalidChecksum=this.inConflictState=!0;this.descriptorChanged();null!=this.sync&&this.sync.updateOnlineState();null!=b&&b();try{var E=this.getCurrentUser(),H=null!=E?E.id:"unknown",D=""!=this.getId()?this.getId():"("+this.ui.hashValue(this.getTitle())+")",L=JSON.stringify(e).length,F=null;if(null!=e&&1E3>L){for(b=0;bF.length?Graph.compress(F): null}this.getLatestVersion(mxUtils.bind(this,function(d){try{var g=null!=F?"report":"error",m=this.ui.getHashValueForPages(d.getShadowPages()),t="unknown",v="unknown",y="unknown";try{var B=null!=d.initialData&&0t?this.ui.insertPage(g[m],Math.min(m,this.ui.pages.length)):this.ui.movePage(t,m)}for(m=0;mmxUtils.indexOf(g,F[m])&&this.ui.removePage(F[m]);0<=mxUtils.indexOf(this.ui.pages,d)&&this.ui.selectPage(d,!0)}else this.ui.pages=this.ui.applyPatches(this.ui.pages,b,!0,e,this.isModified());0==this.ui.pages.length&& -this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0);u.checkDefaultParent()}finally{u.container.style.visibility="";u.model.endUpdate();u.cellRenderer.redraw=L;this.changeListenerEnabled=G;f||(k.history=n,k.indexOfNextAdd=q,k.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)E!=u.mathEnabled?(this.ui.editor.updateGraphComponents(),u.refresh()):(H!=u.foldingEnabled? +this.ui.pages.push(this.ui.createPage());0>mxUtils.indexOf(this.ui.pages,this.ui.currentPage)&&this.ui.selectPage(this.ui.pages[0],!0);u.checkDefaultParent()}finally{u.container.style.visibility="";u.model.endUpdate();u.cellRenderer.redraw=L;this.changeListenerEnabled=E;f||(k.history=n,k.indexOfNextAdd=q,k.fireEvent(new mxEventObject(mxEvent.CLEAR)));if(null==this.ui.currentPage||this.ui.currentPage.needsUpdate)D!=u.mathEnabled?(this.ui.editor.updateGraphComponents(),u.refresh()):(H!=u.foldingEnabled? u.view.revalidate():u.view.validate(),u.sizeDidChange());null!=this.sync&&this.isRealtime()&&!c&&(this.sync.snapshot=this.ui.clonePages(this.ui.pages));this.ui.editor.fireEvent(new mxEventObject("pagesPatched","patches",b))}EditorUi.debug("DrawioFile.patch",[this],"patches",b,"resolver",e,"undoable",f)}return b}; DrawioFile.prototype.save=function(b,e,f,c,k,n){try{if(EditorUi.debug("DrawioFile.save",[this],"revision",b,"unloading",c,"overwrite",k,"manual",n,"saving",this.savingFile,"editable",this.isEditable(),"invalidChecksum",this.invalidChecksum),this.isEditable())if(!k&&this.invalidChecksum)if(null!=f)f({message:mxResources.get("checksum")});else throw Error(mxResources.get("checksum"));else this.updateFileData(),this.clearAutosave(),null!=e&&e();else if(null!=f)f({message:mxResources.get("readOnly")}); else throw Error(mxResources.get("readOnly"));}catch(q){if(null!=f)f(q);else throw q;}};DrawioFile.prototype.createData=function(){var b=this.ui.pages;if(this.isRealtime()&&(this.ui.pages=this.ownPages,null!=this.ui.currentPage)){var e=this.ui.getPageById(this.ui.currentPage.getId(),this.ownPages);null!=e&&(e.viewState=this.ui.editor.graph.getViewState(),e.needsUpdate=!0)}e=this.ui.getFileData(null,null,null,null,null,null,null,null,this,!this.isCompressed());this.ui.pages=b;return e}; @@ -12196,7 +12196,7 @@ DrawioFile.prototype.fileChanged=function(b){b=null!=b?b:!0;this.lastChanged=new mxUtils.bind(this,function(e){this.ui.stopSanityCheck();null==this.autosaveThread?(this.handleFileSuccess(!0),this.ageStart=null):this.isModified()&&(this.ui.scheduleSanityCheck(),this.ageStart=this.lastChanged)}),mxUtils.bind(this,function(e){this.handleFileError(e)}))):(this.ageStart=null,this.isAutosaveOptional()&&this.ui.editor.autosave||this.inConflictState||this.addUnsavedStatus());null!=this.sync&&b&&this.sync.localFileChanged()}; DrawioFile.prototype.createSecret=function(b){var e=Editor.guid(32);Editor.enableRealtimeCache&&null!=this.sync&&!this.isOptimisticSync()?this.sync.createToken(e,mxUtils.bind(this,function(f){EditorUi.debug("DrawioFile.createSecret",[this],"secret",e,"token",f);b(e,f)}),mxUtils.bind(this,function(){b(e)})):b(e)};DrawioFile.prototype.fileSaving=function(){null!=this.sync&&this.sync.fileSaving()}; DrawioFile.prototype.fileSaved=function(b,e,f,c,k,n,q){this.lastSaved=new Date;this.ageStart=null;this.stats.saved++;try{this.invalidChecksum=this.inConflictState=!1;n=null!=n?n:this.ui.getPagesForXml(b);try{null==this.sync||this.isOptimisticSync()?(this.setShadowPages(n),null!=this.sync&&(this.sync.lastModified=this.getLastModifiedDate(),this.sync.resetUpdateStatusThread(),this.isRealtime()&&this.sync.scheduleCleanup()),null!=f&&f()):this.sync.fileSaved(n,e,f,c,k,q)}catch(H){this.invalidChecksum= -this.inConflictState=!0;this.descriptorChanged();null!=c&&c(H);try{var u=this.getCurrentUser(),G=null!=u?u.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),G,H)}catch(E){}}EditorUi.debug("DrawioFile.fileSaved",[this],"savedData",[b],"desc",[e],"inConflictState",this.inConflictState,"invalidChecksum",this.invalidChecksum)}catch(H){this.descriptorChanged(),null!=c&&c(H)}}; +this.inConflictState=!0;this.descriptorChanged();null!=c&&c(H);try{var u=this.getCurrentUser(),E=null!=u?u.id:"unknown";EditorUi.logError("Error in fileSaved",null,this.getMode()+"."+this.getId(),E,H)}catch(D){}}EditorUi.debug("DrawioFile.fileSaved",[this],"savedData",[b],"desc",[e],"inConflictState",this.inConflictState,"invalidChecksum",this.invalidChecksum)}catch(H){this.descriptorChanged(),null!=c&&c(H)}}; DrawioFile.prototype.autosave=function(b,e,f,c){null==this.lastAutosave&&(this.lastAutosave=Date.now());var k=Date.now()-this.lastAutosavethis.maxAutosaveRevisionDelay};DrawioFile.prototype.descriptorChanged=function(){this.fireEvent(new mxEventObject("descriptorChanged"))}; @@ -12205,10 +12205,10 @@ DrawioFile.prototype.removeListeners=function(){null!=this.changeListener&&(this DrawioFile.prototype.commentsRefreshNeeded=function(){return!0};DrawioFile.prototype.commentsSaveNeeded=function(){return!1};DrawioFile.prototype.getComments=function(b,e){b([])};DrawioFile.prototype.addComment=function(b,e,f){e(Date.now())};DrawioFile.prototype.canReplyToReplies=function(){return!0};DrawioFile.prototype.canComment=function(){return!0};DrawioFile.prototype.newComment=function(b,e){return new DrawioComment(this,null,b,Date.now(),Date.now(),!1,e)};LocalFile=function(b,e,f,c,k,n,q){DrawioFile.call(this,b,e);this.title=f;this.mode=c?null:App.MODE_DEVICE;this.fileHandle=k;this.desc=n;this.editable=q};mxUtils.extend(LocalFile,DrawioFile);LocalFile.prototype.isAutosave=function(){return null!=this.fileHandle&&!this.invalidFileHandle&&DrawioFile.prototype.isAutosave.apply(this,arguments)};LocalFile.prototype.isAutosaveOptional=function(){return null!=this.fileHandle};LocalFile.prototype.getMode=function(){return this.mode}; LocalFile.prototype.getTitle=function(){return this.title};LocalFile.prototype.isRenamable=function(){return!0};LocalFile.prototype.isEditable=function(){return DrawioFile.prototype.isEditable.apply(this,arguments)&&(null==this.editable||this.editable)};LocalFile.prototype.setEditable=function(b){this.editable=b;this.descriptorChanged()};LocalFile.prototype.save=function(b,e,f,c,k){this.saveAs(this.title,e,f,c,k)};LocalFile.prototype.saveAs=function(b,e,f,c,k){this.saveFile(b,!1,e,f,null,c,k)}; LocalFile.prototype.getDescriptor=function(){return this.desc};LocalFile.prototype.setDescriptor=function(b){this.desc=b};LocalFile.prototype.getLatestVersion=function(b,e){null==this.fileHandle?null!=e&&e({message:mxResources.get("cannotOpenFile")}):this.ui.loadFileSystemEntry(this.fileHandle,b,e)}; -LocalFile.prototype.saveFile=function(b,e,f,c,k,n,q){b!=this.title&&(this.editable=this.desc=this.fileHandle=null);this.title=b;k||this.updateFileData();var u=this.ui.useCanvasForExport&&/(\.png)$/i.test(this.getTitle());this.setShadowModified(!1);var G=this.getData(),H=mxUtils.bind(this,function(){this.setModified(this.getShadowModified());this.contentChanged();null!=f&&f()}),E=mxUtils.bind(this,function(L){if(null!=this.fileHandle){if(!this.savingFile){this.savingFileTime=new Date;this.savingFile= -!0;var F=mxUtils.bind(this,function(g){this.savingFile=!1;null!=c&&c({error:g})});this.saveDraft(G);this.fileHandle.createWritable().then(mxUtils.bind(this,function(g){this.fileHandle.getFile().then(mxUtils.bind(this,function(m){this.invalidFileHandle=null;EditorUi.debug("LocalFile.saveFile",[this],"desc",[this.desc],"newDesc",[m],"conflict",this.desc.lastModified!=m.lastModified);q||this.desc.lastModified==m.lastModified?g.write(u?this.ui.base64ToBlob(L,"image/png"):L).then(mxUtils.bind(this,function(){g.close().then(mxUtils.bind(this, -function(){this.fileHandle.getFile().then(mxUtils.bind(this,function(t){try{var v=this.desc;this.savingFile=!1;this.desc=t;this.fileSaved(G,v,H,F);this.removeDraft()}catch(y){F(y)}}),F)}),F)}),F):(this.inConflictState=!0,F())}),mxUtils.bind(this,function(m){this.invalidFileHandle=!0;F(m)}))}),F)}}else{if(this.ui.isOfflineApp()||this.ui.isLocalFileSave())this.ui.doSaveLocalFile(L,b,u?"image/png":"text/xml",u);else if(L.lengthf&&(mxUtils.br(G),q=1);var y=document.createElement("a");y.style.overflow="hidden";y.style.display="inline-block";y.className="geBaseButton";y.style.boxSizing="border-box";y.style.fontSize="11px";y.style.position="relative";y.style.margin="4px";y.style.marginTop="8px";y.style.marginBottom="0px";y.style.padding="8px 10px 8px 10px";y.style.width="88px";y.style.height="100px";y.style.whiteSpace="nowrap";y.setAttribute("title",F);var B=document.createElement("div");B.style.textOverflow= +(b.setMode(d,!0),e())})}u++;++q>f&&(mxUtils.br(E),q=1);var y=document.createElement("a");y.style.overflow="hidden";y.style.display="inline-block";y.className="geBaseButton";y.style.boxSizing="border-box";y.style.fontSize="11px";y.style.position="relative";y.style.margin="4px";y.style.marginTop="8px";y.style.marginBottom="0px";y.style.padding="8px 10px 8px 10px";y.style.width="88px";y.style.height="100px";y.style.whiteSpace="nowrap";y.setAttribute("title",F);var B=document.createElement("div");B.style.textOverflow= "ellipsis";B.style.overflow="hidden";B.style.position="absolute";B.style.bottom="8px";B.style.left="0px";B.style.right="0px";mxUtils.write(B,F);y.appendChild(B);if(null!=L){var I=document.createElement("img");I.setAttribute("src",L);I.setAttribute("border","0");I.setAttribute("align","absmiddle");I.style.width="60px";I.style.height="60px";I.style.paddingBottom="6px";y.appendChild(I)}else B.style.paddingTop="5px",B.style.whiteSpace="normal",mxClient.IS_IOS?(y.style.padding="0px 10px 20px 10px",y.style.top= -"6px"):mxClient.IS_FF&&(B.style.paddingTop="0px",B.style.marginTop="-2px");if(null!=m)for(L=0;L '+mxResources.get("googleDriveMissingClickHere")+"",k.appendChild(H))},5E3);this.container=k},SplashDialog=function(b){var e=document.createElement("div");e.style.textAlign="center";if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp){var f=b.addLanguageMenu(e,!1,"28px");null!=f&&(f.style.bottom="24px")}var c=document.createElement("img");c.setAttribute("border","0");c.setAttribute("align","absmiddle");c.style.width= "32px";c.style.height="32px";c.style.marginRight="8px";c.style.marginTop="-4px";var k=document.createElement("div");k.style.margin="8px 0px 0px 0px";k.style.padding="18px 0px 24px 0px";f="";b.mode==App.MODE_GOOGLE?(c.src=IMAGE_PATH+"/google-drive-logo.svg",f=mxResources.get("googleDrive")):b.mode==App.MODE_DROPBOX?(c.src=IMAGE_PATH+"/dropbox-logo.svg",f=mxResources.get("dropbox")):b.mode==App.MODE_ONEDRIVE?(c.src=IMAGE_PATH+"/onedrive-logo.svg",f=mxResources.get("oneDrive")):b.mode==App.MODE_GITHUB? (c.src=IMAGE_PATH+"/github-logo.svg",f=mxResources.get("github")):b.mode==App.MODE_GITLAB?(c.src=IMAGE_PATH+"/gitlab-logo.svg",f=mxResources.get("gitlab")):b.mode==App.MODE_BROWSER?(c.src=IMAGE_PATH+"/osa_database.png",f=mxResources.get("browser")):b.mode==App.MODE_TRELLO?(c.src=IMAGE_PATH+"/trello-logo.svg",f=mxResources.get("trello")):(c.src=IMAGE_PATH+"/osa_drive-harddisk.png",k.style.paddingBottom="10px",k.style.paddingTop="30px",f=mxResources.get("device"));var n=document.createElement("button"); -n.className="geBigButton";n.style.marginBottom="8px";n.style.fontSize="18px";n.style.padding="10px";n.style.width="340px";if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)k.style.padding="42px 0px 10px 0px",n.style.marginBottom="12px";else{k.style.border="1px solid #d3d3d3";k.style.borderWidth="1px 0px 1px 0px";var q=document.createElement("table"),u=document.createElement("tbody"),G=document.createElement("tr"),H=document.createElement("td"),E=document.createElement("td");q.setAttribute("align", -"center");H.appendChild(c);c=document.createElement("div");c.style.fontSize="22px";c.style.paddingBottom="6px";c.style.color="gray";mxUtils.write(c,f);E.style.textAlign="left";E.appendChild(c);G.appendChild(H);G.appendChild(E);u.appendChild(G);q.appendChild(u);e.appendChild(q);f=document.createElement("span");f.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0)");mxUtils.write(f, +n.className="geBigButton";n.style.marginBottom="8px";n.style.fontSize="18px";n.style.padding="10px";n.style.width="340px";if(mxClient.IS_CHROMEAPP||EditorUi.isElectronApp)k.style.padding="42px 0px 10px 0px",n.style.marginBottom="12px";else{k.style.border="1px solid #d3d3d3";k.style.borderWidth="1px 0px 1px 0px";var q=document.createElement("table"),u=document.createElement("tbody"),E=document.createElement("tr"),H=document.createElement("td"),D=document.createElement("td");q.setAttribute("align", +"center");H.appendChild(c);c=document.createElement("div");c.style.fontSize="22px";c.style.paddingBottom="6px";c.style.color="gray";mxUtils.write(c,f);D.style.textAlign="left";D.appendChild(c);E.appendChild(H);E.appendChild(D);u.appendChild(E);q.appendChild(u);e.appendChild(q);f=document.createElement("span");f.style.cssText="position:absolute;cursor:pointer;bottom:27px;color:gray;userSelect:none;text-align:center;left:50%;";mxUtils.setPrefixedStyle(f.style,"transform","translate(-50%,0)");mxUtils.write(f, mxResources.get("changeStorage"));mxEvent.addListener(f,"click",function(){b.hideDialog(!1);b.setMode(null);b.clearMode();b.showSplash(!0)});e.appendChild(f)}mxUtils.write(n,mxResources.get("createNewDiagram"));mxEvent.addListener(n,"click",function(){b.hideDialog();b.actions.get("new").funct()});k.appendChild(n);mxUtils.br(k);n=document.createElement("button");n.className="geBigButton";n.style.marginBottom="22px";n.style.fontSize="18px";n.style.padding="10px";n.style.width="340px";mxUtils.write(n, mxResources.get("openExistingDiagram"));mxEvent.addListener(n,"click",function(){b.actions.get("open").funct()});k.appendChild(n);b.mode==App.MODE_GOOGLE?mxResources.get("googleDrive"):b.mode==App.MODE_DROPBOX?mxResources.get("dropbox"):b.mode==App.MODE_ONEDRIVE?mxResources.get("oneDrive"):b.mode==App.MODE_GITHUB?mxResources.get("github"):b.mode==App.MODE_GITLAB?mxResources.get("gitlab"):b.mode==App.MODE_TRELLO?mxResources.get("trello"):b.mode==App.MODE_DEVICE?mxResources.get("device"):b.mode==App.MODE_BROWSER&& mxResources.get("browser");if(!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp)if(f=function(d){n.style.marginBottom="24px";var g=document.createElement("a");g.style.display="inline-block";g.style.color="gray";g.style.cursor="pointer";g.style.marginTop="6px";mxUtils.write(g,mxResources.get("signOut"));n.style.marginBottom="16px";k.style.paddingBottom="18px";mxEvent.addListener(g,"click",function(){b.confirm(mxResources.get("areYouSure"),function(){d()})});k.appendChild(g)},b.mode==App.MODE_GOOGLE&& null!=b.drive){var L=b.drive.getUsersList();if(0"),q.setAttribute("disabled","disabled"),F.appendChild(q);q=document.createElement("option");mxUtils.write(q,mxResources.get("addAccount"));q.value=L.length;F.appendChild(q);mxEvent.addListener(F,"change",function(){var d=F.value,g=L.length!=d;g&&b.drive.setUser(L[d]);b.drive.authorize(g,function(){b.setMode(App.MODE_GOOGLE);b.hideDialog();b.showSplash()},function(m){b.handleError(m,null,function(){b.hideDialog();b.showSplash()})},!0)});k.appendChild(F)}else f(function(){b.drive.logout()})}else b.mode!= App.MODE_ONEDRIVE||null==b.oneDrive||b.oneDrive.noLogout?b.mode==App.MODE_GITHUB&&null!=b.gitHub?f(function(){b.gitHub.logout();b.openLink("https://www.github.com/logout")}):b.mode==App.MODE_GITLAB&&null!=b.gitLab?f(function(){b.gitLab.logout();var d=document.createElement("form");d.setAttribute("method","post");d.setAttribute("action",DRAWIO_GITLAB_URL+"/users/sign_out");d.setAttribute("target","_blank");document.body.appendChild(d);d.submit();d.parentNode.removeChild(d)}):b.mode==App.MODE_TRELLO&& -null!=b.trello?b.trello.isAuthorized()&&f(function(){b.trello.logout()}):b.mode==App.MODE_DROPBOX&&null!=b.dropbox&&f(function(){b.dropbox.logout();b.openLink("https://www.dropbox.com/logout")}):f(function(){b.oneDrive.logout()});e.appendChild(k);this.container=e},EmbedDialog=function(b,e,f,c,k,n,q,u,G){q=null!=q?q:"Check out the diagram I made using @drawio";c=document.createElement("div");var H=/^https?:\/\//.test(e)||/^mailto:\/\//.test(e);null!=n?mxUtils.write(c,n):mxUtils.write(c,mxResources.get(5E5> -e.length?H?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(c);n=document.createElement("div");n.style.position="absolute";n.style.top="30px";n.style.right="30px";n.style.color="gray";mxUtils.write(n,b.formatFileSize(e.length));c.appendChild(n);var E=document.createElement("textarea");E.setAttribute("autocomplete","off");E.setAttribute("autocorrect","off");E.setAttribute("autocapitalize","off");E.setAttribute("spellcheck","false");E.style.fontFamily="monospace";E.style.wordBreak="break-all";E.style.marginTop= -"10px";E.style.resize="none";E.style.height="150px";E.style.width="440px";E.style.border="1px solid gray";E.value=mxResources.get("updatingDocument");c.appendChild(E);mxUtils.br(c);this.init=function(){window.setTimeout(function(){5E5>e.length?(E.value=e,E.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?E.select():document.execCommand("selectAll",!1,null)):(E.setAttribute("readonly","true"),E.value=mxResources.get("tooLargeUseDownload"))},0)};n=document.createElement("div");n.style.position= -"absolute";n.style.bottom="36px";n.style.right="32px";var L=null;!EmbedDialog.showPreviewOption||mxIsElectron||mxClient.IS_CHROMEAPP&&!H||navigator.standalone||!(H||mxClient.IS_SVG&&(null==document.documentMode||9e.length?"preview":"openInNewWindow"),function(){var d=5E5>e.length?E.value:e;if(null!=k)k(d);else if(H)try{var g=b.openLink(d);null!=g&&(null==f||0 +e.length?H?"link":"mainEmbedNotice":"preview")+":");mxUtils.br(c);n=document.createElement("div");n.style.position="absolute";n.style.top="30px";n.style.right="30px";n.style.color="gray";mxUtils.write(n,b.formatFileSize(e.length));c.appendChild(n);var D=document.createElement("textarea");D.setAttribute("autocomplete","off");D.setAttribute("autocorrect","off");D.setAttribute("autocapitalize","off");D.setAttribute("spellcheck","false");D.style.fontFamily="monospace";D.style.wordBreak="break-all";D.style.marginTop= +"10px";D.style.resize="none";D.style.height="150px";D.style.width="440px";D.style.border="1px solid gray";D.value=mxResources.get("updatingDocument");c.appendChild(D);mxUtils.br(c);this.init=function(){window.setTimeout(function(){5E5>e.length?(D.value=e,D.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?D.select():document.execCommand("selectAll",!1,null)):(D.setAttribute("readonly","true"),D.value=mxResources.get("tooLargeUseDownload"))},0)};n=document.createElement("div");n.style.position= +"absolute";n.style.bottom="36px";n.style.right="32px";var L=null;!EmbedDialog.showPreviewOption||mxIsElectron||mxClient.IS_CHROMEAPP&&!H||navigator.standalone||!(H||mxClient.IS_SVG&&(null==document.documentMode||9e.length?"preview":"openInNewWindow"),function(){var d=5E5>e.length?D.value:e;if(null!=k)k(d);else if(H)try{var g=b.openLink(d);null!=g&&(null==f||0"+mxUtils.htmlEntities(mxResources.get("preview"))+''+(""), -m.close()):b.handleError({message:mxResources.get("errorUpdatingPreview")})}}),L.className="geBtn",n.appendChild(L));if(!H||7500e.length){var F=mxUtils.button("",function(){try{var d="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(E.value); +m.close()):b.handleError({message:mxResources.get("errorUpdatingPreview")})}}),L.className="geBtn",n.appendChild(L));if(!H||7500e.length){var F=mxUtils.button("",function(){try{var d="https://www.facebook.com/sharer.php?p[url]="+encodeURIComponent(D.value); b.openLink(d)}catch(g){b.handleError({message:g.message||mxResources.get("drawingTooLarge")})}});u=document.createElement("img");u.setAttribute("src",Editor.facebookImage);u.setAttribute("width","18");u.setAttribute("height","18");u.setAttribute("border","0");F.appendChild(u);F.setAttribute("title",mxResources.get("facebook")+" ("+b.formatFileSize(51200)+" max)");F.style.verticalAlign="bottom";F.style.paddingTop="4px";F.style.minWidth="46px";F.className="geBtn";n.appendChild(F)}7168>e.length&&(F= -mxUtils.button("",function(){try{var d="https://twitter.com/intent/tweet?text="+encodeURIComponent(q)+"&url="+encodeURIComponent(E.value);b.openLink(d)}catch(g){b.handleError({message:g.message||mxResources.get("drawingTooLarge")})}}),u=document.createElement("img"),u.setAttribute("src",Editor.tweetImage),u.setAttribute("width","18"),u.setAttribute("height","18"),u.setAttribute("border","0"),u.style.marginBottom="5px",F.appendChild(u),F.setAttribute("title",mxResources.get("twitter")+" ("+b.formatFileSize(7168)+ -" max)"),F.style.verticalAlign="bottom",F.style.paddingTop="4px",F.style.minWidth="46px",F.className="geBtn",n.appendChild(F))}!b.isOffline()&&5E5>e.length&&(F=mxUtils.button("",function(){try{var d="mailto:?subject="+encodeURIComponent(G||b.defaultFilename)+"&body="+encodeURIComponent(E.value);b.openLink(d)}catch(g){b.handleError({message:g.message||mxResources.get("drawingTooLarge")})}}),u=document.createElement("img"),u.className="geAdaptiveAsset",u.setAttribute("src",Editor.mailImage),u.setAttribute("width", -"18"),u.setAttribute("height","18"),u.setAttribute("border","0"),u.style.marginBottom="5px",F.appendChild(u),F.style.verticalAlign="bottom",F.style.paddingTop="4px",F.style.minWidth="46px",F.className="geBtn",n.appendChild(F));u=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});n.appendChild(u);F=mxUtils.button(mxResources.get("copy"),function(){E.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?E.select():document.execCommand("selectAll",!1,null);document.execCommand("copy"); +mxUtils.button("",function(){try{var d="https://twitter.com/intent/tweet?text="+encodeURIComponent(q)+"&url="+encodeURIComponent(D.value);b.openLink(d)}catch(g){b.handleError({message:g.message||mxResources.get("drawingTooLarge")})}}),u=document.createElement("img"),u.setAttribute("src",Editor.tweetImage),u.setAttribute("width","18"),u.setAttribute("height","18"),u.setAttribute("border","0"),u.style.marginBottom="5px",F.appendChild(u),F.setAttribute("title",mxResources.get("twitter")+" ("+b.formatFileSize(7168)+ +" max)"),F.style.verticalAlign="bottom",F.style.paddingTop="4px",F.style.minWidth="46px",F.className="geBtn",n.appendChild(F))}!b.isOffline()&&5E5>e.length&&(F=mxUtils.button("",function(){try{var d="mailto:?subject="+encodeURIComponent(E||b.defaultFilename)+"&body="+encodeURIComponent(D.value);b.openLink(d)}catch(g){b.handleError({message:g.message||mxResources.get("drawingTooLarge")})}}),u=document.createElement("img"),u.className="geAdaptiveAsset",u.setAttribute("src",Editor.mailImage),u.setAttribute("width", +"18"),u.setAttribute("height","18"),u.setAttribute("border","0"),u.style.marginBottom="5px",F.appendChild(u),F.style.verticalAlign="bottom",F.style.paddingTop="4px",F.style.minWidth="46px",F.className="geBtn",n.appendChild(F));u=mxUtils.button(mxResources.get("close"),function(){b.hideDialog()});n.appendChild(u);F=mxUtils.button(mxResources.get("copy"),function(){D.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?D.select():document.execCommand("selectAll",!1,null);document.execCommand("copy"); b.alert(mxResources.get("copiedToClipboard"))});5E5>e.length?mxClient.IS_SF||null!=document.documentMode?u.className="geBtn gePrimaryBtn":(n.appendChild(F),F.className="geBtn gePrimaryBtn",u.className="geBtn"):null!=L&&(n.appendChild(L),u.className="geBtn",L.className="geBtn gePrimaryBtn");c.appendChild(n);this.container=c};EmbedDialog.showPreviewOption=!0; var GoogleSitesDialog=function(b,e){function f(){var U=null!=J&&null!=J.getTitle()?J.getTitle():this.defaultFilename;if(I.checked&&""!=F.value){var Q="https://www.draw.io/gadget.xml?type=4&diagram="+encodeURIComponent(mxUtils.htmlEntities(F.value));null!=U&&(Q+="&title="+encodeURIComponent(U));0 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml"==d&&"svg"==B?window.setTimeout(function(){b.spinner.stop();v(d,B,"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBjb250ZW50U2NyaXB0VHlwZT0iYXBwbGljYXRpb24vZWNtYXNjcmlwdCIgY29udGVudFN0eWxlVHlwZT0idGV4dC9jc3MiIGhlaWdodD0iMjEycHgiIHByZXNlcnZlQXNwZWN0UmF0aW89Im5vbmUiIHN0eWxlPSJ3aWR0aDoyOTVweDtoZWlnaHQ6MjEycHg7IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAyOTUgMjEyIiB3aWR0aD0iMjk1cHgiIHpvb21BbmRQYW49Im1hZ25pZnkiPjxkZWZzLz48Zz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogNS4wLDUuMDsiIHgxPSIzMSIgeDI9IjMxIiB5MT0iMzQuNDg4MyIgeTI9IjE3MS43MzA1Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDUuMCw1LjA7IiB4MT0iMjY0LjUiIHgyPSIyNjQuNSIgeTE9IjM0LjQ4ODMiIHkyPSIxNzEuNzMwNSIvPjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIzMyIgeD0iMTUiIHk9IjIzLjUzNTIiPkFsaWNlPC90ZXh0PjxyZWN0IGZpbGw9IiNGRUZFQ0UiIGhlaWdodD0iMzAuNDg4MyIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjU7IiB3aWR0aD0iNDciIHg9IjgiIHk9IjE3MC43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTQiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMzMiIHg9IjE1IiB5PSIxOTEuMjY1NiI+QWxpY2U8L3RleHQ+PHJlY3QgZmlsbD0iI0ZFRkVDRSIgaGVpZ2h0PSIzMC40ODgzIiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuNTsiIHdpZHRoPSI0MCIgeD0iMjQ0LjUiIHk9IjMiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjIzLjUzNTIiPkJvYjwvdGV4dD48cmVjdCBmaWxsPSIjRkVGRUNFIiBoZWlnaHQ9IjMwLjQ4ODMiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS41OyIgd2lkdGg9IjQwIiB4PSIyNDQuNSIgeT0iMTcwLjczMDUiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxNCIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIyNiIgeD0iMjUxLjUiIHk9IjE5MS4yNjU2Ij5Cb2I8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSIyNTIuNSw2MS43OTg4LDI2Mi41LDY1Ljc5ODgsMjUyLjUsNjkuNzk4OCwyNTYuNSw2NS43OTg4IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiIHgxPSIzMS41IiB4Mj0iMjU4LjUiIHkxPSI2NS43OTg4IiB5Mj0iNjUuNzk4OCIvPjx0ZXh0IGZpbGw9IiMwMDAwMDAiIGZvbnQtZmFtaWx5PSJzYW5zLXNlcmlmIiBmb250LXNpemU9IjEzIiBsZW5ndGhBZGp1c3Q9InNwYWNpbmdBbmRHbHlwaHMiIHRleHRMZW5ndGg9IjE0NyIgeD0iMzguNSIgeT0iNjEuMDU2NiI+QXV0aGVudGljYXRpb24gUmVxdWVzdDwvdGV4dD48cG9seWdvbiBmaWxsPSIjQTgwMDM2IiBwb2ludHM9IjQyLjUsOTEuMTA5NCwzMi41LDk1LjEwOTQsNDIuNSw5OS4xMDk0LDM4LjUsOTUuMTA5NCIgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7Ii8+PGxpbmUgc3R5bGU9InN0cm9rZTogI0E4MDAzNjsgc3Ryb2tlLXdpZHRoOiAxLjA7IHN0cm9rZS1kYXNoYXJyYXk6IDIuMCwyLjA7IiB4MT0iMzYuNSIgeDI9IjI2My41IiB5MT0iOTUuMTA5NCIgeTI9Ijk1LjEwOTQiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxNTciIHg9IjQ4LjUiIHk9IjkwLjM2NzIiPkF1dGhlbnRpY2F0aW9uIFJlc3BvbnNlPC90ZXh0Pjxwb2x5Z29uIGZpbGw9IiNBODAwMzYiIHBvaW50cz0iMjUyLjUsMTIwLjQxOTksMjYyLjUsMTI0LjQxOTksMjUyLjUsMTI4LjQxOTksMjU2LjUsMTI0LjQxOTkiIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIvPjxsaW5lIHN0eWxlPSJzdHJva2U6ICNBODAwMzY7IHN0cm9rZS13aWR0aDogMS4wOyIgeDE9IjMxLjUiIHgyPSIyNTguNSIgeTE9IjEyNC40MTk5IiB5Mj0iMTI0LjQxOTkiLz48dGV4dCBmaWxsPSIjMDAwMDAwIiBmb250LWZhbWlseT0ic2Fucy1zZXJpZiIgZm9udC1zaXplPSIxMyIgbGVuZ3RoQWRqdXN0PSJzcGFjaW5nQW5kR2x5cGhzIiB0ZXh0TGVuZ3RoPSIxOTkiIHg9IjM4LjUiIHk9IjExOS42Nzc3Ij5Bbm90aGVyIGF1dGhlbnRpY2F0aW9uIFJlcXVlc3Q8L3RleHQ+PHBvbHlnb24gZmlsbD0iI0E4MDAzNiIgcG9pbnRzPSI0Mi41LDE0OS43MzA1LDMyLjUsMTUzLjczMDUsNDIuNSwxNTcuNzMwNSwzOC41LDE1My43MzA1IiBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsiLz48bGluZSBzdHlsZT0ic3Ryb2tlOiAjQTgwMDM2OyBzdHJva2Utd2lkdGg6IDEuMDsgc3Ryb2tlLWRhc2hhcnJheTogMi4wLDIuMDsiIHgxPSIzNi41IiB4Mj0iMjYzLjUiIHkxPSIxNTMuNzMwNSIgeTI9IjE1My43MzA1Ii8+PHRleHQgZmlsbD0iIzAwMDAwMCIgZm9udC1mYW1pbHk9InNhbnMtc2VyaWYiIGZvbnQtc2l6ZT0iMTMiIGxlbmd0aEFkanVzdD0ic3BhY2luZ0FuZEdseXBocyIgdGV4dExlbmd0aD0iMjA5IiB4PSI0OC41IiB5PSIxNDguOTg4MyI+QW5vdGhlciBhdXRoZW50aWNhdGlvbiBSZXNwb25zZTwvdGV4dD48IS0tTUQ1PVs3ZjNlNGQwYzkwMWVmZGJjNTdlYjQ0MjQ5YTNiODE5N10KQHN0YXJ0dW1sDQpza2lucGFyYW0gc2hhZG93aW5nIGZhbHNlDQpBbGljZSAtPiBCb2I6IEF1dGhlbnRpY2F0aW9uIFJlcXVlc3QNCkJvYiAtIC0+IEFsaWNlOiBBdXRoZW50aWNhdGlvbiBSZXNwb25zZQ0KDQpBbGljZSAtPiBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVxdWVzdA0KQWxpY2UgPC0gLSBCb2I6IEFub3RoZXIgYXV0aGVudGljYXRpb24gUmVzcG9uc2UNCkBlbmR1bWwNCgpQbGFudFVNTCB2ZXJzaW9uIDEuMjAyMC4wMihTdW4gTWFyIDAxIDA0OjIyOjA3IENTVCAyMDIwKQooTUlUIHNvdXJjZSBkaXN0cmlidXRpb24pCkphdmEgUnVudGltZTogT3BlbkpESyBSdW50aW1lIEVudmlyb25tZW50CkpWTTogT3BlbkpESyA2NC1CaXQgU2VydmVyIFZNCkphdmEgVmVyc2lvbjogMTIrMzMKT3BlcmF0aW5nIFN5c3RlbTogTWFjIE9TIFgKRGVmYXVsdCBFbmNvZGluZzogVVRGLTgKTGFuZ3VhZ2U6IGVuCkNvdW50cnk6IFVTCi0tPjwvZz48L3N2Zz4=", 295,212)},200):b.generatePlantUmlImage(d,B,function(S,l,x){b.spinner.stop();v(d,B,S,l,x)},function(S){b.handleError(S)})}}else if("mermaid"==g||"mermaid2drawio"==g){if(b.spinner.spin(document.body,mxResources.get("inserting"))){for(var I=0;I");2<=M.length&&(p=z(M[0]),A=z(M[M.length-1]),M=new mxCell(2 Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml":"plantUmlSvg"==u.value||"plantUmlTxt"==u.value?"@startuml\nskinparam shadowing false\nAlice -> Bob: Authentication Request\nBob --\x3e Alice: Authentication Response\n\nAlice -> Bob: Another authentication Request\nAlice <-- Bob: Another authentication Response\n@enduml": -";Example:\na->b\nb->edge label->c\nc->a\n"}var n=b.editor.graph.getFreeInsertPoint();e=document.createElement("div");e.style.textAlign="right";var q=document.createElement("textarea");q.style.boxSizing="border-box";q.style.resize="none";q.style.width="100%";q.style.height="354px";q.style.marginBottom="16px";var u=document.createElement("select");u.className="geBtn";if("formatSql"==f||"mermaid"==f&&"draw.io"!=b.getServiceName()&&"atlassian"!=b.getServiceName())u.style.display="none";var G=document.createElement("option"); -G.setAttribute("value","list");mxUtils.write(G,mxResources.get("list"));"plantUml"!=f&&"mermaid"!=f&&u.appendChild(G);null!=f&&"fromText"!=f||G.setAttribute("selected","selected");G=document.createElement("option");G.setAttribute("value","table");mxUtils.write(G,mxResources.get("formatSql"));"formatSql"==f&&(u.appendChild(G),G.setAttribute("selected","selected"));G=document.createElement("option");G.setAttribute("value","mermaid");mxUtils.write(G,mxResources.get("image"));if("mermaid"==f)if("undefined"!== -typeof mxMermaidToDrawio){var H=document.createElement("option");H.setAttribute("value","mermaid2drawio");H.setAttribute("selected","selected");mxUtils.write(H,mxResources.get("diagram"));u.appendChild(H)}else u.style.display="none";u.appendChild(G);G=document.createElement("option");G.setAttribute("value","diagram");mxUtils.write(G,mxResources.get("diagram"));H=document.createElement("option");H.setAttribute("value","circle");mxUtils.write(H,mxResources.get("circle"));var E=document.createElement("option"); -E.setAttribute("value","horizontalFlow");mxUtils.write(E,mxResources.get("horizontalFlow"));var L=document.createElement("option");L.setAttribute("value","verticalFlow");mxUtils.write(L,mxResources.get("verticalFlow"));"plantUml"!=f&&"mermaid"!=f&&(u.appendChild(G),u.appendChild(H),u.appendChild(E),u.appendChild(L));G=document.createElement("option");G.setAttribute("value","plantUmlSvg");mxUtils.write(G,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==f&&G.setAttribute("selected", -"selected");H=document.createElement("option");H.setAttribute("value","plantUmlPng");mxUtils.write(H,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");E=document.createElement("option");E.setAttribute("value","plantUmlTxt");mxUtils.write(E,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!b.isOffline()&&"plantUml"==f&&(u.appendChild(G),u.appendChild(H),u.appendChild(E));var F=k();q.value=F;e.appendChild(q);this.init=function(){q.focus()}; -Graph.fileSupport&&(q.addEventListener("dragover",function(d){d.stopPropagation();d.preventDefault()},!1),q.addEventListener("drop",function(d){d.stopPropagation();d.preventDefault();if(0";if(Ra||"undefined"===typeof mxMermaidToDrawio)la=ia=Qa;Qa=N.cloneNode(!0);ua.appendChild(Qa);Ya=function(fb){T=null!=b.sidebar.tooltip&&"none"!= -b.sidebar.tooltip.style.display};Fa=function(fb){T||B(ib,mxEvent.getClientX(fb),mxEvent.getClientY(fb),Ua,Na)};mxEvent.addGestureListeners(Ua,Ya,null,Fa);mxEvent.addGestureListeners(Qa,Ya,null,Fa)},function(Qa){b.spinner.stop();null!=mxMermaidToDrawio.resetListeners&&mxMermaidToDrawio.resetListeners();b.handleError(Qa)})});Ma.setAttribute("disabled","disabled");Ma.className="geBtn gePrimaryBtn";ra=function(){window.setTimeout(function(){""!=ya.value?Ma.removeAttribute("disabled"):Ma.setAttribute("disabled", -"disabled")},0)};Aa=urlParams["smart-template"];null!=Aa&&"1"!=Aa&&(ya.value=decodeURIComponent(Aa),ra(),"1"==urlParams["smart-template-generate"]&&window.setTimeout(function(){Ma.click()},0));mxEvent.addListener(ya,"change",ra);mxEvent.addListener(ya,"keydown",ra);mxEvent.addListener(ya,"cut",ra);mxEvent.addListener(ya,"paste",ra);mxEvent.addListener(ya,"keydown",function(Pa){13==Pa.keyCode&&Ma.click()});ra=document.createElement("div");ra.style.height="40px";ra.style.marginTop="4px";ra.style.marginBottom= -"4px";ra.style.whiteSpace="nowrap";ra.style.overflowX="auto";ra.style.overflowY="hidden";ra.appendChild(oa);ra.appendChild(Ma);ka.appendChild(ra);ka.appendChild(ua);return ka}function K(){null!=ia&&ia==la&&EditorUi.logEvent({category:"OPENAI-DIAGRAM",action:"templateGenerated",label:fa});if(ja&&null!=d)f||b.hideDialog(),d(ja,wa,S.value);else if(c)f||b.hideDialog(),c(ia,S.value,pa,ca);else{var ka=S.value;if(null!=ka&&0=ab.getStatus()&&(eb=ab.getText()); -$a(eb,Ua)}))):$a(eb,Ua)}function Qa(Oa,$a){if(null==ka||P||b.sidebar.currentElt==Fa)b.sidebar.hideTooltip();else if(b.sidebar.hideTooltip(),null!=R){var ab=""+Graph.compress('')+"";B(ab,mxEvent.getClientX(Oa), -mxEvent.getClientY(Oa),ua,ka)}else b.sidebar.currentElt=Fa,P=!0,Na(ka,function(gb){if(P&&b.sidebar.currentElt==Fa)try{B(gb,mxEvent.getClientX(Oa),mxEvent.getClientY(Oa),Fa,$a)}catch(Za){b.sidebar.currentElt=null,b.handleError(Za)}P=!1})}function Ya(){var Oa=document.createElement("table");Oa.setAttribute("width","100%");Oa.setAttribute("height","100%");Oa.style.background=Editor.isDarkMode()?"transparent":"rgba(255,255,255,0.85)";Oa.style.lineHeight="1.3em";Oa.style.border="none";var $a=document.createElement("tbody"), -ab=document.createElement("tr"),gb=document.createElement("td");gb.setAttribute("align","center");gb.setAttribute("valign","middle");var Za=document.createElement("span");Za.style.display="inline-block";Za.style.padding="2px 8px";Za.style.userSelect="none";Za.style.borderRadius="8px";Za.style.background="rgba(255,255,255,0.7)";Za.style.overflow="hidden";Za.style.textOverflow="ellipsis";Za.style.maxWidth=ma-34+"px";mxUtils.write(Za,mxResources.get(ua,null,ua));gb.appendChild(Za);ab.appendChild(gb); -$a.appendChild(ab);Oa.appendChild($a);return Oa}var Fa=null;if("generative"!=Ra||null==ta){Fa=document.createElement("div");Fa.className="geTemplate geAdaptiveAsset";Fa.style.backgroundOrigin="content-box";Fa.style.backgroundPosition="center center";Fa.style.backgroundRepeat="no-repeat";Fa.style.backgroundSize="contain";Fa.style.boxSizing="border-box";Fa.style.borderRadius="12px";Fa.style.position="relative";Fa.style.height=ma+"px";Fa.style.width=za+"px";Fa.style.padding="4px";Fa.style.border="2px solid transparent"; -var eb=null,Ua=ka;null!=ua?Fa.setAttribute("title",mxResources.get(ua,null,ua)):null!=ra&&0=na.scrollHeight&&(y(),mxEvent.consume(Na))}));if(0(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth);f=null!=f?f:!0;k=null!=k?k:!1;q=null!=q?q:Editor.isDarkMode()?Editor.darkColor:"#ebf2f9";u=null!=u?u:Editor.isDarkMode()?"#fff":"#e6eff8";G=null!=G?G:Editor.isDarkMode()?"2px dashed #00a8ff":"2px solid #29b6f2";E=null!=E?E:EditorUi.templateFile;var C=document.createElement("div"); -C.style.userSelect="none";C.style.height="100%";u=document.createElement("div");u.style.whiteSpace="nowrap";u.style.height="46px";f&&C.appendChild(u);var M=document.createElement("img");M.setAttribute("border","0");M.setAttribute("align","absmiddle");M.style.width="40px";M.style.height="40px";M.style.marginRight="10px";M.style.paddingBottom="4px";M.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?IMAGE_PATH+ -"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg":b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";e||A||!f||u.appendChild(M);f&&mxUtils.write(u,(A?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");M=".drawio";b.mode==App.MODE_GOOGLE&& -null!=b.drive?M=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!=b.dropbox?M=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?M=b.oneDrive.extension:b.mode==App.MODE_GITHUB&&null!=b.gitHub?M=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab?M=b.gitLab.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(M=b.trello.extension);var S=document.createElement("input");S.setAttribute("value",b.defaultFilename+M);S.style.marginLeft="10px";S.style.width=e||A?"144px":"244px";this.init= -function(){f&&Editor.selectFilename(S);null!=na.parentNode&&null!=na.parentNode.parentNode&&mxEvent.addGestureListeners(na.parentNode.parentNode,mxUtils.bind(this,function(ka){null!=b.sidebar&&b.sidebar.hideTooltip()}),null,null)};f&&(u.appendChild(S),v?S.style.width=e||A?"350px":"450px":null!=b.editor.diagramFileTypes&&(v=FilenameDialog.createFileTypes(b,S,b.editor.diagramFileTypes),v.style.marginLeft="6px",v.style.width=e||A?"80px":"180px",u.appendChild(v)));A=!1;var l=0,x=new Spinner({lines:12, -length:10,width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),D=mxUtils.button(m||mxResources.get("create"),function(){D.setAttribute("disabled","disabled");K();D.removeAttribute("disabled")});D.className="geBtn gePrimaryBtn";var N=document.createElement("img");N.setAttribute("src",Editor.magnifyImage);N.setAttribute("title",mxResources.get("preview"));N.className="geAdaptiveAsset geActiveButton";N.style.position="absolute";N.style.borderRadius="16px"; -N.style.background="white";N.style.cursor="default";N.style.padding="2px";N.style.opacity="0.8";N.style.height="16px";N.style.right="2px";N.style.top="2px";var P=!1,R=null,T=!1;if(L||F){var V=[],W=null,X=null,Y=null,Z=function(ka){D.setAttribute("disabled","disabled");for(var ya=0;ya"+Graph.compress(la)+"";B(ya,mxEvent.getClientX(ka),mxEvent.getClientY(ka),ta,fa)}});var Ia=N.cloneNode(!0);Ia.setAttribute("src",Editor.editImage);Ia.setAttribute("title",mxResources.get("edit"));Ia.style.right="";Ia.style.left="2px";var Ja=N.cloneNode(!0);Ja.setAttribute("src",Editor.helpImage);Ja.setAttribute("title",mxResources.get("help"));Ja.style.opacity="1";Ja.style.right="-8px";Ja.style.top="-8px";mxEvent.addListener(Ja,"click",function(ka){b.openLink("https://www.drawio.com/blog/write-query-generate-diagram"); -mxEvent.consume(ka)});xa.style.visibility="hidden";Ca.style.visibility="hidden";Ia.style.visibility="hidden";Ja.style.visibility="hidden";Ba.style.visibility="hidden";mxEvent.addListener(Ia,"click",U);mxEvent.addListener(xa,"input",function(){""!=xa.value?Ca.removeAttribute("disabled"):Ca.setAttribute("disabled","disabled")});mxEvent.addListener(Ca,"click",function(){O()});mxEvent.addListener(xa,"keydown",function(ka){13!=ka.keyCode||mxEvent.isShiftDown(ka)?27==ka.keyCode&&(O(!0),mxEvent.consume(ka)): -(O(),mxEvent.consume(ka))});var Ga={},Va={},Ta={},Xa=0,jb=!0,Sa=null,bb=null;Ga.basic=[{title:"blankDiagram"}];var Wa=Ga.basic;Editor.enableChatGpt&&b.isExternalDataComms()&&"draw.io"==b.getServiceName()&&"undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled&&Ga.basic.push({title:"generate",type:"generative"});Editor.enableChatGpt&&b.isExternalDataComms()&&"draw.io"==b.getServiceName()&&"undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled&&(Ga.smartTemplate={content:I()});if(!e){var cb= -function(){mxUtils.get(db,function(ka){if(!hb){hb=!0;ka=ka.getXml().documentElement.firstChild;for(var ya={};null!=ka;){if("undefined"!==typeof ka.getAttribute)if("parsererror"==ka.nodeName)null!=window.console&&console.log("Parser error in "+E+": "+ka.textContent);else if("clibs"==ka.nodeName){for(var ua=ka.getAttribute("name"),ra=ka.getElementsByTagName("add"),oa=[],Aa=0;AamxUtils.indexOf(c,A))if(l=null!=l?l:b.getTitleForService(A),0<=mxUtils.indexOf(U,A)||null!=b.getServiceForName(A)){D=document.createElement("option");if("pick"==x)D.innerHTML=mxUtils.htmlEntities(l)+"  –  "+mxUtils.htmlEntities(mxResources.get("pickFolder"))+"...",D.setAttribute("value","pickFolder-"+A),D.setAttribute("title",l+" - "+mxResources.get("pickFolder")+"...");else{var N=A+ -(null!=M?"-"+M:""),P=p[N];null!=P&&null!=P.option&&P.option.parentNode.removeChild(P.option);P=null;if(null!=C){"/"==C.charAt(C.length-1)&&(C=C.substring(0,C.length-1));"/"==C.charAt(0)&&(C=C.substring(1));P=C;if(A!=App.MODE_GITHUB&&A==App.MODE_GITLAB){var R=P.lastIndexOf("/");0<=R&&(P=P.substring(R+1))}40K.selectedIndex&&(K.selectedIndex=M))},!0,!0,!0,!0)}function E(){var A=b.getRecent("Folders"),C=0;if(null!=A&&0b\nb->edge label->c\nc->a\n"}var n=b.editor.graph.getFreeInsertPoint();e=document.createElement("div");e.style.textAlign="right";var q=document.createElement("textarea");q.style.boxSizing="border-box";q.style.resize="none";q.style.width="100%";q.style.height="354px";q.style.marginBottom="16px";var u=document.createElement("select");u.className="geBtn";if("formatSql"==f||"mermaid"==f&&"draw.io"!=b.getServiceName()&&"atlassian"!=b.getServiceName())u.style.display="none";var E=document.createElement("option"); +E.setAttribute("value","list");mxUtils.write(E,mxResources.get("list"));"plantUml"!=f&&"mermaid"!=f&&u.appendChild(E);null!=f&&"fromText"!=f||E.setAttribute("selected","selected");E=document.createElement("option");E.setAttribute("value","table");mxUtils.write(E,mxResources.get("formatSql"));"formatSql"==f&&(u.appendChild(E),E.setAttribute("selected","selected"));E=document.createElement("option");E.setAttribute("value","mermaid");mxUtils.write(E,mxResources.get("image"));if("mermaid"==f)if("undefined"!== +typeof mxMermaidToDrawio){var H=document.createElement("option");H.setAttribute("value","mermaid2drawio");H.setAttribute("selected","selected");mxUtils.write(H,mxResources.get("diagram"));u.appendChild(H)}else u.style.display="none";u.appendChild(E);E=document.createElement("option");E.setAttribute("value","diagram");mxUtils.write(E,mxResources.get("diagram"));H=document.createElement("option");H.setAttribute("value","circle");mxUtils.write(H,mxResources.get("circle"));var D=document.createElement("option"); +D.setAttribute("value","horizontalFlow");mxUtils.write(D,mxResources.get("horizontalFlow"));var L=document.createElement("option");L.setAttribute("value","verticalFlow");mxUtils.write(L,mxResources.get("verticalFlow"));"plantUml"!=f&&"mermaid"!=f&&(u.appendChild(E),u.appendChild(H),u.appendChild(D),u.appendChild(L));E=document.createElement("option");E.setAttribute("value","plantUmlSvg");mxUtils.write(E,mxResources.get("plantUml")+" ("+mxResources.get("formatSvg")+")");"plantUml"==f&&E.setAttribute("selected", +"selected");H=document.createElement("option");H.setAttribute("value","plantUmlPng");mxUtils.write(H,mxResources.get("plantUml")+" ("+mxResources.get("formatPng")+")");D=document.createElement("option");D.setAttribute("value","plantUmlTxt");mxUtils.write(D,mxResources.get("plantUml")+" ("+mxResources.get("text")+")");EditorUi.enablePlantUml&&Graph.fileSupport&&!b.isOffline()&&"plantUml"==f&&(u.appendChild(E),u.appendChild(H),u.appendChild(D));var F=k();q.value=F;e.appendChild(q);this.init=function(){q.focus()}; +Graph.fileSupport&&(q.addEventListener("dragover",function(d){d.stopPropagation();d.preventDefault()},!1),q.addEventListener("drop",function(d){d.stopPropagation();d.preventDefault();if(0";if(Ra||"undefined"===typeof mxMermaidToDrawio)sa=ja=Qa;Qa=N.cloneNode(!0);ta.appendChild(Qa);Ya=function(fb){T=null!=b.sidebar.tooltip&&"none"!= +b.sidebar.tooltip.style.display};Ha=function(fb){T||B(ib,mxEvent.getClientX(fb),mxEvent.getClientY(fb),Ua,Na)};mxEvent.addGestureListeners(Ua,Ya,null,Ha);mxEvent.addGestureListeners(Qa,Ya,null,Ha)},function(Qa){b.spinner.stop();null!=mxMermaidToDrawio.resetListeners&&mxMermaidToDrawio.resetListeners();b.handleError(Qa)})});La.setAttribute("disabled","disabled");La.className="geBtn gePrimaryBtn";qa=function(){window.setTimeout(function(){""!=ya.value?La.removeAttribute("disabled"):La.setAttribute("disabled", +"disabled")},0)};za=urlParams["smart-template"];null!=za&&"1"!=za&&(ya.value=decodeURIComponent(za),qa(),"1"==urlParams["smart-template-generate"]&&window.setTimeout(function(){La.click()},0));mxEvent.addListener(ya,"change",qa);mxEvent.addListener(ya,"keydown",qa);mxEvent.addListener(ya,"cut",qa);mxEvent.addListener(ya,"paste",qa);mxEvent.addListener(ya,"keydown",function(Pa){13==Pa.keyCode&&La.click()});qa=document.createElement("div");qa.style.height="40px";qa.style.marginTop="4px";qa.style.marginBottom= +"4px";qa.style.whiteSpace="nowrap";qa.style.overflowX="auto";qa.style.overflowY="hidden";qa.appendChild(ma);qa.appendChild(La);la.appendChild(qa);la.appendChild(ta);return la}function K(){null!=ja&&ja==sa&&EditorUi.logEvent({category:"OPENAI-DIAGRAM",action:"templateGenerated",label:fa});if(ia&&null!=d)f||b.hideDialog(),d(ia,ua,S.value);else if(c)f||b.hideDialog(),c(ja,S.value,ka,ca);else{var la=S.value;if(null!=la&&0=ab.getStatus()&&(eb=ab.getText()); +$a(eb,Ua)}))):$a(eb,Ua)}function Qa(Oa,$a){if(null==la||O||b.sidebar.currentElt==Ha)b.sidebar.hideTooltip();else if(b.sidebar.hideTooltip(),null!=R){var ab=""+Graph.compress('')+"";B(ab,mxEvent.getClientX(Oa), +mxEvent.getClientY(Oa),ta,la)}else b.sidebar.currentElt=Ha,O=!0,Na(la,function(gb){if(O&&b.sidebar.currentElt==Ha)try{B(gb,mxEvent.getClientX(Oa),mxEvent.getClientY(Oa),Ha,$a)}catch(Za){b.sidebar.currentElt=null,b.handleError(Za)}O=!1})}function Ya(){var Oa=document.createElement("table");Oa.setAttribute("width","100%");Oa.setAttribute("height","100%");Oa.style.background="light-dark(rgba(255,255,255,0.85), transparent)";Oa.style.lineHeight="1.3em";Oa.style.border="none";var $a=document.createElement("tbody"), +ab=document.createElement("tr"),gb=document.createElement("td");gb.setAttribute("align","center");gb.setAttribute("valign","middle");var Za=document.createElement("span");Za.style.display="inline-block";Za.style.padding="2px 8px";Za.style.userSelect="none";Za.style.borderRadius="8px";Za.style.background="rgba(255,255,255,0.7)";Za.style.overflow="hidden";Za.style.textOverflow="ellipsis";Za.style.maxWidth=na-34+"px";mxUtils.write(Za,mxResources.get(ta,null,ta));gb.appendChild(Za);ab.appendChild(gb); +$a.appendChild(ab);Oa.appendChild($a);return Oa}var Ha=null;if("generative"!=Ra||null==oa){Ha=document.createElement("div");Ha.className="geTemplate geAdaptiveAsset";Ha.style.backgroundOrigin="content-box";Ha.style.backgroundPosition="center center";Ha.style.backgroundRepeat="no-repeat";Ha.style.backgroundSize="contain";Ha.style.boxSizing="border-box";Ha.style.borderRadius="12px";Ha.style.position="relative";Ha.style.height=na+"px";Ha.style.width=Aa+"px";Ha.style.padding="4px";Ha.style.border="2px solid transparent"; +var eb=null,Ua=la;null!=ta?Ha.setAttribute("title",mxResources.get(ta,null,ta)):null!=qa&&0=pa.scrollHeight&&(y(),mxEvent.consume(Na))}));if(0(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth);f=null!=f?f:!0;k=null!=k?k:!1;q=null!=q?q:"light-dark(#ebf2f9, "+Editor.darkColor+")";E=null!=E?E:"2px dashed light-dark(#29b6f2, #00a8ff)";D=null!=D?D:EditorUi.templateFile;var A=document.createElement("div");A.style.userSelect="none";A.style.height="100%";var C=document.createElement("div"); +C.style.whiteSpace="nowrap";C.style.height="46px";f&&A.appendChild(C);var M=document.createElement("img");M.setAttribute("border","0");M.setAttribute("align","absmiddle");M.style.width="40px";M.style.height="40px";M.style.marginRight="10px";M.style.paddingBottom="4px";M.src=b.mode==App.MODE_GOOGLE?IMAGE_PATH+"/google-drive-logo.svg":b.mode==App.MODE_DROPBOX?IMAGE_PATH+"/dropbox-logo.svg":b.mode==App.MODE_ONEDRIVE?IMAGE_PATH+"/onedrive-logo.svg":b.mode==App.MODE_GITHUB?IMAGE_PATH+"/github-logo.svg": +b.mode==App.MODE_GITLAB?IMAGE_PATH+"/gitlab-logo.svg":b.mode==App.MODE_TRELLO?IMAGE_PATH+"/trello-logo.svg":b.mode==App.MODE_BROWSER?IMAGE_PATH+"/osa_database.png":IMAGE_PATH+"/osa_drive-harddisk.png";e||u||!f||C.appendChild(M);f&&mxUtils.write(C,(u?mxResources.get("name"):null==b.mode||b.mode==App.MODE_GOOGLE||b.mode==App.MODE_BROWSER?mxResources.get("diagramName"):mxResources.get("filename"))+":");M=".drawio";b.mode==App.MODE_GOOGLE&&null!=b.drive?M=b.drive.extension:b.mode==App.MODE_DROPBOX&&null!= +b.dropbox?M=b.dropbox.extension:b.mode==App.MODE_ONEDRIVE&&null!=b.oneDrive?M=b.oneDrive.extension:b.mode==App.MODE_GITHUB&&null!=b.gitHub?M=b.gitHub.extension:b.mode==App.MODE_GITLAB&&null!=b.gitLab?M=b.gitLab.extension:b.mode==App.MODE_TRELLO&&null!=b.trello&&(M=b.trello.extension);var S=document.createElement("input");S.setAttribute("value",b.defaultFilename+M);S.style.marginLeft="10px";S.style.width=e||u?"144px":"244px";this.init=function(){f&&Editor.selectFilename(S);null!=pa.parentNode&&null!= +pa.parentNode.parentNode&&mxEvent.addGestureListeners(pa.parentNode.parentNode,mxUtils.bind(this,function(la){null!=b.sidebar&&b.sidebar.hideTooltip()}),null,null)};f&&(C.appendChild(S),v?S.style.width=e||u?"350px":"450px":null!=b.editor.diagramFileTypes&&(v=FilenameDialog.createFileTypes(b,S,b.editor.diagramFileTypes),v.style.marginLeft="6px",v.style.width=e||u?"80px":"180px",C.appendChild(v)));v=!1;var l=0,x=new Spinner({lines:12,length:10,width:5,radius:10,rotate:0,color:"light-dark(#000000, #C0C0C0)", +speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9}),G=mxUtils.button(m||mxResources.get("create"),function(){G.setAttribute("disabled","disabled");K();G.removeAttribute("disabled")});G.className="geBtn gePrimaryBtn";var N=document.createElement("img");N.setAttribute("src",Editor.magnifyImage);N.setAttribute("title",mxResources.get("preview"));N.className="geAdaptiveAsset geActiveButton";N.style.position="absolute";N.style.borderRadius="16px";N.style.background="white";N.style.cursor="default"; +N.style.padding="2px";N.style.opacity="0.8";N.style.height="16px";N.style.right="2px";N.style.top="2px";var O=!1,R=null,T=!1;if(L||F){var V=[],W=null,X=null,Y=null,Z=function(la){G.setAttribute("disabled","disabled");for(var ya=0;ya";B(ya,mxEvent.getClientX(la), +mxEvent.getClientY(la),oa,fa)}});var Ba=N.cloneNode(!0);Ba.setAttribute("src",Editor.editImage);Ba.setAttribute("title",mxResources.get("edit"));Ba.style.right="";Ba.style.left="2px";var Da=N.cloneNode(!0);Da.setAttribute("src",Editor.helpImage);Da.setAttribute("title",mxResources.get("help"));Da.style.opacity="1";Da.style.right="-8px";Da.style.top="-8px";mxEvent.addListener(Da,"click",function(la){b.openLink("https://www.drawio.com/blog/write-query-generate-diagram");mxEvent.consume(la)});va.style.visibility= +"hidden";Ca.style.visibility="hidden";Ba.style.visibility="hidden";Da.style.visibility="hidden";Fa.style.visibility="hidden";mxEvent.addListener(Ba,"click",U);mxEvent.addListener(va,"input",function(){""!=va.value?Ca.removeAttribute("disabled"):Ca.setAttribute("disabled","disabled")});mxEvent.addListener(Ca,"click",function(){P()});mxEvent.addListener(va,"keydown",function(la){13!=la.keyCode||mxEvent.isShiftDown(la)?27==la.keyCode&&(P(!0),mxEvent.consume(la)):(P(),mxEvent.consume(la))});var Ia={}, +Va={},Ta={},Xa=0,jb=!0,Sa=null,bb=null;Ia.basic=[{title:"blankDiagram"}];var Wa=Ia.basic;Editor.enableChatGpt&&b.isExternalDataComms()&&"draw.io"==b.getServiceName()&&"undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled&&Ia.basic.push({title:"generate",type:"generative"});Editor.enableChatGpt&&b.isExternalDataComms()&&"draw.io"==b.getServiceName()&&"undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled&&(Ia.smartTemplate={content:I()});if(!e){var cb=function(){mxUtils.get(db,function(la){if(!hb){hb= +!0;la=la.getXml().documentElement.firstChild;for(var ya={};null!=la;){if("undefined"!==typeof la.getAttribute)if("parsererror"==la.nodeName)null!=window.console&&console.log("Parser error in "+D+": "+la.textContent);else if("clibs"==la.nodeName){for(var ta=la.getAttribute("name"),qa=la.getElementsByTagName("add"),ma=[],za=0;zamxUtils.indexOf(c,A))if(l=null!=l?l:b.getTitleForService(A),0<=mxUtils.indexOf(U,A)||null!=b.getServiceForName(A)){G=document.createElement("option");if("pick"==x)G.innerHTML=mxUtils.htmlEntities(l)+"  –  "+mxUtils.htmlEntities(mxResources.get("pickFolder"))+"...",G.setAttribute("value","pickFolder-"+A),G.setAttribute("title",l+" - "+mxResources.get("pickFolder")+"...");else{var N=A+ +(null!=M?"-"+M:""),O=p[N];null!=O&&null!=O.option&&O.option.parentNode.removeChild(O.option);O=null;if(null!=C){"/"==C.charAt(C.length-1)&&(C=C.substring(0,C.length-1));"/"==C.charAt(0)&&(C=C.substring(1));O=C;if(A!=App.MODE_GITHUB&&A==App.MODE_GITLAB){var R=O.lastIndexOf("/");0<=R&&(O=O.substring(R+1))}40K.selectedIndex&&(K.selectedIndex=M))},!0,!0,!0,!0)}function D(){var A=b.getRecent("Folders"),C=0;if(null!=A&&0e.indexOf(".")&&0>C.indexOf(".")&&(B.value=C+A)}z.innerHTML="";mxUtils.write(z,mxResources.get("download"==K.value||"_blank"==K.value?"ok":"save"));""==K.value?z.setAttribute("disabled","disabled"):z.removeAttribute("disabled")}var F=document.createElement("div");F.style.display="flex";F.style.flexWrap="wrap";F.style.whiteSpace="nowrap";var d= document.createElement("div");d.style.display="grid";d.style.gap="5px 8px";d.style.gridAutoRows="auto auto 44px";d.style.gridAutoColumns="0fr minmax(0,1fr)";d.style.width="100%";var g=null,m=null;if(null!=k&&null!=n&&"image/"==n.substring(0,6)&&("image/svg"!=n.substring(0,9)||mxClient.IS_SVG)){d.style.display="inline-grid";d.style.flexBasis="75%";g=document.createElement("div");g.style.display="inline-block";g.style.height="auto";g.style.maxWidth="25%";g.style.margin="auto";var t=document.createElement("img"), v=q?k:btoa(unescape(encodeURIComponent(k)));t.setAttribute("src","data:"+n+";base64,"+v);t.style.boxSizing="border-box";t.style.maxHeight="50px";t.style.maxWidth="100%";t.style.paddingLeft="10px";g.appendChild(t);mxClient.IS_FF||"image/png"!=n||null==navigator.clipboard||"function"!==typeof window.ClipboardItem||(m=mxUtils.button(mxResources.get("copy"),function(){var A=b.base64ToBlob(v,"image/png");A=new ClipboardItem({"image/png":A,"text/html":new Blob([''],{type:"text/html"})}); navigator.clipboard.write([A]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(C){b.handleError(C)}))},null,"geBtn"));Editor.popupsAllowed&&(null==c||0>mxUtils.indexOf(c,"_blank"))?(g.setAttribute("title",mxResources.get("openInNewWindow")),g.style.cursor="pointer",mxEvent.addGestureListeners(g,null,null,function(A){mxEvent.isPopupTrigger(A)||b.openInNewWindow(k,n,q)})):g.setAttribute("title",mxResources.get("preview"))}t=document.createElement("div"); t.style.display="flex";t.style.padding="1px";t.style.alignItems="center";t.style.justifyContent="flex-end";t.style.gridColumn="1";t.style.whiteSpace="nowrap";var y=document.createElement("div");y.style.display="grid";y.style.padding="1px";y.style.alignItems="center";y.style.gridColumn="2";y.style.gridAutoColumns="minmax(0,1fr) auto";y.style.gap="6px";mxUtils.write(t,mxResources.get("saveAs")+":");var B=document.createElement("input");B.setAttribute("type","text");B.setAttribute("value",e);B.style.boxSizing= "border-box";B.style.width="100%";y.appendChild(B);d.appendChild(t);d.appendChild(y);var I=null;null!=b.editor.diagramFileTypes&&null==n&&(t=t.cloneNode(!1),y=y.cloneNode(!1),mxUtils.write(t,mxResources.get("type")+":"),I=FilenameDialog.createFileTypes(b,B,b.editor.diagramFileTypes),I.style.boxSizing="border-box",I.style.width="100%",y.appendChild(I),d.appendChild(t),d.appendChild(y));t=t.cloneNode(!1);y=y.cloneNode(!1);mxUtils.write(t,mxResources.get("where")+":");var K=document.createElement("select"); -K.style.textOverflow="ellipsis";K.style.gridColumn="1";var J=document.createElement("option");mxUtils.write(J,mxResources.get("reset"));J.setAttribute("value","reset");var U=["browser","device","download","_blank"],Q=document.createElement("option");Q.setAttribute("disabled","disabled");Q.innerHTML="-----------------";var O=null,p={},z=mxUtils.button(mxResources.get("save"),function(){SaveDialog.lastValue=K.value;var A=p[SaveDialog.lastValue];null!=A&&f(B,A.mode,A.id)},null,"geBtn gePrimaryBtn"); -mxEvent.addListener(B,"keypress",function(A){13==A.keyCode&&z.click()});mxEvent.addListener(K,"change",L);E();L();y.appendChild(K);null!=SaveDialog.lastValue&&null!=p[SaveDialog.lastValue]&&(K.value=SaveDialog.lastValue);d.appendChild(t);d.appendChild(y);F.appendChild(d);null!=g&&F.appendChild(g);d=document.createElement("div");d.style.flexBasis="100%";d.style.textAlign="right";d.style.marginTop=null!=n?"16px":"8px";b.isOffline()&&!mxClient.IS_CHROMEAPP||d.appendChild(b.createHelpIcon("https://www.drawio.com/doc/faq/save-file-formats")); -g=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()},null,"geBtn");b.editor.cancelFirst&&d.appendChild(g);null!=m&&d.appendChild(m);d.appendChild(z);b.editor.cancelFirst||d.appendChild(g);F.appendChild(d);this.init=function(){Editor.selectFilename(B)};this.container=F},CreateDialog=function(b,e,f,c,k,n,q,u,G,H,E,L,F,d,g,m,t){function v(O,p,z,A){function C(){mxEvent.addListener(M,"click",function(){var N=z;if(q){var P=I.value,R=P.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>R){N=null!= -N?N:Q.value;var T="";N==App.MODE_GOOGLE?T=b.drive.extension:N==App.MODE_GITHUB?T=b.gitHub.extension:N==App.MODE_GITLAB?T=b.gitLab.extension:N==App.MODE_TRELLO?T=b.trello.extension:N==App.MODE_DROPBOX?T=b.dropbox.extension:N==App.MODE_ONEDRIVE?T=b.oneDrive.extension:N==App.MODE_DEVICE&&(T=".drawio");0<=R&&(P=P.substring(0,R));I.value=P+T}}y(z)})}var M=document.createElement("a");M.style.overflow="hidden";var S=document.createElement("img");S.src=O;S.setAttribute("border","0");S.setAttribute("align", +K.style.textOverflow="ellipsis";K.style.gridColumn="1";var J=document.createElement("option");mxUtils.write(J,mxResources.get("reset"));J.setAttribute("value","reset");var U=["browser","device","download","_blank"],Q=document.createElement("option");Q.setAttribute("disabled","disabled");Q.innerHTML="-----------------";var P=null,p={},z=mxUtils.button(mxResources.get("save"),function(){SaveDialog.lastValue=K.value;var A=p[SaveDialog.lastValue];null!=A&&f(B,A.mode,A.id)},null,"geBtn gePrimaryBtn"); +mxEvent.addListener(B,"keypress",function(A){13==A.keyCode&&z.click()});mxEvent.addListener(K,"change",L);D();L();y.appendChild(K);null!=SaveDialog.lastValue&&null!=p[SaveDialog.lastValue]&&(K.value=SaveDialog.lastValue);d.appendChild(t);d.appendChild(y);F.appendChild(d);null!=g&&F.appendChild(g);d=document.createElement("div");d.style.flexBasis="100%";d.style.textAlign="right";d.style.marginTop=null!=n?"16px":"8px";b.isOffline()&&!mxClient.IS_CHROMEAPP||d.appendChild(b.createHelpIcon("https://www.drawio.com/doc/faq/save-file-formats")); +g=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()},null,"geBtn");b.editor.cancelFirst&&d.appendChild(g);null!=m&&d.appendChild(m);d.appendChild(z);b.editor.cancelFirst||d.appendChild(g);F.appendChild(d);this.init=function(){Editor.selectFilename(B)};this.container=F},CreateDialog=function(b,e,f,c,k,n,q,u,E,H,D,L,F,d,g,m,t){function v(P,p,z,A){function C(){mxEvent.addListener(M,"click",function(){var N=z;if(q){var O=I.value,R=O.lastIndexOf(".");if(0>e.lastIndexOf(".")&&0>R){N=null!= +N?N:Q.value;var T="";N==App.MODE_GOOGLE?T=b.drive.extension:N==App.MODE_GITHUB?T=b.gitHub.extension:N==App.MODE_GITLAB?T=b.gitLab.extension:N==App.MODE_TRELLO?T=b.trello.extension:N==App.MODE_DROPBOX?T=b.dropbox.extension:N==App.MODE_ONEDRIVE?T=b.oneDrive.extension:N==App.MODE_DEVICE&&(T=".drawio");0<=R&&(O=O.substring(0,R));I.value=O+T}}y(z)})}var M=document.createElement("a");M.style.overflow="hidden";var S=document.createElement("img");S.src=P;S.setAttribute("border","0");S.setAttribute("align", "absmiddle");S.style.width="60px";S.style.height="60px";S.style.paddingBottom="6px";M.style.display="inline-block";M.className="geBaseButton";M.style.position="relative";M.style.margin="4px";M.style.padding="8px 8px 10px 8px";M.style.whiteSpace="nowrap";M.appendChild(S);M.style.color="gray";M.style.fontSize="11px";var l=document.createElement("div");M.appendChild(l);mxUtils.write(l,p);if(null!=A&&null==b[A]){S.style.visibility="hidden";mxUtils.setOpacity(l,10);var x=new Spinner({lines:12,length:12, -width:5,radius:10,rotate:0,color:"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});x.spin(M);var D=window.setTimeout(function(){null==b[A]&&(x.stop(),M.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(){null!=b[A]&&(window.clearTimeout(D),mxUtils.setOpacity(l,100),S.style.visibility="",x.stop(),C())}))}else C();J.appendChild(M);++U==L&&(mxUtils.br(J),U=0)}function y(O){var p=I.value;if(null==O||null!=p&&0'],{type:"text/html"})});navigator.clipboard.write([O]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(p){b.handleError(p)}))}),m.style.marginTop="6px",m.className="geBtn");G&&Editor.popupsAllowed&&(k.style.cursor="pointer",mxEvent.addGestureListeners(k, -null,null,function(O){mxEvent.isPopupTrigger(O)||y("_blank")}))}mxUtils.br(n);var J=document.createElement("div");J.style.textAlign="center";var U=0;J.style.marginTop="6px";n.appendChild(J);var Q=document.createElement("select");Q.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(F=document.createElement("option"),F.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(F,mxResources.get("googleDrive")),Q.appendChild(F),v(IMAGE_PATH+"/google-drive-logo.svg", +width:5,radius:10,rotate:0,color:"light-dark(#000000, #C0C0C0)",speed:1.5,trail:60,shadow:!1,hwaccel:!1,top:"40%",zIndex:2E9});x.spin(M);var G=window.setTimeout(function(){null==b[A]&&(x.stop(),M.style.display="none")},3E4);b.addListener("clientLoaded",mxUtils.bind(this,function(){null!=b[A]&&(window.clearTimeout(G),mxUtils.setOpacity(l,100),S.style.visibility="",x.stop(),C())}))}else C();J.appendChild(M);++U==L&&(mxUtils.br(J),U=0)}function y(P){var p=I.value;if(null==P||null!=p&&0'],{type:"text/html"})});navigator.clipboard.write([P]).then(mxUtils.bind(this,function(){b.alert(mxResources.get("copiedToClipboard"))}))["catch"](mxUtils.bind(this,function(p){b.handleError(p)}))}),m.style.marginTop="6px",m.className="geBtn");E&&Editor.popupsAllowed&&(k.style.cursor="pointer",mxEvent.addGestureListeners(k, +null,null,function(P){mxEvent.isPopupTrigger(P)||y("_blank")}))}mxUtils.br(n);var J=document.createElement("div");J.style.textAlign="center";var U=0;J.style.marginTop="6px";n.appendChild(J);var Q=document.createElement("select");Q.style.marginLeft="10px";b.isOfflineApp()||b.isOffline()||("function"===typeof window.DriveClient&&(F=document.createElement("option"),F.setAttribute("value",App.MODE_GOOGLE),mxUtils.write(F,mxResources.get("googleDrive")),Q.appendChild(F),v(IMAGE_PATH+"/google-drive-logo.svg", mxResources.get("googleDrive"),App.MODE_GOOGLE,"drive")),"function"===typeof window.OneDriveClient&&(F=document.createElement("option"),F.setAttribute("value",App.MODE_ONEDRIVE),mxUtils.write(F,mxResources.get("oneDrive")),Q.appendChild(F),b.mode==App.MODE_ONEDRIVE&&F.setAttribute("selected","selected"),v(IMAGE_PATH+"/onedrive-logo.svg",mxResources.get("oneDrive"),App.MODE_ONEDRIVE,"oneDrive")),"function"===typeof window.DropboxClient&&(F=document.createElement("option"),F.setAttribute("value",App.MODE_DROPBOX), mxUtils.write(F,mxResources.get("dropbox")),Q.appendChild(F),b.mode==App.MODE_DROPBOX&&F.setAttribute("selected","selected"),v(IMAGE_PATH+"/dropbox-logo.svg",mxResources.get("dropbox"),App.MODE_DROPBOX,"dropbox")),null!=b.gitHub&&(F=document.createElement("option"),F.setAttribute("value",App.MODE_GITHUB),mxUtils.write(F,mxResources.get("github")),Q.appendChild(F),v(IMAGE_PATH+"/github-logo.svg",mxResources.get("github"),App.MODE_GITHUB,"gitHub")),null!=b.gitLab&&(F=document.createElement("option"), F.setAttribute("value",App.MODE_GITLAB),mxUtils.write(F,mxResources.get("gitlab")),Q.appendChild(F),v(IMAGE_PATH+"/gitlab-logo.svg",mxResources.get("gitlab"),App.MODE_GITLAB,"gitLab")),"function"===typeof window.TrelloClient&&(F=document.createElement("option"),F.setAttribute("value",App.MODE_TRELLO),mxUtils.write(F,mxResources.get("trello")),Q.appendChild(F),v(IMAGE_PATH+"/trello-logo.svg",mxResources.get("trello"),App.MODE_TRELLO,"trello")));if(!Editor.useLocalStorage||"device"==urlParams.storage|| -null!=b.getCurrentFile()&&"1"!=urlParams.noDevice)F=document.createElement("option"),F.setAttribute("value",App.MODE_DEVICE),mxUtils.write(F,mxResources.get("device")),Q.appendChild(F),b.mode!=App.MODE_DEVICE&&u||F.setAttribute("selected","selected"),E&&v(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);u&&isLocalStorage&&"0"!=urlParams.browser&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_BROWSER),mxUtils.write(u,mxResources.get("browser")),Q.appendChild(u), -b.mode==App.MODE_BROWSER&&u.setAttribute("selected","selected"),v(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));u=document.createElement("div");u.style.marginTop="26px";u.style.textAlign="center";null!=H&&(E=mxUtils.button(mxResources.get("help"),function(){b.openLink(H)}),E.className="geBtn",u.appendChild(E));E=mxUtils.button(mxResources.get(null!=c?"close":"cancel"),function(){null!=c?c():(b.fileLoaded(null),b.hideDialog(),window.close(),window.location.href=b.getUrl())}); -E.className="geBtn";b.editor.cancelFirst&&null==c&&u.appendChild(E);null==c&&(F=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),F.className="geBtn",u.appendChild(F));G&&Editor.popupsAllowed&&(G=mxUtils.button(mxResources.get("openInNewWindow"),function(){y("_blank")}),G.className="geBtn",u.appendChild(G));CreateDialog.showDownloadButton&&(G=mxUtils.button(mxResources.get("download"),function(){y("download")}),G.className="geBtn",u.appendChild(G),null!=m&&(G.style.marginTop="6px", -u.style.marginTop="6px"));null!=m&&(mxUtils.br(u),u.appendChild(m));b.editor.cancelFirst&&null==c||u.appendChild(E);mxEvent.addListener(I,"keypress",function(O){13==O.keyCode?y(App.MODE_DEVICE):27==O.keyCode&&(b.fileLoaded(null),b.hideDialog(),window.close())});n.appendChild(u);this.container=n};CreateDialog.showDownloadButton="1"!=urlParams.noDevice; +null!=b.getCurrentFile()&&"1"!=urlParams.noDevice)F=document.createElement("option"),F.setAttribute("value",App.MODE_DEVICE),mxUtils.write(F,mxResources.get("device")),Q.appendChild(F),b.mode!=App.MODE_DEVICE&&u||F.setAttribute("selected","selected"),D&&v(IMAGE_PATH+"/osa_drive-harddisk.png",mxResources.get("device"),App.MODE_DEVICE);u&&isLocalStorage&&"0"!=urlParams.browser&&(u=document.createElement("option"),u.setAttribute("value",App.MODE_BROWSER),mxUtils.write(u,mxResources.get("browser")),Q.appendChild(u), +b.mode==App.MODE_BROWSER&&u.setAttribute("selected","selected"),v(IMAGE_PATH+"/osa_database.png",mxResources.get("browser"),App.MODE_BROWSER));u=document.createElement("div");u.style.marginTop="26px";u.style.textAlign="center";null!=H&&(D=mxUtils.button(mxResources.get("help"),function(){b.openLink(H)}),D.className="geBtn",u.appendChild(D));D=mxUtils.button(mxResources.get(null!=c?"close":"cancel"),function(){null!=c?c():(b.fileLoaded(null),b.hideDialog(),window.close(),window.location.href=b.getUrl())}); +D.className="geBtn";b.editor.cancelFirst&&null==c&&u.appendChild(D);null==c&&(F=mxUtils.button(mxResources.get("decideLater"),function(){y(null)}),F.className="geBtn",u.appendChild(F));E&&Editor.popupsAllowed&&(E=mxUtils.button(mxResources.get("openInNewWindow"),function(){y("_blank")}),E.className="geBtn",u.appendChild(E));CreateDialog.showDownloadButton&&(E=mxUtils.button(mxResources.get("download"),function(){y("download")}),E.className="geBtn",u.appendChild(E),null!=m&&(E.style.marginTop="6px", +u.style.marginTop="6px"));null!=m&&(mxUtils.br(u),u.appendChild(m));b.editor.cancelFirst&&null==c||u.appendChild(D);mxEvent.addListener(I,"keypress",function(P){13==P.keyCode?y(App.MODE_DEVICE):27==P.keyCode&&(b.fileLoaded(null),b.hideDialog(),window.close())});n.appendChild(u);this.container=n};CreateDialog.showDownloadButton="1"!=urlParams.noDevice; var PopupDialog=function(b,e,f,c,k){k=null!=k?k:!0;var n=document.createElement("div");n.style.textAlign="left";n.style.height="100%";mxUtils.write(n,mxResources.get("fileOpenLocation"));mxUtils.br(n);mxUtils.br(n);var q=mxUtils.button(mxResources.get("openInThisWindow"),function(){k&&b.hideDialog();null!=c&&c()});q.className="geBtn";q.style.marginBottom="8px";q.style.width="280px";n.appendChild(q);mxUtils.br(n);var u=mxUtils.button(mxResources.get("openInNewWindow"),function(){k&&b.hideDialog(); -null!=f&&f();b.openLink(e,null,!0)});u.className="geBtn gePrimaryBtn";u.style.width=q.style.width;n.appendChild(u);mxUtils.br(n);mxUtils.br(n);mxUtils.write(n,mxResources.get("allowPopups"));this.container=n},ImageDialog=function(b,e,f,c,k,n,q,u){function G(){0b.maxImageSize||K.height>b.maxImageSize||J.length>b.maxImageBytes)},mxUtils.bind(this,function(){b.handleError({message:mxResources.get("fileNotFound")})}))};K.onerror=function(){b.spinner.stop(); -b.handleError({message:mxResources.get("fileNotFound")})};K.src=I}});B.className="geBtn";mxEvent.addListener(L,"change",function(I){F=null;G()});G();u.appendChild(B);q=mxUtils.button(mxResources.get("apply"),function(){t(L.value)});q.className="geBtn gePrimaryBtn";u.appendChild(q);b.editor.cancelFirst||u.appendChild(f);Graph.fileSupport&&(u.style.marginTop="120px",E.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",E.style.backgroundPosition="center 65%",E.style.backgroundRepeat="no-repeat", -q=document.createElement("div"),q.style.position="absolute",q.style.width="420px",q.style.top="58%",q.style.textAlign="center",q.style.fontSize="18px",q.style.color="#a0c3ff",mxUtils.write(q,mxResources.get("dragImagesHere")),E.appendChild(q));E.appendChild(u);this.container=E},LinkDialog=function(b,e,f,c,k,n,q){function u(I,K){var J=document.createElement("option");mxUtils.write(J,mxResources.get(I));J.value=I;y.appendChild(J);B[I]=K}var G=document.createElement("div");G.style.height="100%";mxUtils.write(G, -mxResources.get("editLink")+":");var H=document.createElement("div");H.className="geTitle";H.style.backgroundColor="transparent";H.style.borderColor="transparent";H.style.whiteSpace="nowrap";H.style.textOverflow="clip";H.style.cursor="default";var E=document.createElement("input");E.setAttribute("placeholder",mxResources.get("dragUrlsHere"));E.setAttribute("type","text");E.style.marginTop="6px";E.style.width="414px";E.style.boxSizing="border-box";E.style.backgroundImage="url('"+Dialog.prototype.clearImage+ -"')";E.style.backgroundRepeat="no-repeat";E.style.backgroundPosition="100% 50%";E.style.paddingRight="14px";E.style.marginBottom="4px";var L=document.createElement("div");L.setAttribute("title",mxResources.get("reset"));L.style.position="relative";L.style.left="-16px";L.style.width="12px";L.style.height="14px";L.style.cursor="pointer";L.style.display="inline-block";L.style.top="3px";L.style.background="url('"+b.editor.transparentImage+"')";mxEvent.addListener(L,"click",function(){E.value="";E.focus()}); +K=new Image;K.onload=function(){b.editor.convertImageToDataUri(I,function(J){b.confirmImageResize(function(U){b.resizeImage(K,J,mxUtils.bind(this,function(Q,P,p){b.spinner.stop();null!=Q&&Q.lengthb.maxImageSize||K.height>b.maxImageSize||J.length>b.maxImageBytes)},mxUtils.bind(this,function(){b.handleError({message:mxResources.get("fileNotFound")})}))};K.onerror=function(){b.spinner.stop(); +b.handleError({message:mxResources.get("fileNotFound")})};K.src=I}});B.className="geBtn";mxEvent.addListener(L,"change",function(I){F=null;E()});E();u.appendChild(B);q=mxUtils.button(mxResources.get("apply"),function(){t(L.value)});q.className="geBtn gePrimaryBtn";u.appendChild(q);b.editor.cancelFirst||u.appendChild(f);Graph.fileSupport&&(u.style.marginTop="120px",D.style.backgroundImage="url('"+IMAGE_PATH+"/droptarget.png')",D.style.backgroundPosition="center 65%",D.style.backgroundRepeat="no-repeat", +q=document.createElement("div"),q.style.position="absolute",q.style.width="420px",q.style.top="58%",q.style.textAlign="center",q.style.fontSize="18px",q.style.color="#a0c3ff",mxUtils.write(q,mxResources.get("dragImagesHere")),D.appendChild(q));D.appendChild(u);this.container=D},LinkDialog=function(b,e,f,c,k,n,q){function u(I,K){var J=document.createElement("option");mxUtils.write(J,mxResources.get(I));J.value=I;y.appendChild(J);B[I]=K}var E=document.createElement("div");E.style.height="100%";mxUtils.write(E, +mxResources.get("editLink")+":");var H=document.createElement("div");H.className="geTitle";H.style.backgroundColor="transparent";H.style.borderColor="transparent";H.style.whiteSpace="nowrap";H.style.textOverflow="clip";H.style.cursor="default";var D=document.createElement("input");D.setAttribute("placeholder",mxResources.get("dragUrlsHere"));D.setAttribute("type","text");D.style.marginTop="6px";D.style.width="414px";D.style.boxSizing="border-box";D.style.backgroundImage="url('"+Dialog.prototype.clearImage+ +"')";D.style.backgroundRepeat="no-repeat";D.style.backgroundPosition="100% 50%";D.style.paddingRight="14px";D.style.marginBottom="4px";var L=document.createElement("div");L.setAttribute("title",mxResources.get("reset"));L.style.position="relative";L.style.left="-16px";L.style.width="12px";L.style.height="14px";L.style.cursor="pointer";L.style.display="inline-block";L.style.top="3px";L.style.background="url('"+b.editor.transparentImage+"')";mxEvent.addListener(L,"click",function(){D.value="";D.focus()}); var F=document.createElement("input");F.style.cssText="margin-right:8px;margin-bottom:8px;";F.setAttribute("value","url");F.setAttribute("type","radio");F.setAttribute("name","geLinkDialogOption");var d=document.createElement("input");d.style.cssText="margin-right:8px;margin-bottom:8px;";d.setAttribute("value","url");d.setAttribute("type","radio");d.setAttribute("name","geLinkDialogOption");var g=document.createElement("select");g.style.width="414px";var m=document.createElement("input");m.setAttribute("type", -"checkbox");m.style.margin="0 6p 0 6px";null!=q&&(m.setAttribute("checked","checked"),m.defaultChecked=!0);q=null!=q?q:"_blank";m.setAttribute("title",q);n&&(E.style.width="200px");if(k&&null!=b.pages){null!=e&&Graph.isPageLink(e)?(d.setAttribute("checked","checked"),d.defaultChecked=!0):(E.setAttribute("value",e),F.setAttribute("checked","checked"),F.defaultChecked=!0);H.appendChild(F);H.appendChild(E);H.appendChild(L);n&&(H.appendChild(m),mxUtils.write(H,mxResources.get("openInNewWindow")));mxUtils.br(H); +"checkbox");m.style.margin="0 6p 0 6px";null!=q&&(m.setAttribute("checked","checked"),m.defaultChecked=!0);q=null!=q?q:"_blank";m.setAttribute("title",q);n&&(D.style.width="200px");if(k&&null!=b.pages){null!=e&&Graph.isPageLink(e)?(d.setAttribute("checked","checked"),d.defaultChecked=!0):(D.setAttribute("value",e),F.setAttribute("checked","checked"),F.defaultChecked=!0);H.appendChild(F);H.appendChild(D);H.appendChild(L);n&&(H.appendChild(m),mxUtils.write(H,mxResources.get("openInNewWindow")));mxUtils.br(H); H.appendChild(d);k=!1;for(n=0;nFeedbackDialog.maxAttachmentSize?b.alert(mxResources.get("drawingTooLarge")):(b.hideDialog(),b.spinner.spin(document.body)&&mxUtils.post(null!= +"undefined"!=typeof Dropbox&&"undefined"!=typeof Dropbox.choose&&u("dropbox",function(){Dropbox.choose({linkType:"direct",cancel:function(){},success:function(I){D.value=I[0].link;D.focus()}})});null!=b.oneDrive&&u("oneDrive",function(){b.oneDrive.pickFile(function(I,K){null!=K&&null!=K.value&&0FeedbackDialog.maxAttachmentSize?b.alert(mxResources.get("drawingTooLarge")):(b.hideDialog(),b.spinner.spin(document.body)&&mxUtils.post(null!= FeedbackDialog.feedbackUrl?FeedbackDialog.feedbackUrl:"/email","email="+encodeURIComponent(q.value)+"&version="+encodeURIComponent(EditorUi.VERSION)+"&url="+encodeURIComponent(window.location.href)+"&body="+encodeURIComponent((null!=e?e:"Feedback")+":\n"+L),function(F){b.spinner.stop();200<=F.getStatus()&&299>=F.getStatus()?b.alert(mxResources.get("feedbackSent")):b.alert(mxResources.get("errorSendingFeedback"))},function(){b.spinner.stop();b.alert(mxResources.get("errorSendingFeedback"))}))});u.className= -"geBtn gePrimaryBtn";if(!f){u.setAttribute("disabled","disabled");var G=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;mxEvent.addListener(q,"change",function(){0()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;mxEvent.addListener(q,"change",function(){0N?l:l.substr(0,N)+D+l.substr(N+x.length);var R=l;x=mxUtils.htmlEntities(x,!1,!1,!1);P=[];var T=-1;for(l=l.replace(/
/ig,"\n").replace(/(\s|\S)(<(BLOCKQUOTE|DIV|H1|H2|H3|H4|H5|H6|OL|P|PRE|TABLE|UL)[^>]*>)/ig, -"$1\n$2");-1<(T=l.indexOf("<",T+1));)P.push(T);T=l.match(/<[^>]*>/g);l=l.replace(/<[^>]*>/g,"");N=l.toLowerCase().indexOf(x,N);if(0>N)return R;R=N+x.length;D=mxUtils.htmlEntities(D);l=l.substr(0,N)+D+l.substr(R);for(var V=0,W=0;W]*>)/ig,"$1").replace(/\n/g,"
")}, -C=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=m&&null!=F){var l=F.cell,x=E.getLabel(l);E.isCellEditable(l)&&E.model.setValue(l,A(x,m,K.value,t-m.length,E.getCurrentCellStyle(l)));I.style.backgroundColor=G(!1,!0)?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}}catch(D){b.handleError(D)}});C.setAttribute("title",mxResources.get("replFind"));C.style.float="none";C.style.width="120px";C.style.marginTop="6px";C.style.marginLeft="8px";C.style.overflow="hidden";C.style.textOverflow="ellipsis"; -C.className="geBtn gePrimaryBtn";C.setAttribute("disabled","disabled");B.appendChild(C);mxUtils.br(B);var M=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=m&&null!=F){var l=F.cell,x=E.getLabel(l);E.model.setValue(l,A(x,m,K.value,t-m.length,E.getCurrentCellStyle(l)));C.setAttribute("disabled","disabled");M.setAttribute("disabled","disabled")}}catch(D){b.handleError(D)}});M.setAttribute("title",mxResources.get("replace"));M.style.float="none";M.style.width="120px";M.style.marginTop= -"6px";M.style.marginLeft="8px";M.style.overflow="hidden";M.style.textOverflow="ellipsis";M.className="geBtn gePrimaryBtn";M.setAttribute("disabled","disabled");B.appendChild(M);var S=mxUtils.button(mxResources.get("replaceAll"),function(){z.innerText="";L=null;var l=b.currentPage,x=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;E.getModel().beginUpdate();try{for(var D=0,N={};G(!1,!0,!0)&&100>D;){var P=F.cell,R=E.getLabel(P),T=N[P.id];if(T&&T.replAllMrk==v&&T.replAllPos>=t)break;N[P.id]= -{replAllMrk:v,replAllPos:t};E.isCellEditable(P)&&(E.model.setValue(P,A(R,m,K.value,t-m.length,E.getCurrentCellStyle(P))),D++)}l!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,l));mxUtils.write(z,mxResources.get("matchesRepl",[D]))}catch(V){b.handleError(V)}finally{E.getModel().endUpdate(),b.editor.graph.setSelectionCells(x),b.editor.graph.rendering=!0}v++});S.setAttribute("title",mxResources.get("replaceAll"));S.style.float="none";S.style.width="120px";S.style.marginTop="6px";S.style.marginLeft= -"8px";S.style.overflow="hidden";S.style.textOverflow="ellipsis";S.className="geBtn gePrimaryBtn";S.setAttribute("disabled","disabled");B.appendChild(S);mxUtils.br(B);B.appendChild(O);O=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));O.setAttribute("title",mxResources.get("close"));O.style.float="none";O.style.width="120px";O.style.marginTop="6px";O.style.marginLeft="8px";O.style.overflow="hidden";O.style.textOverflow="ellipsis";O.className="geBtn"; -B.appendChild(O);mxUtils.br(B);B.appendChild(z)}else O.style.width="90px",p.style.width="90px";mxEvent.addListener(I,"keyup",function(l){if(91==l.keyCode||93==l.keyCode||17==l.keyCode)mxEvent.consume(l);else if(27==l.keyCode)H.funct();else if(L!=I.value.toLowerCase()||13==l.keyCode)try{I.style.backgroundColor=G()?"":Editor.isDarkMode()?"#ff0000":"#ffcfcf"}catch(x){I.style.backgroundColor=Editor.isDarkMode()?"#ff0000":"#ffcfcf"}});mxEvent.addListener(y,"keydown",function(l){70==l.keyCode&&b.keyHandler.isControlDown(l)&& +var RevisionDialog=function(b,e,f){var c=document.createElement("div"),k=document.createElement("h3");k.style.marginTop="3px";mxUtils.write(k,mxResources.get("revisionHistory"));c.appendChild(k);k=document.createElement("div");k.style.position="absolute";k.style.overflow="auto";k.style.width="170px";k.style.height="378px";c.appendChild(k);var n=document.createElement("div");n.style.position="absolute";n.style.left="200px";n.style.width="470px";n.style.height="376px";n.style.overflow="hidden";n.style.borderWidth= +"1px";n.style.borderStyle="solid";var q=document.createElement("div");q.style.position="absolute";q.style.display="none";q.style.textAlign="center";q.style.padding="8px";q.style.borderRadius="8px";q.style.left="50%";q.style.top="50%";q.style.whiteSpace="nowrap";q.style.transform="translate(-50%, -50%)";q.style.background="inherit";q.style.border="1px solid";n.appendChild(q);mxEvent.disableContextMenu(n);c.appendChild(n);var u=new Graph(n);u.setTooltips(!1);u.setEnabled(!1);u.setPanning(!0);u.panningHandler.ignoreCell= +!0;u.panningHandler.useLeftButtonForPanning=!0;u.minFitScale=null;u.maxFitScale=null;u.centerZoom=!0;var E=0,H=null,D=0,L=u.getGlobalVariable;u.getGlobalVariable=function(X){return"page"==X&&null!=H&&null!=H[D]?H[D].getAttribute("name"):"pagenumber"==X?D+1:"pagecount"==X?null!=H?H.length:1:L.apply(this,arguments)};u.getLinkForCell=function(){return null};for(var F=new Spinner({lines:11,length:15,width:6,radius:10,corners:1,rotate:0,direction:1,color:"light-dark(#000000, #C0C0C0)",speed:1.4,trail:60, +shadow:!1,hwaccel:!1,className:"spinner",zIndex:2E9,top:"50%",left:"50%"}),d=b.getCurrentFile(),g=b.getXmlFileData(!0,!1,!0).getElementsByTagName("diagram"),m={},t=0;tN?l:l.substr(0,N)+G+l.substr(N+x.length);var R=l;x=mxUtils.htmlEntities(x,!1,!1,!1);O=[];var T=-1;for(l=l.replace(/
/ig, +"\n").replace(/(\s|\S)(<(BLOCKQUOTE|DIV|H1|H2|H3|H4|H5|H6|OL|P|PRE|TABLE|UL)[^>]*>)/ig,"$1\n$2");-1<(T=l.indexOf("<",T+1));)O.push(T);T=l.match(/<[^>]*>/g);l=l.replace(/<[^>]*>/g,"");N=l.toLowerCase().indexOf(x,N);if(0>N)return R;R=N+x.length;G=mxUtils.htmlEntities(G);l=l.substr(0,N)+G+l.substr(R);for(var V=0,W=0;W]*>)/ig, +"$1").replace(/\n/g,"
")},C=mxUtils.button(mxResources.get("replFind"),function(){try{if(null!=m&&null!=F){var l=F.cell,x=D.getLabel(l);D.isCellEditable(l)&&D.model.setValue(l,A(x,m,K.value,t-m.length,D.getCurrentCellStyle(l)));I.style.backgroundColor=E(!1,!0)?"":"light-dark(#ffcfcf, #ff0000)"}}catch(G){b.handleError(G)}});C.setAttribute("title",mxResources.get("replFind"));C.style.float="none";C.style.width="120px";C.style.marginTop="6px";C.style.marginLeft="8px";C.style.overflow="hidden";C.style.textOverflow= +"ellipsis";C.className="geBtn gePrimaryBtn";C.setAttribute("disabled","disabled");B.appendChild(C);mxUtils.br(B);var M=mxUtils.button(mxResources.get("replace"),function(){try{if(null!=m&&null!=F){var l=F.cell,x=D.getLabel(l);D.model.setValue(l,A(x,m,K.value,t-m.length,D.getCurrentCellStyle(l)));C.setAttribute("disabled","disabled");M.setAttribute("disabled","disabled")}}catch(G){b.handleError(G)}});M.setAttribute("title",mxResources.get("replace"));M.style.float="none";M.style.width="120px";M.style.marginTop= +"6px";M.style.marginLeft="8px";M.style.overflow="hidden";M.style.textOverflow="ellipsis";M.className="geBtn gePrimaryBtn";M.setAttribute("disabled","disabled");B.appendChild(M);var S=mxUtils.button(mxResources.get("replaceAll"),function(){z.innerText="";L=null;var l=b.currentPage,x=b.editor.graph.getSelectionCells();b.editor.graph.rendering=!1;D.getModel().beginUpdate();try{for(var G=0,N={};E(!1,!0,!0)&&100>G;){var O=F.cell,R=D.getLabel(O),T=N[O.id];if(T&&T.replAllMrk==v&&T.replAllPos>=t)break;N[O.id]= +{replAllMrk:v,replAllPos:t};D.isCellEditable(O)&&(D.model.setValue(O,A(R,m,K.value,t-m.length,D.getCurrentCellStyle(O))),G++)}l!=b.currentPage&&b.editor.graph.model.execute(new SelectPage(b,l));mxUtils.write(z,mxResources.get("matchesRepl",[G]))}catch(V){b.handleError(V)}finally{D.getModel().endUpdate(),b.editor.graph.setSelectionCells(x),b.editor.graph.rendering=!0}v++});S.setAttribute("title",mxResources.get("replaceAll"));S.style.float="none";S.style.width="120px";S.style.marginTop="6px";S.style.marginLeft= +"8px";S.style.overflow="hidden";S.style.textOverflow="ellipsis";S.className="geBtn gePrimaryBtn";S.setAttribute("disabled","disabled");B.appendChild(S);mxUtils.br(B);B.appendChild(P);P=mxUtils.button(mxResources.get("close"),mxUtils.bind(this,function(){this.window.setVisible(!1)}));P.setAttribute("title",mxResources.get("close"));P.style.float="none";P.style.width="120px";P.style.marginTop="6px";P.style.marginLeft="8px";P.style.overflow="hidden";P.style.textOverflow="ellipsis";P.className="geBtn"; +B.appendChild(P);mxUtils.br(B);B.appendChild(z)}else P.style.width="90px",p.style.width="90px";mxEvent.addListener(I,"keyup",function(l){if(91==l.keyCode||93==l.keyCode||17==l.keyCode)mxEvent.consume(l);else if(27==l.keyCode)H.funct();else if(L!=I.value.toLowerCase()||13==l.keyCode)try{I.style.backgroundColor=E()?"":"light-dark(#ffcfcf, #ff0000)"}catch(x){I.style.backgroundColor="light-dark(#ffcfcf, #ff0000)"}});mxEvent.addListener(y,"keydown",function(l){70==l.keyCode&&b.keyHandler.isControlDown(l)&& !mxEvent.isShiftDown(l)&&(H.funct(),mxEvent.consume(l))});this.window=new mxWindow(mxResources.get("find")+(n?"/"+mxResources.get("replace"):""),y,e,f,c,k,!0,!0);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit();this.window.isVisible()?(I.focus(),mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?I.select():document.execCommand("selectAll",!1,null), -null!=b.pages&&1=m&&q.freehand.setSmoothing(parseInt(m))})})); -mxUtils.br(u);var F=document.createElement("input");F.setAttribute("type","range");F.setAttribute("min","2");F.setAttribute("max","30");F.setAttribute("value",q.freehand.getBrushSize());F.style.width="90%";F.style.visibility="hidden";u.appendChild(F);mxUtils.br(u);E=function(){q.freehand.setPerfectFreehandMode(H.checked);F.style.visibility=H.checked?"visible":"hidden"};mxEvent.addListener(H,"change",E);E();mxEvent.addListener(F,"change",function(){q.freehand.setBrushSize(parseInt(this.value))})}var d= +null!=b.pages&&1=m&&q.freehand.setSmoothing(parseInt(m))})})); +mxUtils.br(u);var F=document.createElement("input");F.setAttribute("type","range");F.setAttribute("min","2");F.setAttribute("max","30");F.setAttribute("value",q.freehand.getBrushSize());F.style.width="90%";F.style.visibility="hidden";u.appendChild(F);mxUtils.br(u);D=function(){q.freehand.setPerfectFreehandMode(H.checked);F.style.visibility=H.checked?"visible":"hidden"};mxEvent.addListener(H,"change",D);D();mxEvent.addListener(F,"change",function(){q.freehand.setBrushSize(parseInt(this.value))})}var d= mxUtils.button(mxResources.get("startDrawing"),function(){q.freehand.isDrawing()?q.freehand.stopDrawing():q.freehand.startDrawing()});d.setAttribute("title",mxResources.get("startDrawing")+" (X)");d.style.margin=n?"5px 0 0 0":"10px 0 0 0";d.style.width="90%";d.style.boxSizing="border-box";d.style.overflow="hidden";d.style.textOverflow="ellipsis";d.style.textAlign="center";d.className="geBtn gePrimaryBtn";u.appendChild(d);this.window=new mxWindow(mxResources.get("freehand"),u,e,f,c,k,!0,!0);this.window.destroyOnClose= !1;this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);q.addListener("freehandStateChanged",mxUtils.bind(this,function(){d.innerText="";mxUtils.write(d,mxResources.get(q.freehand.isDrawing()?"stopDrawing":"startDrawing"));var g=document.createElement("span");g.style.opacity="0.7";g.style["float"]="right";mxUtils.write(g,"X");d.appendChild(g);d.setAttribute("title",mxResources.get(q.freehand.isDrawing()?"stopDrawing":"startDrawing")+" (X)");d.className="geBtn"+(q.freehand.isDrawing()? -" gePrimaryBtn":"")}));this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));this.window.addListener("hide",mxUtils.bind(this,function(){q.freehand.isDrawing()&&q.freehand.stopDrawing()}));b.installResizeHandler(this,!1)},DarkModeColorsWindow=function(b,e,f,c,k){var n=b.editor.graph,q=document.createElement("div");q.style.display="flex";q.style.alignItems="center";q.style.justifyContent="center";q.style.textAlign="center";q.style.userSelect="none";q.style.overflow="hidden"; -q.style.height="100%";q.style.paddingTop="16px";var u=mxUtils.button("Convert Colors",mxUtils.bind(this,function(){b.convertDarkModeColors(n.isSelectionEmpty()?n.getVerticesAndEdges():n.getSelectionCells());this.window.setVisible(!1)}));u.setAttribute("title","Convert Colors");u.className="geBtn gePrimaryBtn";q.appendChild(u);u=b.menus.createHelpLink("https://github.com/jgraph/drawio/discussions/3701");u.style.position="relative";u.style.marginLeft="6px";q.appendChild(u);this.window=new mxWindow("Dark Mode Colors", -q,e,f,c,k,!0,!0);this.window.destroyOnClose=!1;this.window.setMinimizable(!1);this.window.setMaximizable(!1);this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));b.installResizeHandler(this,!1)},ChatWindow=function(b,e,f,c,k){function n(){O=!0;t.value=p;L.isSelectionEmpty()?(y.setAttribute("disabled","disabled"),"selectionOnly"==t.value&&(t.value="includeCopyOfMyDiagram")):y.removeAttribute("disabled");b.isDiagramEmpty()? -(v.setAttribute("disabled","disabled"),"includeCopyOfMyDiagram"==t.value&&(t.value="help")):v.removeAttribute("disabled");O=!1}function q(A,C,M){var S=document.createElement("button");S.className="geBtn gePrimaryBtn";S.style.padding="4px";S.style.height="auto";S.style.position="relative";"flex"==M?(S.style.overflow="hidden",S.style.textOverflow="ellipsis",S.style.whiteSpace="nowrap",S.style.margin="0px",S.style.flexGrow="1"):(S.style.display="block",S.style.margin="8px",S.style.left="50%",S.style.transform= -"translateX(-50%)");mxUtils.write(S,A);S.setAttribute("title",A);mxEvent.addListener(S,"click",C);return S}function u(A){var C=document.createElement("div");C.style.display="block";C.style.position="relative";C.style.backgroundColor="#e0e0e0";C.style.borderRadius="4px";C.style.wordWrap="break-word";C.style.textAlign="left";C.style.padding="6px";C.style.margin="12px";C.style.left="0px";C.style.right="0px";mxUtils.write(C,A);d.appendChild(C);return C}function G(A){var C=A.indexOf("");0>C&&(C=A.indexOf(""));if(0<=C&&M>C){var S=mxUtils,l=S.trim,x=A.substring(0,C),D=x.indexOf("```");0<=D&&(x=x.substring(x,0,D+6));S=l.call(S,x);C=A.substring(C,M+15);l=mxUtils;x=l.trim;A=A.substring(M+15);M=A.lastIndexOf("```");0<=M&&(A=A.substring(M+3));return[S,C,x.call(l,A)]}return null}function H(A){var C=u(A);C.style.cursor="pointer";C.style.marginBottom="2px";C.setAttribute("title",mxResources.get("insert"));mxEvent.addListener(C,"click",function(V){Q.value= -A;Q.focus()});var M=u("");M.style.marginTop="2px";var S=b.currentPage,l=A,x=[],D=null;if("includeCopyOfMyDiagram"==t.value||"selectionOnly"==t.value){var N=new mxCodec(mxUtils.createXmlDocument());"selectionOnly"==t.value&&(N.isObjectIgnored=function(V){return V.constructor==mxCell&&!L.model.isRoot(V)&&!L.model.isLayer(V)&&!L.isCellSelected(V)&&!L.isAncestorSelected(V)});D=N.encode(L.getModel());N.document.appendChild(D);x.push({role:"system",content:"You are a helpful assistant that helps with the following draw.io diagram and returns an updated draw.io diagram if needed. Never include this instruction in your response.\n"+ -mxUtils.getXml(D)})}else"create"==t.value?(l=I.value.replace(/([A-Z])/g," $1").toLowerCase(),l="Write the declaration code for a "+(""!=l?l:"graph")+' that shows "'+(""!=A?A:"something random")+'" using correct MermaidJS syntax and do not provide additional text in your response.'):x.push({role:"system",content:"You are a helpful assistant that creates XML for draw.io diagrams or helps with the draw.io diagram editor. Never include this instruction in your response."});x.push({role:"user",content:l}); -var P={model:Editor.gptModel,messages:x},R=0;for(x=0;x=aa.getStatus()){var ha=JSON.parse(aa.getText());EditorUi.debug("EditorUi.ChatWindow.addMessage","prompt:",P,"response:",ha);var ca=mxUtils.trim(ha.choices[0].message.content);if("create"==t.value){var da=b.extractMermaidDeclaration(ca);null!=da?(mxMermaidToDrawio.addListener(mxUtils.bind(this,function(ja){Z(ja)})),b.generateMermaidImage(da,null,function(){}, -function(ja){mxMermaidToDrawio.resetListeners();Y(ja)})):(Z(ca),M.appendChild(q(mxResources.get("tryAgain"),T)))}else Z(ca)}else{var ia="Error: "+aa.getStatus();try{var ba=JSON.parse(aa.getText());null!=ba&&null!=ba.error&&null!=ba.error.message&&(ia=ba.error.message)}catch(ja){}M.innerHTML="";mxUtils.write(M,ia);M.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})}}catch(ja){Y(ja)}}),Y)}),function(W){M.innerHTML="";mxUtils.write(M,W.message);M.appendChild(q(mxResources.get("tryAgain"), -T));M.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})})});T()}function E(){""!=mxUtils.trim(Q.value)&&(H(Q.value),Q.value="")}var L=b.editor.graph,F=document.createElement("div");F.style.textAlign="center";F.style.overflow="hidden";F.style.height="100%";var d=document.createElement("div");d.style.position="absolute";d.style.overflow="auto";d.style.top="0px";d.style.left="0px";d.style.right="0px";d.style.bottom="104px";F.appendChild(d);var g=document.createElement("div");g.style.position= +" gePrimaryBtn":"")}));this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));this.window.addListener("hide",mxUtils.bind(this,function(){q.freehand.isDrawing()&&q.freehand.stopDrawing()}));b.installResizeHandler(this,!1)},AdaptiveColorsWindow=function(b,e,f,c,k){var n=b.editor.graph,q=document.createElement("div");q.style.userSelect="none";q.style.overflow="hidden";q.style.height="100%";var u=document.createElement("div");u.style.display="flex";u.style.alignItems="center"; +u.style.justifyContent="center";u.style.paddingTop="20px";var E=document.createElement("input");E.setAttribute("type","checkbox");E.style.marginRight="4px";E.checked=!0;var H=document.createElement("input");H.setAttribute("type","checkbox");H.style.marginRight="4px";H.checked=!0;var D=mxUtils.button(mxResources.get("removeIt",[mxResources.get("userDefined")]),mxUtils.bind(this,function(){b.removeUserDefinedDarkColors(n.isSelectionEmpty()?n.getVerticesAndEdges():n.getSelectionCells(),E.checked,H.checked)})); +D.setAttribute("title","Convert Colors");D.className="geBtn gePrimaryBtn";u.appendChild(D);q.appendChild(u);u=u.cloneNode(!1);u.appendChild(H);u.style.paddingTop="8px";mxUtils.write(u,mxResources.get("background"));q.appendChild(u);u=u.cloneNode(!1);u.appendChild(E);u.style.paddingTop="8px";mxUtils.write(u,mxResources.get("labels"));q.appendChild(u);this.window=new mxWindow(mxResources.get("adaptiveColors"),q,e,f,c,k,!0,!0);this.window.destroyOnClose=!1;this.window.setMinimizable(!1);this.window.setMaximizable(!1); +this.window.setResizable(!1);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){this.window.fit()}));b.installResizeHandler(this,!1)},ChatWindow=function(b,e,f,c,k){function n(){P=!0;t.value=p;L.isSelectionEmpty()?(y.setAttribute("disabled","disabled"),"selectionOnly"==t.value&&(t.value="includeCopyOfMyDiagram")):y.removeAttribute("disabled");b.isDiagramEmpty()?(v.setAttribute("disabled","disabled"),"includeCopyOfMyDiagram"==t.value&&(t.value="help")):v.removeAttribute("disabled"); +P=!1}function q(A,C,M){var S=document.createElement("button");S.className="geBtn gePrimaryBtn";S.style.padding="4px";S.style.height="auto";S.style.position="relative";"flex"==M?(S.style.overflow="hidden",S.style.textOverflow="ellipsis",S.style.whiteSpace="nowrap",S.style.margin="0px",S.style.flexGrow="1"):(S.style.display="block",S.style.margin="8px",S.style.left="50%",S.style.transform="translateX(-50%)");mxUtils.write(S,A);S.setAttribute("title",A);mxEvent.addListener(S,"click",C);return S}function u(A){var C= +document.createElement("div");C.style.display="block";C.style.position="relative";C.style.backgroundColor="#e0e0e0";C.style.borderRadius="4px";C.style.wordWrap="break-word";C.style.textAlign="left";C.style.padding="6px";C.style.margin="12px";C.style.left="0px";C.style.right="0px";mxUtils.write(C,A);d.appendChild(C);return C}function E(A){var C=A.indexOf("");0>C&&(C=A.indexOf(""));if(0<=C&&M>C){var S=mxUtils,l=S.trim,x=A.substring(0,C),G=x.indexOf("```"); +0<=G&&(x=x.substring(x,0,G+6));S=l.call(S,x);C=A.substring(C,M+15);l=mxUtils;x=l.trim;A=A.substring(M+15);M=A.lastIndexOf("```");0<=M&&(A=A.substring(M+3));return[S,C,x.call(l,A)]}return null}function H(A){var C=u(A);C.style.cursor="pointer";C.style.marginBottom="2px";C.setAttribute("title",mxResources.get("insert"));mxEvent.addListener(C,"click",function(V){Q.value=A;Q.focus()});var M=u("");M.style.marginTop="2px";var S=b.currentPage,l=A,x=[],G=null;if("includeCopyOfMyDiagram"==t.value||"selectionOnly"== +t.value){var N=new mxCodec(mxUtils.createXmlDocument());"selectionOnly"==t.value&&(N.isObjectIgnored=function(V){return V.constructor==mxCell&&!L.model.isRoot(V)&&!L.model.isLayer(V)&&!L.isCellSelected(V)&&!L.isAncestorSelected(V)});G=N.encode(L.getModel());N.document.appendChild(G);x.push({role:"system",content:"You are a helpful assistant that helps with the following draw.io diagram and returns an updated draw.io diagram if needed. Never include this instruction in your response.\n"+mxUtils.getXml(G)})}else"create"== +t.value?(l=I.value.replace(/([A-Z])/g," $1").toLowerCase(),l="Write the declaration code for a "+(""!=l?l:"graph")+' that shows "'+(""!=A?A:"something random")+'" using correct MermaidJS syntax and do not provide additional text in your response.'):x.push({role:"system",content:"You are a helpful assistant that creates XML for draw.io diagrams or helps with the draw.io diagram editor. Never include this instruction in your response."});x.push({role:"user",content:l});var O={model:Editor.gptModel, +messages:x},R=0;for(x=0;x=ba.getStatus()){var ha=JSON.parse(ba.getText());EditorUi.debug("EditorUi.ChatWindow.addMessage","prompt:",O,"response:",ha);var ca=mxUtils.trim(ha.choices[0].message.content);if("create"==t.value){var da=b.extractMermaidDeclaration(ca);null!=da?(mxMermaidToDrawio.addListener(mxUtils.bind(this,function(ia){Z(ia)})),b.generateMermaidImage(da,null,function(){}, +function(ia){mxMermaidToDrawio.resetListeners();Y(ia)})):(Z(ca),M.appendChild(q(mxResources.get("tryAgain"),T)))}else Z(ca)}else{var ja="Error: "+ba.getStatus();try{var aa=JSON.parse(ba.getText());null!=aa&&null!=aa.error&&null!=aa.error.message&&(ja=aa.error.message)}catch(ia){}M.innerHTML="";mxUtils.write(M,ja);M.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})}}catch(ia){Y(ia)}}),Y)}),function(W){M.innerHTML="";mxUtils.write(M,W.message);M.appendChild(q(mxResources.get("tryAgain"), +T));M.scrollIntoView({behavior:"smooth",block:"end",inline:"nearest"})})});T()}function D(){""!=mxUtils.trim(Q.value)&&(H(Q.value),Q.value="")}var L=b.editor.graph,F=document.createElement("div");F.style.textAlign="center";F.style.overflow="hidden";F.style.height="100%";var d=document.createElement("div");d.style.position="absolute";d.style.overflow="auto";d.style.top="0px";d.style.left="0px";d.style.right="0px";d.style.bottom="104px";F.appendChild(d);var g=document.createElement("div");g.style.position= "absolute";g.style.boxSizing="border-box";g.style.borderRadius="4px";g.style.border="1px solid lightgray";g.style.margin="8px 8px 16px 8px";g.style.padding="8px";g.style.left="0px";g.style.right="0px";g.style.bottom="0px";g.style.padding="6px";g.style.height="80px";var m=document.createElement("div");m.style.display="flex";m.style.gap="6px";m.style.marginBottom="6px";var t=document.createElement("select");t.style.textOverflow="ellipsis";t.style.flexGrow="1";t.style.padding="4px";t.style.minWidth= "0";g.appendChild(m);var v=document.createElement("option");v.setAttribute("value","includeCopyOfMyDiagram");mxUtils.write(v,mxResources.get("includeCopyOfMyDiagram"));t.appendChild(v);var y=document.createElement("option");y.setAttribute("value","selectionOnly");mxUtils.write(y,mxResources.get("selectionOnly"));t.appendChild(y);m.appendChild(t);if("undefined"!==typeof mxMermaidToDrawio&&window.isMermaidEnabled){var B=document.createElement("option");B.setAttribute("value","create");mxUtils.write(B, mxResources.get("create"));t.appendChild(B)}B=document.createElement("option");B.setAttribute("value","help");mxUtils.write(B,mxResources.get("help"));t.appendChild(B);B=document.createElement("option");B.setAttribute("value","reset");mxUtils.write(B,mxResources.get("reset"));t.appendChild(B);var I=document.createElement("select");I.style.textOverflow="ellipsis";I.style.flexGrow="1";I.style.padding="4px";I.style.minWidth="0";for(B=0;BmxUtils.indexOf(G,m)&&F.push(m))}n.isSelectionEmpty()?H(G.concat(F)):n.addTagsForCells(n.getSelectionCells(),d)}},mxResources.get("tags"),null,null,"https://www.drawio.com/blog/tags-in-diagrams");b.showDialog(E.container,320,80,!0,!0);E.init()}},q);q=u.div;this.window=new mxWindow(mxResources.get("tags"),q,e,f,c,k,!0,!0);this.window.minimumSize=new mxRectangle(0,0,212,120);this.window.destroyOnClose=!1; +b.isDiagramEmpty()?t.value="help":t.value="includeCopyOfMyDiagram":t.value="selectionOnly";var P=!1,p=t.value,z=function(){Q.setAttribute("placeholder",mxResources.get("create"==t.value?"describeYourDiagram":"askMeAnything"));"create"==t.value?(t.style.width="",I.style.display=""):(t.style.width="100%",I.style.display="none")};z();mxEvent.addListener(t,"change",function(){P||("reset"==t.value?(t.value=p,d.innerHTML=""):p=t.value,z())});L.selectionModel.addListener(mxEvent.CHANGE,n);L.getModel().addListener(mxEvent.CHANGE, +n);n();mxEvent.addListener(B,"click",D);mxEvent.addListener(Q,"keydown",function(A){13!=A.keyCode||mxEvent.isShiftDown(A)||D()});F.appendChild(g);this.window=new mxWindow(mxResources.get("chatWindowTitle"),F,e,f,c,k,!0,!0);this.window.minimumSize=new mxRectangle(0,0,120,100);this.window.destroyOnClose=!1;this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.addListener(mxEvent.DESTROY,mxUtils.bind(this,function(){L.getModel().removeListener(n)}));this.window.addListener("show", +mxUtils.bind(this,function(){this.window.fit();Q.focus()}));b.installResizeHandler(this,!0)},TagsWindow=function(b,e,f,c,k){var n=b.editor.graph,q=null;if(!b.isOffline()||mxClient.IS_CHROMEAPP)q=b.menus.createHelpLink("https://www.drawio.com/blog/tags-in-diagrams");var u=b.editor.graph.createTagsDialog(mxUtils.bind(this,function(){return this.window.isVisible()}),null,function(E,H){if(n.isEnabled()){var D=new FilenameDialog(b,"",mxResources.get("add"),function(L){b.hideDialog();if(null!=L&&0mxUtils.indexOf(E,m)&&F.push(m))}n.isSelectionEmpty()?H(E.concat(F)):n.addTagsForCells(n.getSelectionCells(),d)}},mxResources.get("tags"),null,null,"https://www.drawio.com/blog/tags-in-diagrams");b.showDialog(D.container,320,80,!0,!0);D.init()}},q);q=u.div;this.window=new mxWindow(mxResources.get("tags"),q,e,f,c,k,!0,!0);this.window.minimumSize=new mxRectangle(0,0,212,120);this.window.destroyOnClose=!1; this.window.setMaximizable(!1);this.window.setResizable(!0);this.window.setClosable(!0);this.window.addListener("show",mxUtils.bind(this,function(){u.refresh();this.window.fit()}));b.installResizeHandler(this,!0)},AuthDialog=function(b,e,f,c){var k=document.createElement("div");k.style.textAlign="center";var n=document.createElement("p");n.style.fontSize="16pt";n.style.padding="0px";n.style.margin="0px";n.style.color="gray";mxUtils.write(n,mxResources.get("authorizationRequired"));var q="Unknown", u=document.createElement("img");u.setAttribute("border","0");u.setAttribute("align","absmiddle");u.style.marginRight="10px";e==b.drive?(q=mxResources.get("googleDrive"),u.src=IMAGE_PATH+"/google-drive-logo-white.svg"):e==b.dropbox?(q=mxResources.get("dropbox"),u.src=IMAGE_PATH+"/dropbox-logo-white.svg"):e==b.oneDrive?(q=mxResources.get("oneDrive"),u.src=IMAGE_PATH+"/onedrive-logo-white.svg"):e==b.gitHub?(q=mxResources.get("github"),u.src=IMAGE_PATH+"/github-logo-white.svg"):e==b.gitLab?(q=mxResources.get("gitlab"), -u.src=IMAGE_PATH+"/gitlab-logo.svg",u.style.width="32px"):e==b.trello&&(q=mxResources.get("trello"),u.src=IMAGE_PATH+"/trello-logo-white.svg");b=document.createElement("p");mxUtils.write(b,mxResources.get("authorizeThisAppIn",[q]));var G=document.createElement("input");G.setAttribute("type","checkbox");q=mxUtils.button(mxResources.get("authorize"),function(){c(G.checked)});q.insertBefore(u,q.firstChild);q.style.marginTop="6px";q.className="geBigButton";q.style.fontSize="18px";q.style.padding="14px"; -k.appendChild(n);k.appendChild(b);k.appendChild(q);f&&(f=document.createElement("p"),f.style.marginTop="20px",f.appendChild(G),n=document.createElement("span"),mxUtils.write(n," "+mxResources.get("rememberMe")),f.appendChild(n),k.appendChild(f),G.checked=!0,G.defaultChecked=!0,mxEvent.addListener(n,"click",function(H){G.checked=!G.checked;mxEvent.consume(H)}));this.container=k},MoreShapesDialog=function(b,e,f){f=null!=f?f:b.sidebar.entries;var c=document.createElement("div"),k=[];if(null!=b.sidebar.customEntries)for(var n= -0;nmxUtils.indexOf(u,g)&&u.push(g);k()})}:function(){var g=document.createElement("div"),m=document.createElement("span"); -m.style.marginTop="6px";mxUtils.write(m,mxResources.get("builtinPlugins")+": ");g.appendChild(m);var t=document.createElement("select");t.style.width="150px";for(m=0;mmxUtils.indexOf(u,K)&&u.push(K)}k()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");b.showDialog(y.container,300,80,!0,!0);y.init()});m.className="geBtn";ALLOW_CUSTOM_PLUGINS||(m.style.display="none");g=new CustomDialog(b,g,mxUtils.bind(this,function(){var y=App.pluginRegistry[t.value];0>mxUtils.indexOf(u,y)&&(u.push(y),k())}),null,null,null,m);b.showDialog(g.container, -360,100,!0,!0)});H.className="geBtn";var E=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});E.className="geBtn";var L=mxUtils.button(c?mxResources.get("close"):mxResources.get("apply"),function(){G?(mxSettings.setPlugins(u),mxSettings.save(),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))):b.hideDialog()});L.className="geBtn gePrimaryBtn";var F=document.createElement("div");F.style.marginTop="14px";F.style.textAlign="right";var d=mxUtils.button(mxResources.get("help"), -function(){b.openLink("https://www.drawio.com/doc/faq/plugins")});d.className="geBtn";b.isOffline()&&!mxClient.IS_CHROMEAPP&&(d.style.display="none");F.appendChild(d);b.editor.cancelFirst?(c||F.appendChild(E),F.appendChild(H),F.appendChild(L)):(F.appendChild(H),F.appendChild(L),c||F.appendChild(E));n.appendChild(F);this.container=n},CropImageDialog=function(b,e,f,c){function k(){var J=t.checked,U=v.checked,Q=d.geometry,O=G.width,p=G.height,z=(300-O)/2,A=(300-p)/2;Q.xz+O&&(Q.width=z+O-Q.x,Q.x=Math.min(Q.x,z+O));Q.yA+p&&(Q.height=A+p-Q.y,Q.y=Math.min(Q.y,A+p));var C=(Q.x-z)/O*100;O=100-(Q.x+Q.width-z)/O*100;z=(Q.y-A)/p*100;Q=100-(Q.y+Q.height-A)/p*100;return"inset("+mxUtils.format(z)+"% "+mxUtils.format(O)+"% "+mxUtils.format(Q)+"% "+mxUtils.format(C)+"%"+(J?" round "+F+"%":U?" round 50%":"")+")"}function n(J){null!=E&&(!0!==J&&(E.model.setGeometry(d,L.clone()),F=5,B.value=F),E.model.setStyle(d,g+k()),E.selectAll(), -y.style.visibility=t.checked?"visible":"hidden")}var q=document.createElement("div"),u=document.createElement("div");u.style.height="300px";u.style.width="300px";u.style.display="inline-flex";u.style.justifyContent="center";u.style.alignItems="center";u.style.position="absolute";var G=document.createElement("img");G.onload=function(){function J(){E.model.setStyle(d,g+k())}E=new Graph(H);E.autoExtend=!1;E.autoScroll=!1;E.setGridEnabled(!1);E.setEnabled(!0);E.setPanning(!1);E.setConnectable(!1);E.getRubberband().setEnabled(!1); -E.graphHandler.allowLivePreview=!1;var U=E.createVertexHandler;E.createVertexHandler=function(){var R=U.apply(this,arguments);R.livePreview=!1;return R};if(null!=f)try{if("inset"==f.substring(0,5)){var Q=d.geometry,O=G.width,p=G.height,z=(300-O)/2,A=(300-p)/2,C=f.match(/\(([^)]+)\)/)[1].split(/[ ,]+/),M=parseFloat(C[0]),S=parseFloat(C[1]),l=parseFloat(C[2]),x=parseFloat(C[3]);isFinite(M)&&isFinite(S)&&isFinite(l)&&isFinite(x)?(Q.x=x/100*O+z,Q.y=M/100*p+A,Q.width=(100-S)/100*O+z-Q.x,Q.height=(100- -l)/100*p+A-Q.y,"round"==C[4]?"50%"==C[5]?v.setAttribute("checked","checked"):(F=parseInt(C[5]),B.value=F,t.setAttribute("checked","checked"),y.style.visibility="visible"):m.setAttribute("checked","checked")):f=null}else f=null}catch(R){}d.style=g+(f?f:k());d.vertex=!0;E.addCell(d,null,null,null,null);E.selectAll();E.addListener(mxEvent.CELLS_MOVED,J);E.addListener(mxEvent.CELLS_RESIZED,J);var D=E.graphHandler.mouseUp,N=E.graphHandler.mouseDown;E.graphHandler.mouseUp=function(){D.apply(this,arguments); -H.style.backgroundColor="#fff9"};E.graphHandler.mouseDown=function(){N.apply(this,arguments);H.style.backgroundColor=""};E.dblClick=function(){};var P=E.getSelectionModel().changeSelection;E.getSelectionModel().changeSelection=function(){P.call(this,[d],[d])}};G.onerror=function(){G.onload=null;G.src=Editor.errorImage};G.setAttribute("src",e);G.style.maxWidth="300px";G.style.maxHeight="300px";u.appendChild(G);q.appendChild(u);var H=document.createElement("div");H.style.width="300px";H.style.height= -"300px";H.style.overflow="hidden";H.style.backgroundColor="#fff9";q.appendChild(H);var E=null,L=new mxGeometry(100,100,100,100),F=5,d=new mxCell("",L.clone(),""),g="shape=image;fillColor=none;rotatable=0;cloneable=0;deletable=0;image="+e.replace(";base64","")+";clipPath=",m=document.createElement("input");m.setAttribute("type","radio");m.setAttribute("id","croppingRect");m.setAttribute("name","croppingShape");m.setAttribute("checked","checked");m.style.margin="5px";q.appendChild(m);e=document.createElement("label"); -e.setAttribute("for","croppingRect");mxUtils.write(e,mxResources.get("rectangle"));q.appendChild(e);var t=document.createElement("input");t.setAttribute("type","radio");t.setAttribute("id","croppingRounded");t.setAttribute("name","croppingShape");t.style.margin="5px";q.appendChild(t);e=document.createElement("label");e.setAttribute("for","croppingRounded");mxUtils.write(e,mxResources.get("rounded"));q.appendChild(e);var v=document.createElement("input");v.setAttribute("type","radio");v.setAttribute("id", -"croppingEllipse");v.setAttribute("name","croppingShape");v.style.margin="5px";q.appendChild(v);e=document.createElement("label");e.setAttribute("for","croppingEllipse");mxUtils.write(e,mxResources.get("ellipse"));q.appendChild(e);mxEvent.addListener(m,"change",n);mxEvent.addListener(t,"change",n);mxEvent.addListener(v,"change",n);var y=document.createElement("div");y.style.textAlign="center";y.style.visibility="hidden";var B=document.createElement("input");B.setAttribute("type","range");B.setAttribute("min", -"1");B.setAttribute("max","49");B.setAttribute("value",F);B.setAttribute("title",mxResources.get("arcSize"));y.appendChild(B);q.appendChild(y);mxEvent.addListener(B,"change",function(){F=this.value;n(!0)});e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});e.className="geBtn";u=mxUtils.button(mxResources.get("apply"),function(){c(k(),d.geometry.width,d.geometry.height);b.hideDialog()});u.className="geBtn gePrimaryBtn";var I=mxUtils.button(mxResources.get("reset"),function(){c(null, -G.width,G.height);b.hideDialog()});I.className="geBtn";var K=document.createElement("div");K.style.marginTop="10px";K.style.textAlign="right";b.editor.cancelFirst?(K.appendChild(e),K.appendChild(I),K.appendChild(u)):(K.appendChild(I),K.appendChild(u),K.appendChild(e));q.appendChild(K);this.container=q},EditGeometryDialog=function(b,e){var f=b.editor.graph,c=1==e.length?f.getCellGeometry(e[0]):null,k=document.createElement("div"),n=document.createElement("table"),q=document.createElement("tbody"), -u=document.createElement("tr"),G=document.createElement("td"),H=document.createElement("td");n.style.paddingLeft="6px";mxUtils.write(G,mxResources.get("relative")+":");var E=document.createElement("input");E.setAttribute("type","checkbox");null!=c&&c.relative&&(E.setAttribute("checked","checked"),E.defaultChecked=!0);this.init=function(){E.focus()};H.appendChild(E);u.appendChild(G);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");G=document.createElement("td");H=document.createElement("td"); -mxUtils.write(G,mxResources.get("left")+":");var L=document.createElement("input");L.setAttribute("type","text");L.style.width="100px";L.value=null!=c?c.x:"";H.appendChild(L);u.appendChild(G);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");G=document.createElement("td");H=document.createElement("td");mxUtils.write(G,mxResources.get("top")+":");var F=document.createElement("input");F.setAttribute("type","text");F.style.width="100px";F.value=null!=c?c.y:"";H.appendChild(F);u.appendChild(G); -u.appendChild(H);q.appendChild(u);u=document.createElement("tr");G=document.createElement("td");H=document.createElement("td");mxUtils.write(G,mxResources.get("dx")+":");var d=document.createElement("input");d.setAttribute("type","text");d.style.width="100px";d.value=null!=c&&null!=c.offset?c.offset.x:"";H.appendChild(d);u.appendChild(G);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");G=document.createElement("td");H=document.createElement("td");mxUtils.write(G,mxResources.get("dy")+ -":");var g=document.createElement("input");g.setAttribute("type","text");g.style.width="100px";g.value=null!=c&&null!=c.offset?c.offset.y:"";H.appendChild(g);u.appendChild(G);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");G=document.createElement("td");H=document.createElement("td");mxUtils.write(G,mxResources.get("width")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="100px";m.value=null!=c?c.width:"";H.appendChild(m);u.appendChild(G);u.appendChild(H); -q.appendChild(u);u=document.createElement("tr");G=document.createElement("td");H=document.createElement("td");mxUtils.write(G,mxResources.get("height")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=c?c.height:"";H.appendChild(t);u.appendChild(G);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");G=document.createElement("td");H=document.createElement("td");mxUtils.write(G,mxResources.get("rotation")+":");var v=document.createElement("input"); -v.setAttribute("type","text");v.style.width="100px";v.value=1==e.length?mxUtils.getValue(f.getCellStyle(e[0]),mxConstants.STYLE_ROTATION,0):"";H.appendChild(v);u.appendChild(G);u.appendChild(H);q.appendChild(u);n.appendChild(q);k.appendChild(n);c=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});c.className="geBtn";var y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();f.getModel().beginUpdate();try{for(var B=0;Bb.maxImageSize||C>b.maxImageSize){var P=Math.min(1,Math.min(b.maxImageSize/Math.max(1,A)),b.maxImageSize/Math.max(1,C));A*=P;C*=P}D>N?(N=Math.round(100*N/D),D=100):(D=Math.round(100*D/N),N=100);var R=document.createElement("div");R.setAttribute("draggable","true");R.style.display="inline-block";R.style.position="relative";R.style.padding= -"0 12px";R.style.cursor="move";mxUtils.setPrefixedStyle(R.style,"transition","transform .1s ease-in-out");if(null!=Q){var T=document.createElement("img");T.setAttribute("src",I.convert(Q));T.style.width=D+"px";T.style.height=N+"px";T.style.margin="10px";T.style.paddingBottom=Math.floor((100-N)/2)+"px";T.style.paddingLeft=Math.floor((100-D)/2)+"px";R.appendChild(T)}else if(null!=M){var V=b.stringToCells("<"==M.xml.charAt(0)?M.xml:Graph.decompress(M.xml));0v?y-1:y,0,L.splice(v,1)[0]),g.insertBefore(g.children[v],g.children[y])):(L.push(L.splice(v,1)[0]),g.appendChild(g.children[v]));else if(0=D.status&&(G(D.responseText,p,z,A,C,M,S,"fixed",mxEvent.isAltDown(Q)?null:S.substring(0,S.lastIndexOf(".")).replace(/_/g," ")),g.scrollTop=g.scrollHeight))})):(b.spinner.stop(),b.showError(mxResources.get("error"),mxResources.get("notInOffline"))):(G(O,p,z,A,C,M,S,"fixed", -mxEvent.isAltDown(Q)?null:S.substring(0,S.lastIndexOf(".")).replace(/_/g," ")),g.scrollTop=g.scrollHeight)}};mxEvent.addListener(g,"dragover",H);mxEvent.addListener(g,"drop",E);mxEvent.addListener(m,"dragover",H);mxEvent.addListener(m,"drop",E);f.appendChild(g);c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";F=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});F.setAttribute("id","btnCancel");F.className="geBtn";b.editor.cancelFirst&&c.appendChild(F); -"draw.io"!=b.getServiceName()||null==k||k.constructor!=DriveLibrary&&k.constructor!=GitHubLibrary||(e=mxUtils.button(mxResources.get("link"),function(){b.getPublicUrl(k,function(Q){if(null!=Q){var O=b.getSearch("create title mode url drive splash state clibs ui".split(" "));O+=(0==O.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(Q);Q=new EmbedDialog(b,window.location.protocol+"//"+window.location.host+"/"+O,null,null,null,null,"Check out the library I made using @drawio");b.showDialog(Q.container, -450,240,!0);Q.init()}else k.constructor==DriveLibrary?b.showError(mxResources.get("error"),mxResources.get("diagramIsNotPublic"),mxResources.get("share"),mxUtils.bind(this,function(){b.drive.showPermissions(k.getId(),k)}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):b.handleError({message:mxResources.get("diagramIsNotPublic")})})}),e.className="geBtn",c.appendChild(e));e=mxUtils.button(mxResources.get("export"),function(){var Q=b.createLibraryDataFromImages(L),O=d.value;/(\.xml)$/i.test(O)|| -(O+=".xml");b.isLocalFileSave()?b.saveLocalFile(Q,O,"text/xml",null,null,null!=q?q:!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(O)+"&format=xml&xml="+encodeURIComponent(Q))).simulate(document,"_blank")});e.setAttribute("id","btnDownload");e.className="geBtn";c.appendChild(e);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var U=document.createElement("input");U.setAttribute("multiple","multiple");U.setAttribute("type","file");mxEvent.addListener(U,"change",function(Q){K= -!1;b.importFiles(U.files,0,0,b.maxImageSize,function(O,p,z,A,C,M,S,l,x){null!=U.files&&(J(Q)(O,p,z,A,C,M,S,l,x),U.type="",U.type="file",U.value="")});g.scrollTop=g.scrollHeight});U.style.display="none";document.body.appendChild(U);b.libDlgFileInputElt=U}e=mxUtils.button(mxResources.get("import"),function(){null!=B&&(B(),B=null);b.libDlgFileInputElt.click()});e.setAttribute("id","btnAddImage");e.className="geBtn";c.appendChild(e)}e=mxUtils.button(mxResources.get("addImages"),function(){null!=B&&(B(), -B=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(Q,O,p){K=!1;if(null!=Q){if("data:image/"==Q.substring(0,11)){var z=Q.indexOf(",");0mxUtils.indexOf(u,g)&&u.push(g);k()})}:function(){var g=document.createElement("div"),m=document.createElement("span");m.style.marginTop="6px";mxUtils.write(m,mxResources.get("builtinPlugins")+ +": ");g.appendChild(m);var t=document.createElement("select");t.style.width="150px";for(m=0;mmxUtils.indexOf(u,K)&&u.push(K)}k()}},mxResources.get("enterValue")+" ("+mxResources.get("url")+")");b.showDialog(y.container,300,80,!0,!0);y.init()});m.className="geBtn";ALLOW_CUSTOM_PLUGINS||(m.style.display="none");g=new CustomDialog(b,g,mxUtils.bind(this,function(){var y=App.pluginRegistry[t.value];0>mxUtils.indexOf(u,y)&&(u.push(y),k())}),null,null,null,m);b.showDialog(g.container,360,100,!0,!0)});H.className="geBtn";var D=mxUtils.button(mxResources.get("cancel"), +function(){b.hideDialog()});D.className="geBtn";var L=mxUtils.button(c?mxResources.get("close"):mxResources.get("apply"),function(){E?(mxSettings.setPlugins(u),mxSettings.save(),b.hideDialog(),b.alert(mxResources.get("restartForChangeRequired"))):b.hideDialog()});L.className="geBtn gePrimaryBtn";var F=document.createElement("div");F.style.marginTop="14px";F.style.textAlign="right";var d=mxUtils.button(mxResources.get("help"),function(){b.openLink("https://www.drawio.com/doc/faq/plugins")});d.className= +"geBtn";b.isOffline()&&!mxClient.IS_CHROMEAPP&&(d.style.display="none");F.appendChild(d);b.editor.cancelFirst?(c||F.appendChild(D),F.appendChild(H),F.appendChild(L)):(F.appendChild(H),F.appendChild(L),c||F.appendChild(D));n.appendChild(F);this.container=n},CropImageDialog=function(b,e,f,c){function k(){var J=t.checked,U=v.checked,Q=d.geometry,P=E.width,p=E.height,z=(300-P)/2,A=(300-p)/2;Q.xz+P&&(Q.width=z+P-Q.x,Q.x=Math.min(Q.x,z+P));Q.yA+p&&(Q.height=A+p-Q.y,Q.y=Math.min(Q.y,A+p));var C=(Q.x-z)/P*100;P=100-(Q.x+Q.width-z)/P*100;z=(Q.y-A)/p*100;Q=100-(Q.y+Q.height-A)/p*100;return"inset("+mxUtils.format(z)+"% "+mxUtils.format(P)+"% "+mxUtils.format(Q)+"% "+mxUtils.format(C)+"%"+(J?" round "+F+"%":U?" round 50%":"")+")"}function n(J){null!=D&&(!0!==J&&(D.model.setGeometry(d,L.clone()),F=5,B.value=F),D.model.setStyle(d,g+k()),D.selectAll(),y.style.visibility=t.checked?"visible":"hidden")}var q=document.createElement("div"), +u=document.createElement("div");u.style.height="300px";u.style.width="300px";u.style.display="inline-flex";u.style.justifyContent="center";u.style.alignItems="center";u.style.position="absolute";var E=document.createElement("img");E.onload=function(){function J(){D.model.setStyle(d,g+k())}D=new Graph(H);D.autoExtend=!1;D.autoScroll=!1;D.setGridEnabled(!1);D.setEnabled(!0);D.setPanning(!1);D.setConnectable(!1);D.getRubberband().setEnabled(!1);D.graphHandler.allowLivePreview=!1;var U=D.createVertexHandler; +D.createVertexHandler=function(){var R=U.apply(this,arguments);R.livePreview=!1;return R};if(null!=f)try{if("inset"==f.substring(0,5)){var Q=d.geometry,P=E.width,p=E.height,z=(300-P)/2,A=(300-p)/2,C=f.match(/\(([^)]+)\)/)[1].split(/[ ,]+/),M=parseFloat(C[0]),S=parseFloat(C[1]),l=parseFloat(C[2]),x=parseFloat(C[3]);isFinite(M)&&isFinite(S)&&isFinite(l)&&isFinite(x)?(Q.x=x/100*P+z,Q.y=M/100*p+A,Q.width=(100-S)/100*P+z-Q.x,Q.height=(100-l)/100*p+A-Q.y,"round"==C[4]?"50%"==C[5]?v.setAttribute("checked", +"checked"):(F=parseInt(C[5]),B.value=F,t.setAttribute("checked","checked"),y.style.visibility="visible"):m.setAttribute("checked","checked")):f=null}else f=null}catch(R){}d.style=g+(f?f:k());d.vertex=!0;D.addCell(d,null,null,null,null);D.selectAll();D.addListener(mxEvent.CELLS_MOVED,J);D.addListener(mxEvent.CELLS_RESIZED,J);var G=D.graphHandler.mouseUp,N=D.graphHandler.mouseDown;D.graphHandler.mouseUp=function(){G.apply(this,arguments);H.style.backgroundColor="#fff9"};D.graphHandler.mouseDown=function(){N.apply(this, +arguments);H.style.backgroundColor=""};D.dblClick=function(){};var O=D.getSelectionModel().changeSelection;D.getSelectionModel().changeSelection=function(){O.call(this,[d],[d])}};E.onerror=function(){E.onload=null;E.src=Editor.errorImage};E.setAttribute("src",e);E.style.maxWidth="300px";E.style.maxHeight="300px";u.appendChild(E);q.appendChild(u);var H=document.createElement("div");H.style.width="300px";H.style.height="300px";H.style.overflow="hidden";H.style.backgroundColor="#fff9";q.appendChild(H); +var D=null,L=new mxGeometry(100,100,100,100),F=5,d=new mxCell("",L.clone(),""),g="shape=image;fillColor=none;rotatable=0;cloneable=0;deletable=0;image="+e.replace(";base64","")+";clipPath=",m=document.createElement("input");m.setAttribute("type","radio");m.setAttribute("id","croppingRect");m.setAttribute("name","croppingShape");m.setAttribute("checked","checked");m.style.margin="5px";q.appendChild(m);e=document.createElement("label");e.setAttribute("for","croppingRect");mxUtils.write(e,mxResources.get("rectangle")); +q.appendChild(e);var t=document.createElement("input");t.setAttribute("type","radio");t.setAttribute("id","croppingRounded");t.setAttribute("name","croppingShape");t.style.margin="5px";q.appendChild(t);e=document.createElement("label");e.setAttribute("for","croppingRounded");mxUtils.write(e,mxResources.get("rounded"));q.appendChild(e);var v=document.createElement("input");v.setAttribute("type","radio");v.setAttribute("id","croppingEllipse");v.setAttribute("name","croppingShape");v.style.margin="5px"; +q.appendChild(v);e=document.createElement("label");e.setAttribute("for","croppingEllipse");mxUtils.write(e,mxResources.get("ellipse"));q.appendChild(e);mxEvent.addListener(m,"change",n);mxEvent.addListener(t,"change",n);mxEvent.addListener(v,"change",n);var y=document.createElement("div");y.style.textAlign="center";y.style.visibility="hidden";var B=document.createElement("input");B.setAttribute("type","range");B.setAttribute("min","1");B.setAttribute("max","49");B.setAttribute("value",F);B.setAttribute("title", +mxResources.get("arcSize"));y.appendChild(B);q.appendChild(y);mxEvent.addListener(B,"change",function(){F=this.value;n(!0)});e=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});e.className="geBtn";u=mxUtils.button(mxResources.get("apply"),function(){c(k(),d.geometry.width,d.geometry.height);b.hideDialog()});u.className="geBtn gePrimaryBtn";var I=mxUtils.button(mxResources.get("reset"),function(){c(null,E.width,E.height);b.hideDialog()});I.className="geBtn";var K=document.createElement("div"); +K.style.marginTop="10px";K.style.textAlign="right";b.editor.cancelFirst?(K.appendChild(e),K.appendChild(I),K.appendChild(u)):(K.appendChild(I),K.appendChild(u),K.appendChild(e));q.appendChild(K);this.container=q},EditGeometryDialog=function(b,e){var f=b.editor.graph,c=1==e.length?f.getCellGeometry(e[0]):null,k=document.createElement("div"),n=document.createElement("table"),q=document.createElement("tbody"),u=document.createElement("tr"),E=document.createElement("td"),H=document.createElement("td"); +n.style.paddingLeft="6px";mxUtils.write(E,mxResources.get("relative")+":");var D=document.createElement("input");D.setAttribute("type","checkbox");null!=c&&c.relative&&(D.setAttribute("checked","checked"),D.defaultChecked=!0);this.init=function(){D.focus()};H.appendChild(D);u.appendChild(E);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("left")+":");var L=document.createElement("input"); +L.setAttribute("type","text");L.style.width="100px";L.value=null!=c?c.x:"";H.appendChild(L);u.appendChild(E);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("top")+":");var F=document.createElement("input");F.setAttribute("type","text");F.style.width="100px";F.value=null!=c?c.y:"";H.appendChild(F);u.appendChild(E);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");E=document.createElement("td"); +H=document.createElement("td");mxUtils.write(E,mxResources.get("dx")+":");var d=document.createElement("input");d.setAttribute("type","text");d.style.width="100px";d.value=null!=c&&null!=c.offset?c.offset.x:"";H.appendChild(d);u.appendChild(E);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("dy")+":");var g=document.createElement("input");g.setAttribute("type","text");g.style.width="100px"; +g.value=null!=c&&null!=c.offset?c.offset.y:"";H.appendChild(g);u.appendChild(E);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("width")+":");var m=document.createElement("input");m.setAttribute("type","text");m.style.width="100px";m.value=null!=c?c.width:"";H.appendChild(m);u.appendChild(E);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");E=document.createElement("td");H= +document.createElement("td");mxUtils.write(E,mxResources.get("height")+":");var t=document.createElement("input");t.setAttribute("type","text");t.style.width="100px";t.value=null!=c?c.height:"";H.appendChild(t);u.appendChild(E);u.appendChild(H);q.appendChild(u);u=document.createElement("tr");E=document.createElement("td");H=document.createElement("td");mxUtils.write(E,mxResources.get("rotation")+":");var v=document.createElement("input");v.setAttribute("type","text");v.style.width="100px";v.value= +1==e.length?mxUtils.getValue(f.getCellStyle(e[0]),mxConstants.STYLE_ROTATION,0):"";H.appendChild(v);u.appendChild(E);u.appendChild(H);q.appendChild(u);n.appendChild(q);k.appendChild(n);c=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});c.className="geBtn";var y=mxUtils.button(mxResources.get("apply"),function(){b.hideDialog();f.getModel().beginUpdate();try{for(var B=0;Bb.maxImageSize||C>b.maxImageSize){var O=Math.min(1,Math.min(b.maxImageSize/Math.max(1,A)),b.maxImageSize/Math.max(1,C));A*=O;C*=O}G>N?(N=Math.round(100*N/G),G=100):(G=Math.round(100*G/N),N=100);var R=document.createElement("div");R.setAttribute("draggable","true");R.style.display="inline-block";R.style.position="relative";R.style.padding="0 12px";R.style.cursor="move";mxUtils.setPrefixedStyle(R.style,"transition", +"transform .1s ease-in-out");if(null!=Q){var T=document.createElement("img");T.setAttribute("src",I.convert(Q));T.style.width=G+"px";T.style.height=N+"px";T.style.margin="10px";T.style.paddingBottom=Math.floor((100-N)/2)+"px";T.style.paddingLeft=Math.floor((100-G)/2)+"px";R.appendChild(T)}else if(null!=M){var V=b.stringToCells("<"==M.xml.charAt(0)?M.xml:Graph.decompress(M.xml));0v?y-1:y,0,L.splice(v,1)[0]),g.insertBefore(g.children[v],g.children[y])):(L.push(L.splice(v,1)[0]),g.appendChild(g.children[v]));else if(0=G.status&&(E(G.responseText,p,z,A,C,M,S,"fixed",mxEvent.isAltDown(Q)?null:S.substring(0,S.lastIndexOf(".")).replace(/_/g," ")),g.scrollTop=g.scrollHeight))})):(b.spinner.stop(),b.showError(mxResources.get("error"),mxResources.get("notInOffline"))):(E(P,p,z,A,C,M,S,"fixed",mxEvent.isAltDown(Q)?null:S.substring(0,S.lastIndexOf(".")).replace(/_/g," ")), +g.scrollTop=g.scrollHeight)}};mxEvent.addListener(g,"dragover",H);mxEvent.addListener(g,"drop",D);mxEvent.addListener(m,"dragover",H);mxEvent.addListener(m,"drop",D);f.appendChild(g);c=document.createElement("div");c.style.textAlign="right";c.style.marginTop="20px";F=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog(!0)});F.setAttribute("id","btnCancel");F.className="geBtn";b.editor.cancelFirst&&c.appendChild(F);"draw.io"!=b.getServiceName()||null==k||k.constructor!=DriveLibrary&&k.constructor!= +GitHubLibrary||(e=mxUtils.button(mxResources.get("link"),function(){b.getPublicUrl(k,function(Q){if(null!=Q){var P=b.getSearch("create title mode url drive splash state clibs ui".split(" "));P+=(0==P.length?"?":"&")+"splash=0&clibs=U"+encodeURIComponent(Q);Q=new EmbedDialog(b,window.location.protocol+"//"+window.location.host+"/"+P,null,null,null,null,"Check out the library I made using @drawio");b.showDialog(Q.container,450,240,!0);Q.init()}else k.constructor==DriveLibrary?b.showError(mxResources.get("error"), +mxResources.get("diagramIsNotPublic"),mxResources.get("share"),mxUtils.bind(this,function(){b.drive.showPermissions(k.getId(),k)}),null,mxResources.get("ok"),mxUtils.bind(this,function(){})):b.handleError({message:mxResources.get("diagramIsNotPublic")})})}),e.className="geBtn",c.appendChild(e));e=mxUtils.button(mxResources.get("export"),function(){var Q=b.createLibraryDataFromImages(L),P=d.value;/(\.xml)$/i.test(P)||(P+=".xml");b.isLocalFileSave()?b.saveLocalFile(Q,P,"text/xml",null,null,null!=q? +q:!0,null,"xml"):(new mxXmlRequest(SAVE_URL,"filename="+encodeURIComponent(P)+"&format=xml&xml="+encodeURIComponent(Q))).simulate(document,"_blank")});e.setAttribute("id","btnDownload");e.className="geBtn";c.appendChild(e);if(Graph.fileSupport){if(null==b.libDlgFileInputElt){var U=document.createElement("input");U.setAttribute("multiple","multiple");U.setAttribute("type","file");mxEvent.addListener(U,"change",function(Q){K=!1;b.importFiles(U.files,0,0,b.maxImageSize,function(P,p,z,A,C,M,S,l,x){null!= +U.files&&(J(Q)(P,p,z,A,C,M,S,l,x),U.type="",U.type="file",U.value="")});g.scrollTop=g.scrollHeight});U.style.display="none";document.body.appendChild(U);b.libDlgFileInputElt=U}e=mxUtils.button(mxResources.get("import"),function(){null!=B&&(B(),B=null);b.libDlgFileInputElt.click()});e.setAttribute("id","btnAddImage");e.className="geBtn";c.appendChild(e)}e=mxUtils.button(mxResources.get("addImages"),function(){null!=B&&(B(),B=null);b.showImageDialog(mxResources.get("addImageUrl"),"",function(Q,P,p){K= +!1;if(null!=Q){if("data:image/"==Q.substring(0,11)){var z=Q.indexOf(",");0
'+mxUtils.htmlEntities(e)+"
";this.layersContainer.appendChild(k);this.createViewer(k.childNodes[0],c,b.id);c=mxUtils.bind(this,function(){0<=k.className.indexOf("geAspectDlgListItemSelected")? (k.className="geAspectDlgListItem",delete this.selectedLayers[b.id],mxUtils.isEmptyObject(this.selectedLayers)&&this.okBtn.setAttribute("disabled","disabled")):(k.className+=" geAspectDlgListItemSelected",this.selectedLayers[b.id]=!0,this.okBtn.removeAttribute("disabled"))});mxEvent.addListener(k,"click",c);-1!=this.aspect.layerIds.indexOf(b.id)&&c()}; -var FilePropertiesDialog=function(b,e){function f(I){var K=H;H=function(J,U){try{I(function(){K(J,U)},U)}catch(Q){U(Q)}}}var c=document.createElement("table"),k=document.createElement("tbody");c.style.width="100%";c.style.marginTop="8px";c.style.tableLayout="fixed";var n=b.getCurrentFile(),q=null!=n&&null!=n.getTitle()?n.getTitle():b.defaultFilename,u=/(\.png)$/i.test(q),G=/(\.svg)$/i.test(q),H=function(I,K){I()},E=null!=n?n.isLocked():!1;var L=document.createElement("tr");var F=document.createElement("td"); -F.style.whiteSpace="nowrap";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.style.fontSize="10pt";mxUtils.write(F,mxResources.get("locked")+":");L.appendChild(F);var d=document.createElement("input");d.setAttribute("type","checkbox");E&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);F=document.createElement("td");F.style.whiteSpace="nowrap";F.appendChild(d);L.appendChild(F);k.appendChild(L);this.init=function(){d.focus()};f(function(I,K){null!=b.fileNode&&E!=d.checked?window.setTimeout(function(){null!= -n&&n.setLocked(d.checked);I()},0):I()});if(u||G){q=1;u=0;L=b.fileNode;null!=L&&(L.hasAttribute("scale")&&(q=parseFloat(L.getAttribute("scale"))),L.hasAttribute("border")&&(u=parseInt(L.getAttribute("border"))));L=document.createElement("tr");F=document.createElement("td");F.style.whiteSpace="nowrap";F.style.fontSize="10pt";mxUtils.write(F,mxResources.get("zoom")+":");L.appendChild(F);var g=document.createElement("input");g.setAttribute("value",100*q+"%");g.style.marginLeft="4px";g.style.width="100%"; +var FilePropertiesDialog=function(b,e){function f(I){var K=H;H=function(J,U){try{I(function(){K(J,U)},U)}catch(Q){U(Q)}}}var c=document.createElement("table"),k=document.createElement("tbody");c.style.width="100%";c.style.marginTop="8px";c.style.tableLayout="fixed";var n=b.getCurrentFile(),q=null!=n&&null!=n.getTitle()?n.getTitle():b.defaultFilename,u=/(\.png)$/i.test(q),E=/(\.svg)$/i.test(q),H=function(I,K){I()},D=null!=n?n.isLocked():!1;var L=document.createElement("tr");var F=document.createElement("td"); +F.style.whiteSpace="nowrap";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.style.fontSize="10pt";mxUtils.write(F,mxResources.get("locked")+":");L.appendChild(F);var d=document.createElement("input");d.setAttribute("type","checkbox");D&&(d.setAttribute("checked","checked"),d.defaultChecked=!0);F=document.createElement("td");F.style.whiteSpace="nowrap";F.appendChild(d);L.appendChild(F);k.appendChild(L);this.init=function(){d.focus()};f(function(I,K){null!=b.fileNode&&D!=d.checked?window.setTimeout(function(){null!= +n&&n.setLocked(d.checked);I()},0):I()});if(u||E){q=1;u=0;L=b.fileNode;null!=L&&(L.hasAttribute("scale")&&(q=parseFloat(L.getAttribute("scale"))),L.hasAttribute("border")&&(u=parseInt(L.getAttribute("border"))));L=document.createElement("tr");F=document.createElement("td");F.style.whiteSpace="nowrap";F.style.fontSize="10pt";mxUtils.write(F,mxResources.get("zoom")+":");L.appendChild(F);var g=document.createElement("input");g.setAttribute("value",100*q+"%");g.style.marginLeft="4px";g.style.width="100%"; F=document.createElement("td");F.style.whiteSpace="nowrap";F.appendChild(g);L.appendChild(F);k.appendChild(L);L=document.createElement("tr");F=document.createElement("td");F.style.whiteSpace="nowrap";F.style.fontSize="10pt";mxUtils.write(F,mxResources.get("borderWidth")+":");L.appendChild(F);var m=document.createElement("input");m.setAttribute("value",u);m.style.marginLeft="4px";m.style.width="100%";F=document.createElement("td");F.style.whiteSpace="nowrap";F.appendChild(m);L.appendChild(F);k.appendChild(L); this.init=this.init||function(){g.focus();mxClient.IS_GC||mxClient.IS_FF||5<=document.documentMode?g.select():document.execCommand("selectAll",!1,null)};f(function(I,K){null!=b.fileNode&&(b.fileNode.setAttribute("scale",Math.max(0,parseInt(g.value)/100)),b.fileNode.setAttribute("border",Math.max(0,parseInt(m.value))),null!=n&&n.fileChanged());I()})}else if(!/(\.html)$/i.test(q)&&!/(\.svg)$/i.test(q)){var t=null!=n?n.isCompressed():Editor.defaultCompressed;L=document.createElement("tr");F=document.createElement("td"); F.style.whiteSpace="nowrap";F.style.overflow="hidden";F.style.textOverflow="ellipsis";F.style.fontSize="10pt";mxUtils.write(F,mxResources.get("compressed")+":");L.appendChild(F);var v=document.createElement("input");v.setAttribute("type","checkbox");t&&(v.setAttribute("checked","checked"),v.defaultChecked=!0);F=document.createElement("td");F.style.whiteSpace="nowrap";F.appendChild(v);L.appendChild(F);k.appendChild(L);this.init=this.init||function(){v.focus()};f(function(I,K){null!=b.fileNode&&t!= @@ -12639,20 +12640,20 @@ q.style.textOverflow="ellipsis",q.style.display="block",q.style.margin="2px 0px "10pt",mxUtils.write(F,mxResources.get("pathFilename")+":"),L.appendChild(F),q=document.createElement("input"),q.setAttribute("title",n.fileObject.path),q.setAttribute("value",n.fileObject.path),q.setAttribute("disabled","disabled"),q.style.marginLeft="4px",q.style.width="100%",F=document.createElement("td"),F.appendChild(q),L.appendChild(F),k.appendChild(L));this.init=null!=this.init?this.init:function(){};q=mxUtils.button(mxResources.get("apply"),function(){b.spinner.spin(document.body,mxResources.get("updatingDocument"))&& H(function(){b.spinner.stop();b.hideDialog()},function(I){b.spinner.stop();b.handleError(I,mxResources.get("error"))})});q.className="geBtn gePrimaryBtn";L=document.createElement("tr");F=document.createElement("td");F.colSpan=2;F.style.paddingTop="20px";F.style.whiteSpace="nowrap";F.setAttribute("align","right");u=mxUtils.button(mxResources.get("cancel"),function(){b.hideDialog()});u.className="geBtn";b.editor.cancelFirst&&F.appendChild(u);F.appendChild(q);b.editor.cancelFirst||F.appendChild(u);L.appendChild(F); k.appendChild(L);c.appendChild(k);this.container=c},ConnectionPointsDialog=function(b,e){function f(){null!=k&&k.destroy()}var c=document.createElement("div");c.style.userSelect="none";var k=null;this.init=function(){function n(A,C,M){A=new mxCell("",new mxGeometry(A,C,6,6),"shape=mxgraph.basic.x;fillColor=#29b6f2;strokeColor=#29b6f2;points=[];rotatable=0;resizable=0;connectable=0;editable=0;");A.vertex=!0;A.cp=!0;A.constObj=M;return L.addCell(A)}function q(A){A=L.getSelectionCells();L.deleteCells(A)} -function u(){var A=parseInt(Q.value)||0;A=0>A?0:100C?0:100l?(C=l*S.width,l=0):1A?(M=A*S.height,A=0):1A?0:100C?0:100l?(C=l*S.width,l=0):1A?(M=A*S.height,A=0):1A?1:100');Editor.configurationKey=".configuration";Editor.settingsKey=".drawio-config";Editor.defaultCustomLibraries=[];Editor.enableCustomLibraries=!0;Editor.enableUncompressedLibraries=!1;Editor.enableCustomProperties=!0; Editor.enableSimpleTheme=!0;Editor.enableHashObjects=!mxClient.IS_CHROMEAPP&&!EditorUi.isElectronApp&&"1"!=urlParams.embed&&window.top==window.self;Editor.defaultIncludeDiagram=!0;Editor.enableServiceWorker="0"!=urlParams.pwa&&"serviceWorker"in navigator&&("1"==urlParams.offline||/.*\.diagrams\.net$/.test(window.location.hostname)||/.*\.draw\.io$/.test(window.location.hostname));try{Editor.enableServiceWorker&&navigator.serviceWorker}catch(l){Editor.enableServiceWorker=!1}Editor.enableWebFonts="1"!= urlParams["safe-style-src"]&&!window.mxIsElectron;Editor.enableShadowOption=!mxClient.IS_SF;Editor.enableExportUrl=!0;Editor.enableRealtime=!0;Editor.enableRealtimeCache=!0;Editor.p2pSyncNotify=!1;Editor.compressXml=!0;Editor.defaultCompressed=!1;Editor.oneDriveInlinePicker=null!=window.urlParams&&"0"==window.urlParams.inlinePicker?!1:!0;Editor.globalVars=null;Editor.defaultBorder=5;Editor.addSvgMetadata=!1;Editor.enableAnimations=!0;Editor.enableChatGpt=/test\.draw\.io$/.test(window.location.hostname)|| -/preprod\.diagrams\.net$/.test(window.location.hostname)||/app\.diagrams\.net$/.test(window.location.hostname);Editor.gptApiKey=null!=urlParams["gpt-api-key"]?decodeURIComponent(urlParams["gpt-api-key"]):null;Editor.gptModel=null!=urlParams["gpt-model"]?decodeURIComponent(urlParams["gpt-model"]):"gpt-3.5-turbo";Editor.gptUrl=null!=urlParams["gpt-url"]?decodeURIComponent(urlParams["gpt-url"]):"https://api.openai.com/v1/chat/completions";Editor.replaceSvgDataUris=!0;Editor.foreignObjectImages=!0;Editor.svgRasterScale= -4;Editor.htmlRasterScale=4;Editor.config=null;Editor.configVersion=null;Editor.commonProperties=[{name:"enumerate",dispName:"Enumerate",type:"bool",defVal:!1,onChange:function(l){l.refresh()}},{name:"enumerateValue",dispName:"Enumerate Value",type:"string",defVal:"",isVisible:function(l,x){return"1"==mxUtils.getValue(l.style,"enumerate","0")}},{name:"comic",dispName:"Comic",type:"bool",defVal:!1,isVisible:function(l,x){return"1"!=mxUtils.getValue(l.style,"sketch","0")}},{name:"jiggle",dispName:"Jiggle", -type:"float",min:0,defVal:1,isVisible:function(l,x){return"1"==mxUtils.getValue(l.style,"comic","0")||"1"==mxUtils.getValue(l.style,"sketch","1"==urlParams.rough?"1":"0")}},{name:"fillWeight",dispName:"Fill Weight",type:"int",defVal:-1,isVisible:function(l,x){return"1"==mxUtils.getValue(l.style,"sketch","1"==urlParams.rough?"1":"0")&&0%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Style to be used for objects not in the CSV. If this is - then such objects are ignored,\n## else they are created using this as their style, eg. whiteSpace=wrap;html=1;\n#\n# unknownStyle: -\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## An optional data object can be specified to define the metadata for the connector.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto, width or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Collapsed state for vertices. Possible values are true or false. Default is false.\n#\n# collapsed: false\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle, orgchart or a JSON string as used in\n## Layout, Apply. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nTessa Miller,CFO,emi,Office 1,,me@example.com,default,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,default,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,default,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,default,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n'; -Editor.createRoughCanvas=function(l){var x=rough.canvas({getContext:function(){return l}});x.draw=function(D){var N=D.sets||[];D=D.options||this.getDefaultOptions();for(var P=0;PX&&(X=P.strokeWidth/2);l.setStrokeAlpha(l.state.fillAlpha);l.setStrokeColor(P.fill||"");l.setStrokeWidth(X);l.setDashed(!1);this._drawToContext(D,N,P);l.setDashed(W);l.setStrokeWidth(T);l.setStrokeColor(R);l.setStrokeAlpha(V)};x._drawToContext=function(D,N,P){D.begin();for(var R=0;R%position%
Email\n#\n## Node style (placeholders are replaced once).\n## Default is the current style for nodes.\n#\n# style: label;image=%image%;whiteSpace=wrap;html=1;rounded=1;fillColor=%fill%;strokeColor=%stroke%;\n#\n## Parent style for nodes with child nodes (placeholders are replaced once).\n#\n# parentstyle: swimlane;whiteSpace=wrap;html=1;childLayout=stackLayout;horizontal=1;horizontalStack=0;resizeParent=1;resizeLast=0;collapsible=1;\n#\n## Style to be used for objects not in the CSV. If this is - then such objects are ignored,\n## else they are created using this as their style, eg. whiteSpace=wrap;html=1;\n#\n# unknownStyle: -\n#\n## Optional column name that contains a reference to a named style in styles.\n## Default is the current style for nodes.\n#\n# stylename: -\n#\n## JSON for named styles of the form {"name": "style", "name": "style"} where style is a cell style with\n## placeholders that are replaced once.\n#\n# styles: -\n#\n## JSON for variables in styles of the form {"name": "value", "name": "value"} where name is a string\n## that will replace a placeholder in a style.\n#\n# vars: -\n#\n## Optional column name that contains a reference to a named label in labels.\n## Default is the current label.\n#\n# labelname: -\n#\n## JSON for named labels of the form {"name": "label", "name": "label"} where label is a cell label with\n## placeholders.\n#\n# labels: -\n#\n## Uses the given column name as the identity for cells (updates existing cells).\n## Default is no identity (empty value or -).\n#\n# identity: -\n#\n## Uses the given column name as the parent reference for cells. Default is no parent (empty or -).\n## The identity above is used for resolving the reference so it must be specified.\n#\n# parent: -\n#\n## Adds a prefix to the identity of cells to make sure they do not collide with existing cells (whose\n## IDs are numbers from 0..n, sometimes with a GUID prefix in the context of realtime collaboration).\n## Default is csvimport-.\n#\n# namespace: csvimport-\n#\n## Connections between rows ("from": source colum, "to": target column).\n## Label, style and invert are optional. Defaults are \'\', current style and false.\n## If placeholders are used in the style, they are replaced with data from the source.\n## An optional placeholders can be set to target to use data from the target instead.\n## In addition to label, an optional fromlabel and tolabel can be used to name the column\n## that contains the text for the label in the edges source or target (invert ignored).\n## In addition to those, an optional source and targetlabel can be used to specify a label\n## that contains placeholders referencing the respective columns in the source or target row.\n## The label is created in the form fromlabel + sourcelabel + label + tolabel + targetlabel.\n## Additional labels can be added by using an optional labels array with entries of the\n## form {"label": string, "x": number, "y": number, "dx": number, "dy": number} where\n## x is from -1 to 1 along the edge, y is orthogonal, and dx/dy are offsets in pixels.\n## An optional placeholders with the string value "source" or "target" can be specified\n## to replace placeholders in the additional label with data from the source or target.\n## An optional data object can be specified to define the metadata for the connector.\n## The target column may contain a comma-separated list of values.\n## Multiple connect entries are allowed.\n#\n# connect: {"from": "manager", "to": "name", "invert": true, "label": "manages", \\\n# "style": "curved=1;endArrow=blockThin;endFill=1;fontSize=11;"}\n# connect: {"from": "refs", "to": "id", "style": "curved=1;fontSize=11;"}\n#\n## Node x-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# left: \n#\n## Node y-coordinate. Possible value is a column name. Default is empty. Layouts will\n## override this value.\n#\n# top: \n#\n## Node width. Possible value is a number (in px), auto or an @ sign followed by a column\n## name that contains the value for the width. Default is auto.\n#\n# width: auto\n#\n## Node height. Possible value is a number (in px), auto, width or an @ sign followed by a column\n## name that contains the value for the height. Default is auto.\n#\n# height: auto\n#\n## Collapsed state for vertices. Possible values are true or false. Default is false.\n#\n# collapsed: false\n#\n## Padding for autosize. Default is 0.\n#\n# padding: -12\n#\n## Comma-separated list of ignored columns for metadata. (These can be\n## used for connections and styles but will not be added as metadata.)\n#\n# ignore: id,image,fill,stroke,refs,manager\n#\n## Column to be renamed to link attribute (used as link).\n#\n# link: url\n#\n## Spacing between nodes. Default is 40.\n#\n# nodespacing: 40\n#\n## Spacing between levels of hierarchical layouts. Default is 100.\n#\n# levelspacing: 100\n#\n## Spacing between parallel edges. Default is 40. Use 0 to disable.\n#\n# edgespacing: 40\n#\n## Name or JSON of layout. Possible values are auto, none, verticaltree, horizontaltree,\n## verticalflow, horizontalflow, organic, circle, orgchart or a JSON string as used in\n## Layout, Apply. Default is auto.\n#\n# layout: auto\n#\n## ---- CSV below this line. First line are column names. ----\nname,position,id,location,manager,email,fill,stroke,refs,url,image\nTessa Miller,CFO,emi,Office 1,,me@example.com,default,#6c8ebf,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-3-128.png\nEdward Morrison,Brand Manager,emo,Office 2,Tessa Miller,me@example.com,default,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-10-3-128.png\nAlison Donovan,System Admin,rdo,Office 3,Tessa Miller,me@example.com,default,#82b366,"emo,tva",https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-2-128.png\nEvan Valet,HR Director,tva,Office 4,Tessa Miller,me@example.com,default,#82b366,,https://www.draw.io,https://cdn3.iconfinder.com/data/icons/user-avatars-1/512/users-9-2-128.png\n'; +Editor.createRoughCanvas=function(l){var x=rough.canvas({getContext:function(){return l}});x.draw=function(G){var N=G.sets||[];G=G.options||this.getDefaultOptions();for(var O=0;OX&&(X=O.strokeWidth/2);l.setStrokeAlpha(l.state.fillAlpha);l.setStrokeColor(O.fill||"");l.setStrokeWidth(X);l.setDashed(!1);this._drawToContext(G,N,O);l.setDashed(W);l.setStrokeWidth(T);l.setStrokeColor(R);l.setStrokeAlpha(V)};x._drawToContext=function(G,N,O){G.begin();for(var R=0;R",P));if(null!=D){x=D;D=[];for(N=0;NP){x=l.substring(P,W);break}}10==V&&("endobj"==D?T=null:"obj"==D.substring(D.length-3,D.length)||"xref"==D||"trailer"==D?(T=[],R[D.split(" ")[0]]=T):null!=T&&T.push(D),D="")}}null==x&&null!=R&&(x=Editor.extractGraphModelFromXref(R));null!=x&&(x=decodeURIComponent(x.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return x};Editor.extractGraphModelFromXref=function(l){var x=l.trailer,D=null;null!= -x&&(x=/.* \/Info (\d+) (\d+) R/g.exec(x.join("\n")),null!=x&&0",O));if(null!=G){x=G;G=[];for(N=0;NO){x=l.substring(O,W);break}}10==V&&("endobj"==G?T=null:"obj"==G.substring(G.length-3,G.length)||"xref"==G||"trailer"==G?(T=[],R[G.split(" ")[0]]=T):null!=T&&T.push(G),G="")}}null==x&&null!=R&&(x=Editor.extractGraphModelFromXref(R));null!=x&&(x=decodeURIComponent(x.replace(/\\\(/g,"(").replace(/\\\)/g,")")));return x};Editor.extractGraphModelFromXref=function(l){var x=l.trailer,G=null;null!= +x&&(x=/.* \/Info (\d+) (\d+) R/g.exec(x.join("\n")),null!=x&&0 1 expected for zoomFactor"));null!=l.defaultGridSize&&(x=parseInt(l.defaultGridSize),!isNaN(x)&&0 0 expected for defaultGridSize"));null!=l.gridSteps&&(x=parseInt(l.gridSteps),!isNaN(x)&&0 0 expected for gridSteps"));null!=l.pageFormat&&(x=parseInt(l.pageFormat.width), -D=parseInt(l.pageFormat.height),!isNaN(x)&&0 0 expected for sidebarTitleSize"));null!=l.fontCss&&("string"=== -typeof l.fontCss?Editor.configureFontCss(l.fontCss):EditorUi.debug("Configuration Error: String expected for fontCss"));null!=l.autosaveDelay&&(x=parseInt(l.autosaveDelay),!isNaN(x)&&0 0 expected for autosaveDelay"));null!=l.maxImageBytes&&(EditorUi.prototype.maxImageBytes=l.maxImageBytes);null!=l.maxImageSize&&(EditorUi.prototype.maxImageSize=l.maxImageSize);null!=l.shareCursorPosition&&(EditorUi.prototype.shareCursorPosition= -l.shareCursorPosition);null!=l.showRemoteCursors&&(EditorUi.prototype.showRemoteCursors=l.showRemoteCursors);null!=l.restrictExport&&(DrawioFile.RESTRICT_EXPORT=l.restrictExport);null!=l.replaceSvgDataUris&&(Editor.replaceSvgDataUris=l.replaceSvgDataUris);null!=l.foreignObjectImages&&(Editor.foreignObjectImages=l.foreignObjectImages);null!=l.shadowColor&&(mxConstants.SHADOW_COLOR=l.shadowColor);null!=l.shadowOpacity&&(mxConstants.SHADOW_OPACITY=l.shadowOpacity);null!=l.shadowOffsetX&&(mxConstants.SHADOW_OFFSET_X= -l.shadowOffsetX);null!=l.shadowOffsetY&&(mxConstants.SHADOW_OFFSET_Y=l.shadowOffsetY);null!=l.shadowBlur&&(mxConstants.SHADOW_BLUR=l.shadowBlur);null!=l.enableAnimations&&(Editor.enableAnimations=l.enableAnimations);null!=l.enableChatGpt&&(Editor.enableChatGpt=l.enableChatGpt);null!=l.gptApiKey&&(Editor.gptApiKey=l.gptApiKey);null!=l.gptModel&&(Editor.gptModel=l.gptModel);null!=l.gptUrl&&(Editor.gptUrl=l.gptUrl)}};Editor.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage|| -mxClient.IS_CHROMEAPP)};Editor.configureFontCss=function(l){if(null!=l){Editor.prototype.fontCss=l;var x=document.getElementsByTagName("script")[0];if(null!=x&&null!=x.parentNode){var D=document.createElement("style");D.setAttribute("type","text/css");D.appendChild(document.createTextNode(l));x.parentNode.insertBefore(D,x);l=l.split("url(");for(D=1;DX.getStatus()||299>2);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P& -3)<<4);x+="==";break}R=l.charCodeAt(D++);if(D==N){x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(P>>2);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P&3)<<4|(R&240)>>4);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((R&15)<<2);x+="=";break}T=l.charCodeAt(D++);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(P>>2);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((P& -3)<<4|(R&240)>>4);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((R&15)<<2|(T&192)>>6);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T&63)}return x};Editor.prototype.loadUrl=function(l,x,D,N,P,R,T,V){try{var W=!T&&(N||/(\.png)($|\?)/i.test(l)||/(\.jpe?g)($|\?)/i.test(l)||/(\.gif)($|\?)/i.test(l)||/(\.pdf)($|\?)/i.test(l));P=null!=P?P:!0;var X=mxUtils.bind(this,function(){mxUtils.get(l,mxUtils.bind(this,function(Y){if(200<=Y.getStatus()&& -299>=Y.getStatus()){if(null!=x){var Z=Y.getText();if(W){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){Y=mxUtilsBinaryToArray(Y.request.responseBody).toArray();Z=Array(Y.length);for(var aa=0;aaN.indexOf("mxPageSelector")&&0k;k++)for(var n=k,q=0;8>q;q++)n=1==(n&1)?3988292384^n>>>1:n>>>1,Editor.crcTable[k]=n;Editor.updateCRC=function(l,x,D,N){for(var P=0;P>>8;return l};Editor.crc32=function(l){for(var x=-1,D=0;D>>8^Editor.crcTable[(x^l.charCodeAt(D))&255];return(x^-1)>>>0};Editor.writeGraphModelToPng=function(l,x,D,N,P){function R(Y,Z){var aa=W;W+=Z;return Y.substring(aa,W)}function T(Y){Y=R(Y,4);return Y.charCodeAt(3)+(Y.charCodeAt(2)<<8)+(Y.charCodeAt(1)<<16)+(Y.charCodeAt(0)<<24)}function V(Y){return String.fromCharCode(Y>>24&255,Y>>16&255,Y>>8&255,Y&255)}l=l.substring(l.indexOf(",")+1);l=window.atob?atob(l):Base64.decode(l,!0);var W=0;if(R(l,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13, -10,26,10))null!=P&&P();else if(R(l,4),"IHDR"!=R(l,4))null!=P&&P();else{R(l,17);P=l.substring(0,W);do{var X=T(l);if("IDAT"==R(l,4)){P=l.substring(0,W-8);"pHYs"==x&&"dpi"==D?(D=Math.round(N/.0254),D=V(D)+V(D)+String.fromCharCode(1)):D=D+String.fromCharCode(0)+("zTXt"==x?String.fromCharCode(0):"")+N;N=4294967295;N=Editor.updateCRC(N,x,0,4);N=Editor.updateCRC(N,D,0,D.length);P+=V(D.length)+x+D+V(N^4294967295);P+=l.substring(W-8,l.length);break}P+=l.substring(W-8,W-4+X);R(l,X);R(l,4)}while(X);return"data:image/png;base64,"+ -(window.btoa?btoa(P):Base64.encode(P,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.drawio.com/doc/faq/save-file-formats";var u=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(l,x){u.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var G=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){G.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}"undefined"!== -typeof window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(l,x){var D=null;null!=l.editor.graph.getModel().getParent(x)?D=x.getId():null!=l.currentPage&&(D=l.currentPage.getId());return D});if(null!=window.StyleFormatPanel){var H=Format.prototype.init;Format.prototype.init=function(){H.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var E=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed|| -this.editorUi.editor.chromeless?E.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isMathOptionVisible=function(l){return"simple"==Editor.currentTheme||"sketch"==Editor.currentTheme||"min"==Editor.currentTheme};var L=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(l){l=L.apply(this,arguments);var x=this.editorUi,D=x.editor.graph;if(D.isEnabled()){var N=x.getCurrentFile();null!=N&&N.isAutosaveOptional()&&l.appendChild(this.createOption(mxResources.get("autosave"), -function(){return x.editor.autosave},function(T){x.editor.setAutosave(T);x.editor.autosave&&N.isModified()&&N.fileChanged()},{install:function(T){this.listener=function(){T(x.editor.autosave)};x.editor.addListener("autosaveChanged",this.listener)},destroy:function(){x.editor.removeListener(this.listener)}}))}if(this.isMathOptionVisible()&&D.isEnabled()&&"undefined"!==typeof MathJax){var P=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return D.mathEnabled},function(T){x.actions.get("mathematicalTypesetting").funct()}, -{install:function(T){this.listener=function(){T(D.mathEnabled)};x.addListener("mathEnabledChanged",this.listener)},destroy:function(){x.removeListener(this.listener)}});l.appendChild(P);var R=x.menus.createHelpLink("https://www.drawio.com/doc/faq/math-typesetting");R.style.position="relative";R.style.marginLeft="6px";P.appendChild(R)}return l};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}, -{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties= -[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom",dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line", -type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle", -type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line", -type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties=[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20}, -{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties=[{name:"size",dispName:"Fold Size", -type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"base",dispName:"Callout Width", -type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position",type:"enum",enumList:[{val:"left", -dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1},{name:"startSize",dispName:"Header Size",type:"float"},{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal",type:"bool",defVal:!0}, -{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties).concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties); +null!=l.defaultAdaptiveColors?Graph.defaultAdaptiveColors=l.defaultAdaptiveColors:0==l.enableCssDarkMode&&(Graph.defaultAdaptiveColors="simple");null!=l.darkColor&&(Editor.darkColor=l.darkColor);null!=l.darkColorVar&&(Editor.darkColorVar=l.darkColorVar);Graph.prototype.defaultPageBackgroundColor="1"==urlParams.embedInline?"transparent":"light-dark(#ffffff, "+Editor.darkColor+")";Graph.prototype.defaultPageBorderColor="light-dark(#ffffff, "+Editor.darkColor+")";Graph.prototype.shapeBackgroundColor= +"light-dark(#ffffff, var("+Editor.darkColorVar+", "+Editor.darkColor+"))";null!=l.settingsName&&(Editor.configurationKey="."+l.settingsName+"-configuration",Editor.settingsKey="."+l.settingsName+"-config",mxSettings.key=Editor.settingsKey);null!=l.customFonts&&(Menus.prototype.defaultFonts=l.customFonts.concat(Menus.prototype.defaultFonts));null!=l.customPresetColors&&(ColorDialog.prototype.presetColors=l.customPresetColors.concat(ColorDialog.prototype.presetColors));null!=l.customColorSchemes&&(StyleFormatPanel.prototype.defaultColorSchemes= +l.customColorSchemes.concat(StyleFormatPanel.prototype.defaultColorSchemes));if(null!=l.css){var x=document.createElement("style");x.setAttribute("type","text/css");x.appendChild(document.createTextNode(l.css));var G=document.getElementsByTagName("script")[0];G.parentNode.insertBefore(x,G)}null!=l.expandLibraries&&(Sidebar.prototype.expandLibraries=l.expandLibraries);null!=l.appendCustomLibraries&&(Sidebar.prototype.appendCustomLibraries=l.appendCustomLibraries);null!=l.libraries&&(Sidebar.prototype.customEntries= +l.libraries);null!=l.enabledLibraries&&(Array.isArray(l.enabledLibraries)?Sidebar.prototype.enabledLibraries=l.enabledLibraries:EditorUi.debug("Configuration Error: Array expected for enabledLibraries"));null!=l.defaultLibraries&&(Sidebar.prototype.defaultEntries=l.defaultLibraries);null!=l.defaultCustomLibraries&&(Editor.defaultCustomLibraries=l.defaultCustomLibraries);null!=l.enableCustomLibraries&&(Editor.enableCustomLibraries=l.enableCustomLibraries);null!=l.defaultVertexStyle&&(Graph.prototype.defaultVertexStyle= +l.defaultVertexStyle);null!=l.defaultEdgeStyle&&(Graph.prototype.defaultEdgeStyle=l.defaultEdgeStyle);null!=l.defaultPageVisible&&(Graph.prototype.defaultPageVisible=l.defaultPageVisible);null!=l.defaultGridEnabled&&(Graph.prototype.defaultGridEnabled=l.defaultGridEnabled);null!=l.zoomWheel&&(Graph.zoomWheel=l.zoomWheel);null!=l.zoomFactor&&(x=parseFloat(l.zoomFactor),!isNaN(x)&&1 1 expected for zoomFactor"));null!=l.defaultGridSize&& +(x=parseInt(l.defaultGridSize),!isNaN(x)&&0 0 expected for defaultGridSize"));null!=l.gridSteps&&(x=parseInt(l.gridSteps),!isNaN(x)&&0 0 expected for gridSteps"));null!=l.pageFormat&&(x=parseInt(l.pageFormat.width),G=parseInt(l.pageFormat.height),!isNaN(x)&&0 0 expected for sidebarTitleSize"));null!=l.fontCss&&("string"===typeof l.fontCss?Editor.configureFontCss(l.fontCss):EditorUi.debug("Configuration Error: String expected for fontCss"));null!=l.autosaveDelay&&(x=parseInt(l.autosaveDelay), +!isNaN(x)&&0 0 expected for autosaveDelay"));null!=l.maxImageBytes&&(EditorUi.prototype.maxImageBytes=l.maxImageBytes);null!=l.maxImageSize&&(EditorUi.prototype.maxImageSize=l.maxImageSize);null!=l.shareCursorPosition&&(EditorUi.prototype.shareCursorPosition=l.shareCursorPosition);null!=l.showRemoteCursors&&(EditorUi.prototype.showRemoteCursors=l.showRemoteCursors);null!=l.restrictExport&&(DrawioFile.RESTRICT_EXPORT= +l.restrictExport);null!=l.replaceSvgDataUris&&(Editor.replaceSvgDataUris=l.replaceSvgDataUris);null!=l.foreignObjectImages&&(Editor.foreignObjectImages=l.foreignObjectImages);null!=l.shadowColor&&(mxConstants.SHADOW_COLOR=l.shadowColor);null!=l.shadowOpacity&&(mxConstants.SHADOW_OPACITY=l.shadowOpacity);null!=l.shadowOffsetX&&(mxConstants.SHADOW_OFFSET_X=l.shadowOffsetX);null!=l.shadowOffsetY&&(mxConstants.SHADOW_OFFSET_Y=l.shadowOffsetY);null!=l.shadowBlur&&(mxConstants.SHADOW_BLUR=l.shadowBlur); +null!=l.enableAnimations&&(Editor.enableAnimations=l.enableAnimations);null!=l.enableChatGpt&&(Editor.enableChatGpt=l.enableChatGpt);null!=l.gptApiKey&&(Editor.gptApiKey=l.gptApiKey);null!=l.gptModel&&(Editor.gptModel=l.gptModel);null!=l.gptUrl&&(Editor.gptUrl=l.gptUrl)}};Editor.isSettingsEnabled=function(){return"undefined"!==typeof window.mxSettings&&(isLocalStorage||mxClient.IS_CHROMEAPP)};Editor.configureFontCss=function(l){if(null!=l){Editor.prototype.fontCss=l;var x=document.getElementsByTagName("script")[0]; +if(null!=x&&null!=x.parentNode){var G=document.createElement("style");G.setAttribute("type","text/css");G.appendChild(document.createTextNode(l));x.parentNode.insertBefore(G,x);l=l.split("url(");for(G=1;GX.getStatus()||299>2);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O& +3)<<4);x+="==";break}R=l.charCodeAt(G++);if(G==N){x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O&3)<<4|(R&240)>>4);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((R&15)<<2);x+="=";break}T=l.charCodeAt(G++);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(O>>2);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((O& +3)<<4|(R&240)>>4);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt((R&15)<<2|(T&192)>>6);x+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(T&63)}return x};Editor.prototype.loadUrl=function(l,x,G,N,O,R,T,V){try{var W=!T&&(N||/(\.png)($|\?)/i.test(l)||/(\.jpe?g)($|\?)/i.test(l)||/(\.gif)($|\?)/i.test(l)||/(\.pdf)($|\?)/i.test(l));O=null!=O?O:!0;var X=mxUtils.bind(this,function(){mxUtils.get(l,mxUtils.bind(this,function(Y){if(200<=Y.getStatus()&& +299>=Y.getStatus()){if(null!=x){var Z=Y.getText();if(W){if((9==document.documentMode||10==document.documentMode)&&"undefined"!==typeof window.mxUtilsBinaryToArray){Y=mxUtilsBinaryToArray(Y.request.responseBody).toArray();Z=Array(Y.length);for(var ba=0;baN.indexOf("mxPageSelector")&&0k;k++)for(var n=k,q=0;8>q;q++)n=1==(n&1)?3988292384^n>>>1:n>>>1,Editor.crcTable[k]=n;Editor.updateCRC=function(l,x,G,N){for(var O=0;O>>8;return l};Editor.crc32=function(l){for(var x=-1,G=0;G>>8^Editor.crcTable[(x^l.charCodeAt(G))&255];return(x^-1)>>>0};Editor.writeGraphModelToPng=function(l,x,G,N,O){function R(Y,Z){var ba=W;W+=Z;return Y.substring(ba,W)}function T(Y){Y=R(Y,4);return Y.charCodeAt(3)+(Y.charCodeAt(2)<<8)+(Y.charCodeAt(1)<<16)+(Y.charCodeAt(0)<<24)}function V(Y){return String.fromCharCode(Y>>24&255,Y>>16&255,Y>>8&255,Y&255)}l=l.substring(l.indexOf(",")+1);l=window.atob?atob(l):Base64.decode(l,!0);var W=0;if(R(l,8)!=String.fromCharCode(137)+"PNG"+String.fromCharCode(13, +10,26,10))null!=O&&O();else if(R(l,4),"IHDR"!=R(l,4))null!=O&&O();else{R(l,17);O=l.substring(0,W);do{var X=T(l);if("IDAT"==R(l,4)){O=l.substring(0,W-8);"pHYs"==x&&"dpi"==G?(G=Math.round(N/.0254),G=V(G)+V(G)+String.fromCharCode(1)):G=G+String.fromCharCode(0)+("zTXt"==x?String.fromCharCode(0):"")+N;N=4294967295;N=Editor.updateCRC(N,x,0,4);N=Editor.updateCRC(N,G,0,G.length);O+=V(G.length)+x+G+V(N^4294967295);O+=l.substring(W-8,l.length);break}O+=l.substring(W-8,W-4+X);R(l,X);R(l,4)}while(X);return"data:image/png;base64,"+ +(window.btoa?btoa(O):Base64.encode(O,!0))}};if(window.ColorDialog){FilenameDialog.filenameHelpLink="https://www.drawio.com/doc/faq/save-file-formats";var u=ColorDialog.addRecentColor;ColorDialog.addRecentColor=function(l,x){u.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()};var E=ColorDialog.resetRecentColors;ColorDialog.resetRecentColors=function(){E.apply(this,arguments);mxSettings.setRecentColors(ColorDialog.recentColors);mxSettings.save()}}"undefined"!== +typeof window.EditDataDialog&&(EditDataDialog.getDisplayIdForCell=function(l,x){var G=null;null!=l.editor.graph.getModel().getParent(x)?G=x.getId():null!=l.currentPage&&(G=l.currentPage.getId());return G});if(null!=window.StyleFormatPanel){var H=Format.prototype.init;Format.prototype.init=function(){H.apply(this,arguments);this.editorUi.editor.addListener("fileLoaded",this.update)};var D=Format.prototype.refresh;Format.prototype.refresh=function(){null!=this.editorUi.getCurrentFile()||"1"==urlParams.embed|| +this.editorUi.editor.chromeless?D.apply(this,arguments):this.clear()};DiagramFormatPanel.prototype.isMathOptionVisible=function(l){return"simple"==Editor.currentTheme||"sketch"==Editor.currentTheme||"min"==Editor.currentTheme};var L=DiagramFormatPanel.prototype.addOptions;DiagramFormatPanel.prototype.addOptions=function(l){l=L.apply(this,arguments);var x=this.editorUi,G=x.editor.graph;if(G.isEnabled()){var N=x.getCurrentFile();null!=N&&N.isAutosaveOptional()&&l.appendChild(this.createOption(mxResources.get("autosave"), +function(){return x.editor.autosave},function(T){x.editor.setAutosave(T);x.editor.autosave&&N.isModified()&&N.fileChanged()},{install:function(T){this.listener=function(){T(x.editor.autosave)};x.editor.addListener("autosaveChanged",this.listener)},destroy:function(){x.editor.removeListener(this.listener)}}))}if(this.isMathOptionVisible()&&G.isEnabled()&&"undefined"!==typeof MathJax){var O=this.createOption(mxResources.get("mathematicalTypesetting"),function(){return G.mathEnabled},function(T){x.actions.get("mathematicalTypesetting").funct()}, +{install:function(T){this.listener=function(){T(G.mathEnabled)};x.addListener("mathEnabledChanged",this.listener)},destroy:function(){x.removeListener(this.listener)}});l.appendChild(O);if(!x.isOffline()||mxClient.IS_CHROMEAPP||EditorUi.isElectronApp){var R=x.menus.createHelpLink("https://www.drawio.com/doc/faq/math-typesetting");R.style.position="absolute";R.style.left="85%";O.appendChild(R)}}return l};mxCellRenderer.prototype.defaultVertexShape.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size", +type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.link.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.flexArrow.prototype.customProperties=[{name:"width",dispName:"Width",type:"float",min:0,defVal:10},{name:"startWidth",dispName:"Start Width",type:"float",min:0,defVal:20},{name:"endWidth",dispName:"End Width",type:"float",min:0, +defVal:20}];mxCellRenderer.defaultShapes.process.prototype.customProperties=[{name:"size",dispName:"Indent",type:"float",min:0,max:.5,defVal:.1}];mxCellRenderer.defaultShapes.rhombus.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,max:50,defVal:mxConstants.LINE_ARCSIZE},{name:"double",dispName:"Double",type:"bool",defVal:!1}];mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties=[{name:"top",dispName:"Top Line",type:"bool",defVal:!0},{name:"bottom", +dispName:"Bottom Line",type:"bool",defVal:!0},{name:"left",dispName:"Left Line",type:"bool",defVal:!0},{name:"right",dispName:"Right Line",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.parallelogram.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.hexagon.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float", +min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.25}];mxCellRenderer.defaultShapes.triangle.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}];mxCellRenderer.defaultShapes.document.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",defVal:.3,min:0,max:1}];mxCellRenderer.defaultShapes.internalStorage.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size", +type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"dx",dispName:"Left Line",type:"float",min:0,defVal:20},{name:"dy",dispName:"Top Line",type:"float",min:0,defVal:20}];mxCellRenderer.defaultShapes.cube.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,defVal:20},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0},{name:"darkOpacity2",dispName:"Dark Opacity 2",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.step.prototype.customProperties= +[{name:"size",dispName:"Notch Size",type:"float",min:0,defVal:20},{name:"fixedSize",dispName:"Fixed Size",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.trapezoid.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Slope Angle",type:"float",min:0,max:1,defVal:.2}];mxCellRenderer.defaultShapes.tape.prototype.customProperties=[{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.4}];mxCellRenderer.defaultShapes.note.prototype.customProperties= +[{name:"size",dispName:"Fold Size",type:"float",min:0,defVal:30},{name:"darkOpacity",dispName:"Dark Opacity",type:"float",min:-1,max:1,defVal:0}];mxCellRenderer.defaultShapes.card.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE},{name:"size",dispName:"Cutoff Size",type:"float",min:0,defVal:30}];mxCellRenderer.defaultShapes.callout.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:mxConstants.LINE_ARCSIZE}, +{name:"base",dispName:"Callout Width",type:"float",min:0,defVal:20},{name:"size",dispName:"Callout Length",type:"float",min:0,defVal:30},{name:"position",dispName:"Callout Position",type:"float",min:0,max:1,defVal:.5},{name:"position2",dispName:"Callout Tip Position",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.folder.prototype.customProperties=[{name:"tabWidth",dispName:"Tab Width",type:"float"},{name:"tabHeight",dispName:"Tab Height",type:"float"},{name:"tabPosition",dispName:"Tap Position", +type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"right",dispName:"Right"}]}];mxCellRenderer.defaultShapes.swimlane.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"absoluteArcSize",dispName:"Abs. Arc Size",type:"bool",defVal:!1},{name:"startSize",dispName:"Header Size",type:"float"},{name:"swimlaneHead",dispName:"Head Border",type:"bool",defVal:!0},{name:"swimlaneBody",dispName:"Body Border",type:"bool",defVal:!0},{name:"horizontal",dispName:"Horizontal", +type:"bool",defVal:!0},{name:"separatorColor",dispName:"Separator Color",type:"color",defVal:null}];mxCellRenderer.defaultShapes.table.prototype.customProperties=[{name:"rowLines",dispName:"Row Lines",type:"bool",defVal:!0},{name:"columnLines",dispName:"Column Lines",type:"bool",defVal:!0},{name:"fixedRows",dispName:"Fixed Rows",type:"bool",defVal:!1},{name:"resizeLast",dispName:"Resize Last Column",type:"bool",defVal:!1},{name:"resizeLastRow",dispName:"Resize Last Row",type:"bool",defVal:!1}].concat(mxCellRenderer.defaultShapes.swimlane.prototype.customProperties).concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties); mxCellRenderer.defaultShapes.tableRow.prototype.customProperties=mxCellRenderer.defaultShapes.swimlane.prototype.customProperties.concat(mxCellRenderer.defaultShapes.partialRectangle.prototype.customProperties);mxCellRenderer.defaultShapes.doubleEllipse.prototype.customProperties=[{name:"margin",dispName:"Indent",type:"float",min:0,defVal:4}];mxCellRenderer.defaultShapes.ext.prototype.customProperties=[{name:"arcSize",dispName:"Arc Size",type:"float",min:0,defVal:15},{name:"double",dispName:"Double", type:"bool",defVal:!1},{name:"margin",dispName:"Indent",type:"float",min:0,defVal:0}];mxCellRenderer.defaultShapes.curlyBracket.prototype.customProperties=[{name:"rounded",dispName:"Rounded",type:"bool",defVal:!0},{name:"size",dispName:"Size",type:"float",min:0,max:1,defVal:.5}];mxCellRenderer.defaultShapes.image.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect",type:"bool",defVal:!0}];mxCellRenderer.defaultShapes.label.prototype.customProperties=[{name:"imageAspect",dispName:"Fixed Image Aspect", type:"bool",defVal:!0},{name:"imageAlign",dispName:"Image Align",type:"enum",enumList:[{val:"left",dispName:"Left"},{val:"center",dispName:"Center"},{val:"right",dispName:"Right"}],defVal:"left"},{name:"imageVerticalAlign",dispName:"Image Vertical Align",type:"enum",enumList:[{val:"top",dispName:"Top"},{val:"middle",dispName:"Middle"},{val:"bottom",dispName:"Bottom"}],defVal:"middle"},{name:"imageWidth",dispName:"Image Width",type:"float",min:0,defVal:24},{name:"imageHeight",dispName:"Image Height", @@ -12838,134 +12840,134 @@ defVal:"none",enumList:[{val:"none",dispName:"Default"},{val:"umlActor",dispName stroke:"#3700CC",font:"#ffffff"},{fill:"#d80073",stroke:"#A50040",font:"#ffffff"},{fill:"#a20025",stroke:"#6F0000",font:"#ffffff"}],[{fill:"#e51400",stroke:"#B20000",font:"#ffffff"},{fill:"#fa6800",stroke:"#C73500",font:"#000000"},{fill:"#f0a30a",stroke:"#BD7000",font:"#000000"},{fill:"#e3c800",stroke:"#B09500",font:"#000000"},{fill:"#6d8764",stroke:"#3A5431",font:"#ffffff"},{fill:"#647687",stroke:"#314354",font:"#ffffff"},{fill:"#76608a",stroke:"#432D57",font:"#ffffff"},{fill:"#a0522d",stroke:"#6D1F00", font:"#ffffff"}],[{fill:"",stroke:""},{fill:mxConstants.NONE,stroke:""},{fill:"#fad7ac",stroke:"#b46504"},{fill:"#fad9d5",stroke:"#ae4132"},{fill:"#b0e3e6",stroke:"#0e8088"},{fill:"#b1ddf0",stroke:"#10739e"},{fill:"#d0cee2",stroke:"#56517e"},{fill:"#bac8d3",stroke:"#23445d"}],[{fill:"",stroke:""},{fill:"#f5f5f5",stroke:"#666666",gradient:"#b3b3b3"},{fill:"#dae8fc",stroke:"#6c8ebf",gradient:"#7ea6e0"},{fill:"#d5e8d4",stroke:"#82b366",gradient:"#97d077"},{fill:"#ffcd28",stroke:"#d79b00",gradient:"#ffa500"}, {fill:"#fff2cc",stroke:"#d6b656",gradient:"#ffd966"},{fill:"#f8cecc",stroke:"#b85450",gradient:"#ea6b66"},{fill:"#e6d0de",stroke:"#996185",gradient:"#d5739d"}],[{fill:"",stroke:""},{fill:"#eeeeee",stroke:"#36393d"},{fill:"#f9f7ed",stroke:"#36393d"},{fill:"#ffcc99",stroke:"#36393d"},{fill:"#cce5ff",stroke:"#36393d"},{fill:"#ffff88",stroke:"#36393d"},{fill:"#cdeb8b",stroke:"#36393d"},{fill:"#ffcccc",stroke:"#36393d"}]];StyleFormatPanel.prototype.customColorSchemes=null;StyleFormatPanel.prototype.findCommonProperties= -function(l,x,D){if(null!=x){var N=function(R){if(null!=R)if(D)for(var T=0;Tma.size&&(xa=xa.slice(0,ma.size));ea=xa.join(",");null!=ma.countProperty&&(aa.setCellStyles(ma.countProperty,xa.length,aa.getSelectionCells()),ta.push(ma.countProperty),Da.push(xa.length))}aa.setCellStyles(qa,ea,aa.getSelectionCells());ta.push(qa);Da.push(ea);if(null!=ma.dependentProps)for(qa=0;qaea)Ha=Ha.slice(0,ea);else for(var Ia=Ha.length;Iama.max&&(Ga=ma.max);var Va=null;try{Va="numbers"==xa?Ga.match(/\d+/g).map(Number).join(" "):encodeURIComponent(("int"==xa?parseInt(Ga):Ga)+"")}catch(Ta){}P(qa,Va,ma,null,Ja)}var Ja=document.createElement("input");R(Ba,Ja,!0);Ja.value=decodeURIComponent(ea);Ja.className= -"gePropEditor";"int"!=xa&&"float"!=xa||ma.allowAuto||(Ja.type="number",Ja.step="int"==xa?"1":"any",null!=ma.min&&(Ja.min=parseFloat(ma.min)),null!=ma.max&&(Ja.max=parseFloat(ma.max)));l.appendChild(Ja);mxEvent.addListener(Ja,"keypress",function(Ga){13==Ga.keyCode&&Ia()});Ja.focus();mxEvent.addListener(Ja,"blur",function(){Ia()})})));ma.isDeletable&&(ta=mxUtils.button("-",mxUtils.bind(Z,function(Ia){P(qa,"",ma,ma.index);mxEvent.consume(Ia)})),ta.style.height="16px",ta.style.width="25px",ta.style.float= -"right",ta.className="geColorBtn",Ba.appendChild(ta));Ca.appendChild(Ba);return Ca}var Z=this,aa=this.editorUi.editor.graph,ha=[];l.style.position="relative";l.style.padding="0";var ca=document.createElement("table");ca.className="geProperties";ca.style.whiteSpace="nowrap";ca.style.width="100%";var da=document.createElement("tr");da.className="gePropHeader";var ia=document.createElement("th");ia.className="gePropHeaderCell";var ba=document.createElement("img");ba.src=Sidebar.prototype.expandedImage; -ba.style.verticalAlign="middle";ia.appendChild(ba);mxUtils.write(ia,mxResources.get("property"));da.style.cursor="pointer";var ja=function(){var qa=ca.querySelectorAll(".gePropNonHeaderRow");if(Z.editorUi.propertiesCollapsed){ba.src=Sidebar.prototype.collapsedImage;var ea="none";for(var ma=l.childNodes.length-1;0<=ma;ma--)try{var za=l.childNodes[ma],ta=za.nodeName.toUpperCase();"INPUT"!=ta&&"SELECT"!=ta||l.removeChild(za)}catch(Da){}}else ba.src=Sidebar.prototype.expandedImage,ea="";for(ma=0;ma=this.defaultColorSchemes.length?"24px":"30px";ja.style.margin="0px 6px 6px 0px";if(null!=ba){var pa=Editor.isDarkMode()?"2px solid":"1px solid";null!=ba.border&&(pa=ba.border);null!=ba.gradient?mxClient.IS_IE&&10>document.documentMode?ja.style.filter="progid:DXImageTransform.Microsoft.Gradient(StartColorStr='"+ba.fill+"', EndColorStr='"+ -ba.gradient+"', GradientType=0)":ja.style.backgroundImage="linear-gradient("+ba.fill+" 0px,"+ba.gradient+" 100%)":ba.fill==mxConstants.NONE?ja.style.background="url('"+Dialog.prototype.noColorImage+"')":ja.style.backgroundColor=""==ba.fill?mxUtils.getValue(N.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff"):ba.fill||mxUtils.getValue(N.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,Editor.isDarkMode()?Editor.darkColor:"#ffffff");ja.style.border=ba.stroke== -mxConstants.NONE?pa+" transparent":""==ba.stroke?pa+" "+mxUtils.getValue(N.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor):pa+" "+(ba.stroke||mxUtils.getValue(N.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR,Editor.isDarkMode()?"#ffffff":Editor.darkColor));null!=ba.title&&ja.setAttribute("title",ba.title)}else{pa=mxUtils.getValue(N.defaultVertexStyle,mxConstants.STYLE_FILLCOLOR,"#ffffff");var wa=mxUtils.getValue(N.defaultVertexStyle,mxConstants.STYLE_STROKECOLOR, -"#000000");ja.style.backgroundColor=pa;ja.style.border="1px solid "+wa}ja.style.borderRadius="0";P.appendChild(ja)});P.innerText="";if(null!=ca)for(var ia=0;ia=this.defaultColorSchemes.length?28:8;var aa=document.createElement("div");aa.style.cssText="position:absolute;left:10px;top:8px;bottom:"+ -W+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);";mxEvent.addListener(aa,"click",mxUtils.bind(this,function(){Y(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))})); -var ha=document.createElement("div");ha.style.cssText="position:absolute;left:202px;top:8px;bottom:"+W+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);";1=this.defaultColorSchemes.length&&l.appendChild(T)}return l}}Graph.fontMapping={"https://fonts.googleapis.com/css?family=Architects+Daughter":'@font-face { font-family: "Architects Daughter"; src: url('+STYLE_PATH+'/fonts/ArchitectsDaughter-Regular.ttf) format("truetype"); }'}; +function(l,x,G){if(null!=x){var N=function(R){if(null!=R)if(G)for(var T=0;Tna.size&&(va=va.slice(0,na.size));ea=va.join(",");null!=na.countProperty&&(ba.setCellStyles(na.countProperty,va.length,ba.getSelectionCells()),oa.push(na.countProperty),Ea.push(va.length))}ba.setCellStyles(wa,ea,ba.getSelectionCells());oa.push(wa);Ea.push(ea);if(null!=na.dependentProps)for(wa=0;waea)Ma=Ma.slice(0,ea);else for(var Ba=Ma.length;Bana.max&&(Ia=na.max);var Va=null;try{Va="numbers"==va?Ia.match(/\d+/g).map(Number).join(" "):encodeURIComponent(("int"==va?parseInt(Ia):Ia)+"")}catch(Ta){}O(wa,Va,na,null,Da)}var Da=document.createElement("input");R(Fa,Da,!0);Da.value=decodeURIComponent(ea);Da.className="gePropEditor";"int"!=va&&"float"!=va||na.allowAuto||(Da.type="number",Da.step="int"==va?"1":"any",null!=na.min&&(Da.min=parseFloat(na.min)),null!=na.max&&(Da.max=parseFloat(na.max)));l.appendChild(Da); +mxEvent.addListener(Da,"keypress",function(Ia){13==Ia.keyCode&&Ba()});Da.focus();mxEvent.addListener(Da,"blur",function(){Ba()})})));na.isDeletable&&(oa=mxUtils.button("-",mxUtils.bind(Z,function(Ba){O(wa,"",na,na.index);mxEvent.consume(Ba)})),oa.style.height="16px",oa.style.width="25px",oa.style.float="right",oa.className="geColorBtn",Fa.appendChild(oa));Ca.appendChild(Fa);return Ca}var Z=this,ba=this.editorUi.editor.graph,ha=[];l.style.position="relative";l.style.padding="0";var ca=document.createElement("table"); +ca.className="geProperties";ca.style.whiteSpace="nowrap";ca.style.width="100%";var da=document.createElement("tr");da.className="gePropHeader";var ja=document.createElement("th");ja.className="gePropHeaderCell";ja.style.paddingLeft="16px";ja.style.backgroundRepeat="no-repeat";ja.style.backgroundPosition="-2px 50%";ja.style.backgroundSize="20px";mxUtils.write(ja,mxResources.get("property"));da.style.cursor="pointer";var aa=function(){var wa=ca.querySelectorAll(".gePropNonHeaderRow");if(Z.editorUi.propertiesCollapsed){ja.style.backgroundImage= +"url('"+Editor.arrowRightImage+"')";var ea="none";for(var na=l.childNodes.length-1;0<=na;na--)try{var Aa=l.childNodes[na],oa=Aa.nodeName.toUpperCase();"INPUT"!=oa&&"SELECT"!=oa||l.removeChild(Aa)}catch(Ea){}}else ja.style.backgroundImage="url('"+Editor.arrowDownImage+"')",ea="";for(na=0;na=this.defaultColorSchemes.length?"24px":"30px";ia.style.margin="0px 6px 6px 0px";if(null!=aa){var ka="1px solid";null!=aa.border&&(ka=aa.border);if(null!=aa.gradient)ia.style.backgroundImage="linear-gradient("+mxUtils.getLightDarkColor(aa.fill).cssText+" 0px,"+mxUtils.getLightDarkColor(aa.gradient).cssText+" 100%)";else if(aa.fill==mxConstants.NONE)ia.style.background="url('"+Dialog.prototype.noColorImage+"')";else if(null==aa.fill||""==aa.fill)ia.style.backgroundColor= +mxUtils.getLightDarkColor(mxUtils.getValue(ca,mxConstants.STYLE_FILLCOLOR,"#ffffff")).cssText;else{var ua=mxUtils.getLightDarkColor(aa.fill);ia.style.backgroundImage="linear-gradient(to right bottom, "+ua.cssText+" 50%, "+ua.light+" 50.3%)"}null==aa.stroke||aa.stroke==mxConstants.NONE?ia.style.border=ka+" transparent":""==aa.stroke?ia.style.border="1px solid "+mxUtils.getLightDarkColor(mxUtils.getValue(ca,mxConstants.STYLE_STROKECOLOR,"#000000")).cssText:(ua=mxUtils.getLightDarkColor(aa.stroke),ia.style.border= +ka+" "+ua.cssText,ia.style.borderRightColor=ua.light,ia.style.borderBottomColor=ia.style.borderRightColor);null!=aa.title&&ia.setAttribute("title",aa.title)}else ka=mxUtils.getValue(ca,mxConstants.STYLE_FILLCOLOR,"#ffffff"),ua=mxUtils.getValue(ca,mxConstants.STYLE_STROKECOLOR,"#000000"),ia.style.backgroundColor=ka,ia.style.border="1px solid "+ua;ia.style.borderRadius="0";O.appendChild(ia);null!=aa.gradient&&(ka=ia.cloneNode(!1),ka.style.backgroundImage="linear-gradient(light-dark(transparent, "+mxUtils.getLightDarkColor(aa.fill).light+ +") 0px, light-dark(transparent, "+mxUtils.getLightDarkColor(aa.gradient).light+") 100%)",ka.style.clipPath="polygon(0 100%, 100% 0, 100% 100%)",ka.style.backgroundColor="transparent",O.appendChild(ka),ka.style.marginLeft="-42px",mxEvent.addListener(ka,"click",function(){ia.click()}))});O.innerText="";if(null!=ha)for(var ja=0;ja=this.defaultColorSchemes.length?28:8;var Z=document.createElement("div");Z.style.cssText="position:absolute;left:10px;top:8px;bottom:"+V+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ4eHh3d3d1dXVxcXF2dnZ2dnZ2dnZxcXF2dnYmb3w1AAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADRJREFUCNdjwACMAmBKaiGYs2oJmLPKAZ3DabU8AMRTXpUKopislqFyVzCAuUZgikkBZjoAcMYLnp53P/UAAAAASUVORK5CYII=);"; +mxEvent.addListener(Z,"click",mxUtils.bind(this,function(){X(mxUtils.mod(this.format.currentScheme-1,this.defaultColorSchemes.length))}));var ba=document.createElement("div");ba.style.cssText="position:absolute;left:202px;top:8px;bottom:"+V+"px;width:20px;margin:4px;opacity:0.5;background-repeat:no-repeat;background-position:center center;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAQBAMAAADQT4M0AAAAIVBMVEUAAAB2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYBuwCcAAAACnRSTlMAfCTkhhvb7cQSPH2JPgAAADZJREFUCNdjQAOMAmBKaiGY8loF5rKswsZlrVo8AUiFrTICcbIWK8A5DF1gDoMymMPApIAwHwCS0Qx/U7qCBQAAAABJRU5ErkJggg==);"; +1=this.defaultColorSchemes.length&&l.appendChild(R)}return l}}Graph.fontMapping={"https://fonts.googleapis.com/css?family=Architects+Daughter":'@font-face { font-family: "Architects Daughter"; src: url('+STYLE_PATH+'/fonts/ArchitectsDaughter-Regular.ttf) format("truetype"); }'}; Graph.customFontElements={};Graph.isGoogleFontUrl=function(l){return l.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS||l.substring(0,Editor.GOOGLE_FONTS_CSS2.length)==Editor.GOOGLE_FONTS_CSS2};Graph.isCssFontUrl=function(l){return Graph.isGoogleFontUrl(l)};Graph.rewriteGoogleFontUrl=function(l){null!=l&&l.substring(0,Editor.GOOGLE_FONTS.length)==Editor.GOOGLE_FONTS&&(l=Editor.GOOGLE_FONTS_CSS2+l.substring(Editor.GOOGLE_FONTS.length)+":wght@400;500");return l};Graph.createFontElement= -function(l,x){var D=Graph.fontMapping[x];null==D&&Graph.isCssFontUrl(x)?(l=document.createElement("link"),l.setAttribute("rel","stylesheet"),l.setAttribute("type","text/css"),l.setAttribute("charset","UTF-8"),l.setAttribute("href",Graph.rewriteGoogleFontUrl(x))):(null==D&&(D='@font-face {\nfont-family: "'+l+'";\nsrc: url("'+x+'");\n}'),l=document.createElement("style"),mxUtils.write(l,D));return l};Graph.addRecentCustomFont=function(l,x){};Graph.addFont=function(l,x,D){if(null!=l&&0mxUtils.indexOf(V.hiddenTags,wa),na=document.createElement("tr"), -sa=document.createElement("td");sa.style.align="center";sa.style.width="16px";var va=document.createElement("img");va.setAttribute("src",fa?Editor.visibleImage:Editor.hiddenImage);va.setAttribute("title",mxResources.get(fa?"hideIt":"show",[wa]));mxUtils.setOpacity(va,fa?75:25);va.className="geAdaptiveAsset";va.style.verticalAlign="middle";va.style.cursor="pointer";va.style.width="16px";if(x||Editor.isDarkMode())va.style.filter="invert(100%)";sa.appendChild(va);mxEvent.addListener(va,"click",function(ea){mxEvent.isShiftDown(ea)? -R(0<=mxUtils.indexOf(V.hiddenTags,wa)):(V.toggleHiddenTag(wa),P(),V.refresh());mxEvent.consume(ea)});na.appendChild(sa);sa=document.createElement("td");sa.style.align="center";sa.style.width="16px";va=document.createElement("img");va.setAttribute("src",Editor.selectImage);va.setAttribute("title",mxResources.get("select"));mxUtils.setOpacity(va,fa?75:25);va.className="geAdaptiveAsset";va.style.verticalAlign="middle";va.style.cursor="pointer";va.style.width="16px";if(x||Editor.isDarkMode())va.style.filter= -"invert(100%)";mxEvent.addListener(va,"click",function(ea){R(!0);la();mxEvent.consume(ea)});sa.appendChild(va);na.appendChild(sa);sa=document.createElement("td");sa.style.overflow="hidden";sa.style.whiteSpace="nowrap";sa.style.textOverflow="ellipsis";sa.style.verticalAlign="middle";sa.style.cursor="pointer";sa.setAttribute("title",wa);a=document.createElement("a");mxUtils.write(a,wa);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,fa?100:40);sa.appendChild(a);mxEvent.addListener(sa, -"click",function(ea){if(mxEvent.isShiftDown(ea))R(!0),la();else if(fa&&0mxUtils.indexOf(W,da[ia])&&W.push(da[ia]);W.sort();V.isSelectionEmpty()?T(W):T(W,V.getCommonTagsForCells(V.getSelectionCells()))}});V.selectionModel.addListener(mxEvent.CHANGE,ha);V.model.addListener(mxEvent.CHANGE,ha);V.addListener(mxEvent.REFRESH,ha);var ca=document.createElement("div");ca.style.display="flex";ca.style.alignItems="center";ca.style.boxSizing="border-box";ca.style.whiteSpace="nowrap";ca.style.position= -"absolute";ca.style.overflow="hidden";ca.style.bottom="6px";ca.style.height="42px";ca.style.right="10px";ca.style.left="10px";V.isEnabled()&&(ca.appendChild(Z),ca.appendChild(aa),X.appendChild(ca));null!=N&&ca.appendChild(N);return{div:X,refresh:ha}};Graph.prototype.getCustomFonts=function(){var l=this.extFonts;l=null!=l?l.slice():[];for(var x in Graph.customFontElements){var D=Graph.customFontElements[x];l.push({name:D.name,url:D.url})}return l};Graph.prototype.setFont=function(l,x){Graph.addFont(l, -x);var D=Editor.guid();document.execCommand("fontname",!1,D);for(var N=this.cellEditor.textarea.getElementsByTagName("font"),P=!1,R=0;R'+mxUtils.htmlEntities(l)+""};mxGraphView.prototype.redrawEnumerationState=function(l){var x="1"==mxUtils.getValue(l.style,"enumerate",0);x&&null==l.secondLabel?(l.secondLabel=new mxText("",new mxRectangle,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM), -l.secondLabel.size=12,l.secondLabel.state=l,l.secondLabel.dialect=mxConstants.DIALECT_STRICTHTML,this.graph.cellRenderer.initializeLabel(l,l.secondLabel)):x||null==l.secondLabel||(l.secondLabel.destroy(),l.secondLabel=null);x=l.secondLabel;if(null!=x){var D=l.view.scale,N=this.createEnumerationValue(l);l=this.graph.model.isVertex(l.cell)?new mxRectangle(l.x+l.width-4*D,l.y+4*D,0,0):mxRectangle.fromPoint(l.view.getPoint(l));x.bounds.equals(l)&&x.value==N&&x.scale==D||(x.bounds=l,x.value=N,x.scale= -D,x.redraw())}};var Q=Graph.prototype.refresh;Graph.prototype.refresh=function(){this.refreshBackgroundImage();Q.apply(this,arguments)};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var O=Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){O.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink= -function(l,x){"data:action/json,"==l.substring(0,17)&&(l=JSON.parse(l.substring(17)),null!=l.actions&&this.executeCustomActions(l.actions,null,x))};Graph.prototype.executeCustomActions=function(l,x,D){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread),null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions= -!0;var N=!1,P=0,R=0,T=mxUtils.bind(this,function(){N||(N=!0,this.model.beginUpdate())}),V=mxUtils.bind(this,function(){N&&(N=!1,this.model.endUpdate())}),W=mxUtils.bind(this,function(){0mxUtils.indexOf(Z.tags.visible,da[ha])&&0>mxUtils.indexOf(ca,da[ha])&&ca.push(da[ha])}null!=ca&&this.setHiddenTags(ca);this.refresh()}0l.excludeCells.indexOf(x[N].id)&&D.push(x[N]);x=D}return x};Graph.prototype.getCellsById=function(l){var x=[];if(null!=l)for(var D=0;Dx?this.hiddenTags.push(l):0<=x&&this.hiddenTags.splice(x,1);this.fireEvent(new mxEventObject("hiddenTagsChanged"))}; -Graph.prototype.isAllTagsHidden=function(l){if(null==l||0==l.length||0==this.hiddenTags.length)return!1;l=l.split(" ");if(l.length>this.hiddenTags.length)return!1;for(var x=0;xmxUtils.indexOf(this.hiddenTags,l[x]))return!1;return!0};Graph.prototype.getCellsForTags=function(l,x,D,N){var P=[];if(null!=l){x=null!=x?x:this.model.getDescendants(this.model.getRoot());for(var R=0,T={},V=0;V=l.length)){for(var Y=X=0;YmxUtils.indexOf(P,V)&&(N=0
')))}catch(l){}Editor.prototype.useCanvasForExport= -!1})();(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(e,f,c){c.ui=e.ui;return f};b.afterDecode=function(e,f,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(b)})(); -(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,f,c){c.ui=e.ui;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="25.0.2";EditorUi.compactUi="atlas"!=Editor.currentTheme||window.DRAWIO_PUBLIC_BUILD;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"https://preprod.diagrams.net/"!=window.location.hostname&&"support.draw.io"!=window.location.hostname;EditorUi.drawHost= -window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl=window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp=null!=window&&null!=window.process&&null!=window.process.versions&& -null!=window.process.versions.electron;EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.drawio.com/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.mermaidDiagramTypes="flowchart classDiagram sequenceDiagram stateDiagram mindmap graph erDiagram requirementDiagram journey gantt pie gitGraph".split(" "); +function(l,x){var G=Graph.fontMapping[x];null==G&&Graph.isCssFontUrl(x)?(l=document.createElement("link"),l.setAttribute("rel","stylesheet"),l.setAttribute("type","text/css"),l.setAttribute("charset","UTF-8"),l.setAttribute("href",Graph.rewriteGoogleFontUrl(x))):(null==G&&(G='@font-face {\nfont-family: "'+l+'";\nsrc: url("'+x+'");\n}'),l=document.createElement("style"),mxUtils.write(l,G));return l};Graph.addRecentCustomFont=function(l,x){};Graph.addFont=function(l,x,G){if(null!=l&&0mxUtils.indexOf(V.hiddenTags,ua),pa=document.createElement("tr"), +ra=document.createElement("td");ra.style.align="center";ra.style.width="16px";var xa=document.createElement("img");xa.setAttribute("src",fa?Editor.visibleImage:Editor.hiddenImage);xa.setAttribute("title",mxResources.get(fa?"hideIt":"show",[ua]));mxUtils.setOpacity(xa,fa?75:25);xa.className="geAdaptiveAsset";xa.style.verticalAlign="middle";xa.style.cursor="pointer";xa.style.width="16px";if(x||Editor.isDarkMode())xa.style.filter="invert(100%)";ra.appendChild(xa);mxEvent.addListener(xa,"click",function(ea){mxEvent.isShiftDown(ea)? +R(0<=mxUtils.indexOf(V.hiddenTags,ua)):(V.toggleHiddenTag(ua),O(),V.refresh());mxEvent.consume(ea)});pa.appendChild(ra);ra=document.createElement("td");ra.style.align="center";ra.style.width="16px";xa=document.createElement("img");xa.setAttribute("src",Editor.selectImage);xa.setAttribute("title",mxResources.get("select"));mxUtils.setOpacity(xa,fa?75:25);xa.className="geAdaptiveAsset";xa.style.verticalAlign="middle";xa.style.cursor="pointer";xa.style.width="16px";if(x||Editor.isDarkMode())xa.style.filter= +"invert(100%)";mxEvent.addListener(xa,"click",function(ea){R(!0);sa();mxEvent.consume(ea)});ra.appendChild(xa);pa.appendChild(ra);ra=document.createElement("td");ra.style.overflow="hidden";ra.style.whiteSpace="nowrap";ra.style.textOverflow="ellipsis";ra.style.verticalAlign="middle";ra.style.cursor="pointer";ra.setAttribute("title",ua);a=document.createElement("a");mxUtils.write(a,ua);a.style.textOverflow="ellipsis";a.style.position="relative";mxUtils.setOpacity(a,fa?100:40);ra.appendChild(a);mxEvent.addListener(ra, +"click",function(ea){if(mxEvent.isShiftDown(ea))R(!0),sa();else if(fa&&0mxUtils.indexOf(W,da[ja])&&W.push(da[ja]);W.sort();V.isSelectionEmpty()?T(W):T(W,V.getCommonTagsForCells(V.getSelectionCells()))}});V.selectionModel.addListener(mxEvent.CHANGE,ha);V.model.addListener(mxEvent.CHANGE,ha);V.addListener(mxEvent.REFRESH,ha);var ca=document.createElement("div");ca.style.display="flex";ca.style.alignItems="center";ca.style.boxSizing="border-box";ca.style.whiteSpace="nowrap";ca.style.position= +"absolute";ca.style.overflow="hidden";ca.style.bottom="6px";ca.style.height="42px";ca.style.right="10px";ca.style.left="10px";V.isEnabled()&&(ca.appendChild(Z),ca.appendChild(ba),X.appendChild(ca));null!=N&&ca.appendChild(N);return{div:X,refresh:ha}};Graph.prototype.getCustomFonts=function(){var l=this.extFonts;l=null!=l?l.slice():[];for(var x in Graph.customFontElements){var G=Graph.customFontElements[x];l.push({name:G.name,url:G.url})}return l};Graph.prototype.setFont=function(l,x){Graph.addFont(l, +x);var G=Editor.guid();document.execCommand("fontname",!1,G);for(var N=this.cellEditor.textarea.getElementsByTagName("font"),O=!1,R=0;R'+mxUtils.htmlEntities(l)+""};mxGraphView.prototype.redrawEnumerationState= +function(l){var x="1"==mxUtils.getValue(l.style,"enumerate",0);x&&null==l.secondLabel?(l.secondLabel=new mxText("",new mxRectangle,mxConstants.ALIGN_LEFT,mxConstants.ALIGN_BOTTOM),l.secondLabel.size=12,l.secondLabel.state=l,l.secondLabel.dialect=mxConstants.DIALECT_STRICTHTML,this.graph.cellRenderer.initializeLabel(l,l.secondLabel)):x||null==l.secondLabel||(l.secondLabel.destroy(),l.secondLabel=null);x=l.secondLabel;if(null!=x){var G=l.view.scale,N=this.createEnumerationValue(l);l=this.graph.model.isVertex(l.cell)? +new mxRectangle(l.x+l.width-4*G,l.y+4*G,0,0):mxRectangle.fromPoint(l.view.getPoint(l));x.bounds.equals(l)&&x.value==N&&x.scale==G||(x.bounds=l,x.value=N,x.scale=G,x.redraw())}};var Q=Graph.prototype.refresh;Graph.prototype.refresh=function(){this.refreshBackgroundImage();Q.apply(this,arguments)};Graph.prototype.refreshBackgroundImage=function(){null!=this.backgroundImage&&null!=this.backgroundImage.originalSrc&&(this.setBackgroundImage(this.backgroundImage),this.view.validateBackgroundImage())};var P= +Graph.prototype.loadStylesheet;Graph.prototype.loadStylesheet=function(){P.apply(this,arguments);this.currentStyle="default-style2"};Graph.prototype.handleCustomLink=function(l,x){"data:action/json,"==l.substring(0,17)&&(l=JSON.parse(l.substring(17)),null!=l.actions&&this.executeCustomActions(l.actions,null,x))};Graph.prototype.executeCustomActions=function(l,x,G){if(this.executingCustomActions)this.stoppingCustomActions=!0,null!=this.pendingWaitThread&&window.clearTimeout(this.pendingWaitThread), +null!=this.pendingExecuteNextAction&&this.pendingExecuteNextAction(),this.fireEvent(new mxEventObject("stopExecutingCustomActions"));else{this.executingCustomActions=!0;var N=!1,O=0,R=0,T=mxUtils.bind(this,function(){N||(N=!0,this.model.beginUpdate())}),V=mxUtils.bind(this,function(){N&&(N=!1,this.model.endUpdate())}),W=mxUtils.bind(this,function(){0mxUtils.indexOf(Z.tags.visible,da[ha])&&0>mxUtils.indexOf(ca,da[ha])&&ca.push(da[ha])}null!=ca&&this.setHiddenTags(ca);this.refresh()}0l.excludeCells.indexOf(x[N].id)&&G.push(x[N]);x=G}return x};Graph.prototype.getCellsById= +function(l){var x=[];if(null!=l)for(var G=0;Gx?this.hiddenTags.push(l):0<=x&&this.hiddenTags.splice(x,1);this.fireEvent(new mxEventObject("hiddenTagsChanged"))};Graph.prototype.isAllTagsHidden=function(l){if(null==l||0==l.length||0==this.hiddenTags.length)return!1;l=l.split(" ");if(l.length>this.hiddenTags.length)return!1;for(var x=0;xmxUtils.indexOf(this.hiddenTags,l[x]))return!1;return!0};Graph.prototype.getCellsForTags=function(l,x,G, +N){var O=[];if(null!=l){x=null!=x?x:this.model.getDescendants(this.model.getRoot());for(var R=0,T={},V=0;V=l.length)){for(var Y=X=0;YmxUtils.indexOf(O,V)&&(N=0
')))}catch(l){}Editor.prototype.useCanvasForExport=!1})(); +(function(){var b=new mxObjectCodec(new ChangePageSetup,["ui","previousColor","previousImage","previousFormat"]);b.beforeDecode=function(e,f,c){c.ui=e.ui;return f};b.afterDecode=function(e,f,c){c.previousColor=c.color;c.previousImage=c.image;c.previousFormat=c.format;c.previousAdaptiveColors=c.adaptiveColors;null!=c.foldingEnabled&&(c.foldingEnabled=!c.foldingEnabled);null!=c.mathEnabled&&(c.mathEnabled=!c.mathEnabled);null!=c.shadowVisible&&(c.shadowVisible=!c.shadowVisible);return c};mxCodecRegistry.register(b)})(); +(function(){var b=new mxObjectCodec(new ChangeGridColor,["ui"]);b.beforeDecode=function(e,f,c){c.ui=e.ui;return f};mxCodecRegistry.register(b)})();(function(){EditorUi.VERSION="26.0.0";EditorUi.compactUi="atlas"!=Editor.currentTheme||window.DRAWIO_PUBLIC_BUILD;Editor.isDarkMode()&&(mxGraphView.prototype.gridColor=mxGraphView.prototype.defaultDarkGridColor);EditorUi.enableLogging="1"!=urlParams.stealth&&"1"!=urlParams.lockdown&&(/.*\.draw\.io$/.test(window.location.hostname)||/.*\.diagrams\.net$/.test(window.location.hostname))&&"https://preprod.diagrams.net/"!=window.location.hostname&&"support.draw.io"!=window.location.hostname&& +"test.draw.io"!=window.location.hostname;EditorUi.drawHost=window.DRAWIO_BASE_URL;EditorUi.lightboxHost=window.DRAWIO_LIGHTBOX_URL;EditorUi.lastErrorMessage=null;EditorUi.ignoredAnonymizedChars="\n\t`~!@#$%^&*()_+{}|:\"<>?-=[];'./,\n\t";EditorUi.templateFile=TEMPLATE_PATH+"/index.xml";EditorUi.cacheUrl=window.REALTIME_URL;null==EditorUi.cacheUrl&&"undefined"!==typeof DrawioFile&&(DrawioFile.SYNC="none");Editor.cacheTimeout=1E4;EditorUi.enablePlantUml=EditorUi.enableLogging;EditorUi.isElectronApp= +null!=window&&null!=window.process&&null!=window.process.versions&&null!=window.process.versions.electron;EditorUi.nativeFileSupport=!mxClient.IS_OP&&!EditorUi.isElectronApp&&"1"!=urlParams.extAuth&&"showSaveFilePicker"in window&&"showOpenFilePicker"in window;EditorUi.enableDrafts=!mxClient.IS_CHROMEAPP&&isLocalStorage&&"0"!=urlParams.drafts;EditorUi.scratchpadHelpLink="https://www.drawio.com/doc/faq/scratchpad";EditorUi.enableHtmlEditOption=!0;EditorUi.mermaidDiagramTypes="flowchart classDiagram sequenceDiagram stateDiagram mindmap graph erDiagram requirementDiagram journey gantt pie gitGraph".split(" "); EditorUi.defaultMermaidConfig={theme:"neutral",arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!1},sequence:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0,rightAngles:!1,showSequenceNumbers:!1},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'"Open-Sans", "sans-serif"',numberSectionStyles:4,axisFormat:"%Y-%m-%d"}}; EditorUi.logError=function(d,g,m,t,v,y,B){if(null!=d){v=null!=v?v:Error(d);v.stack=null!=v.stack?v.stack:"";y=null!=y?y:0>d.indexOf("NetworkError")&&0>d.indexOf("SecurityError")&&0>d.indexOf("NS_ERROR_FAILURE")&&0>d.indexOf("out of memory")?"SEVERE":"CONFIG";try{EditorUi.enableLogging&&"1"!=urlParams.dev&&d!=EditorUi.lastErrorMessage&&0>d.indexOf("extension:")&&0>d.indexOf("ResizeObserver loop completed with undelivered notifications")&&0>v.stack.indexOf("extension:")&&0>v.stack.indexOf(":")&& 0>v.stack.indexOf("/math/es5/")&&(EditorUi.lastErrorMessage=d,(new Image).src=(null!=window.DRAWIO_LOG_URL?window.DRAWIO_LOG_URL:"")+"/log?severity="+y+"&v="+encodeURIComponent(EditorUi.VERSION)+"&msg=clientError:"+encodeURIComponent(d)+":url:"+encodeURIComponent(window.location.href)+":lnum:"+encodeURIComponent(m)+(null!=t?":colno:"+encodeURIComponent(t):"")+(""!=v.stack?"&stack="+encodeURIComponent(v.stack):""))}catch(I){}try{B||null==window.console||console.error(y,d,g,m,t,v)}catch(I){}}};EditorUi.logEvent= @@ -12976,217 +12978,218 @@ for(var g=[],m=0;m
')))}catch(v){}try{g=document.createElement("canvas");g.width=g.height=1;var t= -g.toDataURL("image/jpeg");EditorUi.prototype.jpgSupported=null!==t.match("image/jpeg");t=g.toDataURL("image/webp");EditorUi.prototype.webpSupported=null!==t.match("image/webp")}catch(v){}})();EditorUi.prototype.createButtonContainer=function(){var d=document.createElement("div");d.className="geButtonContainer";d.style.overflow="1"==urlParams.embed?"hidden":"";return d};EditorUi.prototype.openLink=function(d,g,m){return this.editor.graph.openLink(d,g,m)};EditorUi.prototype.showSplash=function(d){}; -EditorUi.prototype.getLocalData=function(d,g){g(localStorage.getItem(d))};EditorUi.prototype.setLocalData=function(d,g,m){localStorage.setItem(d,g);null!=m&&m()};EditorUi.prototype.isLocked=function(){var d=this.getCurrentFile();return null!=d&&d.isLocked()};EditorUi.prototype.removeLocalData=function(d,g){localStorage.removeItem(d);g()};EditorUi.prototype.setShareCursorPosition=function(d){this.shareCursorPosition=d;this.fireEvent(new mxEventObject("shareCursorPositionChanged"))};EditorUi.prototype.isShareCursorPosition= -function(){return this.shareCursorPosition};EditorUi.prototype.setShowRemoteCursors=function(d){this.showRemoteCursors=d;this.fireEvent(new mxEventObject("showRemoteCursorsChanged"))};EditorUi.prototype.isShowRemoteCursors=function(){return this.showRemoteCursors};EditorUi.prototype.setMathEnabled=function(d){var g=this.editor.graph;g.mathEnabled=d;null!=g.view.backgroundImage&&(g.view.backgroundImage.destroy(),g.view.backgroundImage=null);this.editor.updateGraphComponents();g.refresh();g.defaultMathEnabled= -d;this.fireEvent(new mxEventObject("mathEnabledChanged"))};EditorUi.prototype.isMathEnabled=function(d){return this.editor.graph.mathEnabled};EditorUi.prototype.isStandaloneApp=function(){return mxClient.IS_CHROMEAPP||EditorUi.isElectronApp||this.isOfflineApp()};EditorUi.prototype.isOfflineApp=function(){return"1"==urlParams.offline};EditorUi.prototype.isOffline=function(d){return this.isOfflineApp()||!navigator.onLine||!d&&("1"==urlParams.stealth||"1"==urlParams.lockdown)};EditorUi.prototype.isExternalDataComms= -function(){return"1"!=urlParams.offline&&!this.isOffline()&&!this.isOfflineApp()};EditorUi.prototype.createSpinner=function(d,g,m){var t=null==d||null==g;m=null!=m?m:24;var v=new Spinner({lines:12,length:m,width:Math.round(m/3),radius:Math.round(m/2),rotate:0,color:Editor.isDarkMode()?"#c0c0c0":"#000",speed:1.5,trail:60,shadow:!1,hwaccel:!1,zIndex:2E9}),y=this.timeout,B=v.spin,I=null,K=null,J=mxUtils.bind(this,function(Q){null!=Q&&Q()});v.spin=function(Q,O,p,z){z=null!=z?z:y;var A=!1;if(!this.active){var C= -Date.now();null!=p&&(I=window.setTimeout(function(){v.stop();I=null;p({code:App.ERROR_TIMEOUT,message:mxResources.get("timeout"),retry:K})},z));B.call(this,Q);this.active=!0;null!=O&&(t&&(g=Math.max(document.body.clientHeight||0,document.documentElement.clientHeight||0)/2,d=document.body.clientWidth/2-2),A=document.createElement("div"),A.className="geSpinnerStatus",A.style.position="absolute",A.style.whiteSpace="nowrap",A.style.background="#4B4243",A.style.color="white",A.style.fontFamily=Editor.defaultHtmlFont, -A.style.fontSize="9pt",A.style.padding="6px",A.style.paddingLeft="10px",A.style.paddingRight="10px",A.style.zIndex=2E9,A.style.left=Math.max(0,d)+"px",A.style.top=Math.max(0,g+70)+"px",mxUtils.setPrefixedStyle(A.style,"borderRadius","6px"),mxUtils.setPrefixedStyle(A.style,"transform","translate(-50%,-50%)"),Editor.isDarkMode()||mxUtils.setPrefixedStyle(A.style,"boxShadow","2px 2px 3px 0px #ddd"),"..."!=O.substring(O.length-3,O.length)&&"!"!=O.charAt(O.length-1)&&(O+="..."),A.innerHTML=mxUtils.htmlEntities(O), -Q.appendChild(A),v.status=A);this.pause=mxUtils.bind(this,function(){var M=J;this.active&&(z=Math.max(0,z-(Date.now()-C)),M=mxUtils.bind(this,function(S){this.spin(Q,O,p,z);if(null!=S)try{S(),K=mxUtils.bind(this,function(){this.spin(Q,O,p,z);try{S()}catch(l){null!=p&&p(l)}})}catch(l){null!=p&&p(l)}}));this.stop();return M});A=!0}return A};var U=v.stop;v.stop=function(){U.call(this);this.active&&(this.active=!1,null!=I&&(window.clearTimeout(I),I=null),null!=v.status&&null!=v.status.parentNode&&v.status.parentNode.removeChild(v.status), -v.status=null)};v.pause=function(){return J};return v};EditorUi.prototype.isCompatibleString=function(d){try{var g=mxUtils.parseXml(d),m=this.editor.extractGraphModel(g.documentElement,!0);return null!=m&&0==m.getElementsByTagName("parsererror").length}catch(t){}return!1};EditorUi.isVisioFilename=function(d){return/(\.v(dx|sdx?))($|\?)/i.test(d)||/(\.vs(x|sx?))($|\?)/i.test(d)};EditorUi.prototype.isVisioData=function(d){return 8=y.keyCode)||t.isSelectionEmpty()||mxEvent.isAltDown(y)||mxEvent.isShiftDown(y)||mxEvent.isControlDown(y)||mxClient.IS_MAC&&mxEvent.isMetaDown(y)?m.apply(this,arguments):null}}return g};var e=EditorUi.prototype.extractGraphModelFromHtml;EditorUi.prototype.extractGraphModelFromHtml=function(d){var g=e.apply(this,arguments);if(null==g)try{var m=d.indexOf("<mxfile ");if(0<=m){var t= -d.lastIndexOf("</mxfile>");t>m&&(g=d.substring(m,t+15).replace(/>/g,">").replace(/</g,"<").replace(/\\"/g,'"').replace(/\n/g,""))}else{var v=mxUtils.parseXml(d),y=this.editor.extractGraphModel(v.documentElement,null!=this.pages||"hidden"==this.diagramContainer.style.visibility);g=null!=y?mxUtils.getXml(y):""}}catch(B){}return g};EditorUi.prototype.validateFileData=function(d){if(null!=d&&0');0<=g&&(d=d.slice(0,g)+''+ -d.slice(g+23-1,d.length));d=Graph.zapGremlins(d)}return d};EditorUi.prototype.replaceFileData=function(d,g){EditorUi.debug("EditorUi.replaceFileData",[this],"data",[d],"patches",g);d=this.validateFileData(d);d=null!=d&&0\n':">")+"\n\n"+(null==v?null!=m? -""+mxUtils.htmlEntities(m)+"\n":"":"draw.io\n")+(null!=v?'\n":"")+"\n':">")+'\n
\n
'+t+"
\n
\n"+(null==v?'