From 717b860f135105c1195902592f3e4c05c56954f5 Mon Sep 17 00:00:00 2001
From: Smidy13 <77650800+Smidy13@users.noreply.github.com>
Date: Sun, 7 Nov 2021 21:26:56 +1300
Subject: [PATCH] Improvement: Create Reference Left Menu Icon and Function
---
.../menu/create-reference.svg | 258 ++++++++++++++++++
.../Foundations/Icons/create-reference.png | Bin 0 -> 23225 bytes
.../UI/Spaces/Floating-Space/ListSelector.js | 42 ++-
.../Floating-Space/UiObjectConstructor.js | 29 +-
.../UI/Function-Libraries/PluginsFunctions.js | 2 +-
.../UI/Function-Libraries/ActionSwitch.js | 5 +
.../ReferenceAttachDetach.js | 32 ++-
7 files changed, 354 insertions(+), 14 deletions(-)
create mode 100644 Projects/Foundations/Icons-SVG-Sources/menu/create-reference.svg
create mode 100644 Projects/Foundations/Icons/create-reference.png
diff --git a/Projects/Foundations/Icons-SVG-Sources/menu/create-reference.svg b/Projects/Foundations/Icons-SVG-Sources/menu/create-reference.svg
new file mode 100644
index 000000000..0ef162664
--- /dev/null
+++ b/Projects/Foundations/Icons-SVG-Sources/menu/create-reference.svg
@@ -0,0 +1,258 @@
+
+
diff --git a/Projects/Foundations/Icons/create-reference.png b/Projects/Foundations/Icons/create-reference.png
new file mode 100644
index 0000000000000000000000000000000000000000..beed8f3e4c2e08631557a3b3d29413d151727956
GIT binary patch
literal 23225
zcmYg&1ys}T7xw^>QbNZ7=^-HuP()&MOi&sIjBb&TPHAw0pdixH-7!MCnSe-_(%mK9
zykCC*_dVz3oE;9|?-TdA&%K|UAo-U
zi^xG<#~B17Gr9fXJRgInH6A+4IXlO}Thd
z>DyOtaMlLnV@`R8rEcF&z(C}K_WET-@5|Po0F40(|m*?Q
znyM}rStdkN)99hce-kRT;U5B$EHa<$h=$sVyDbxT3+2^RO8?W@tuVypY+;o0X)?v%OMPkU!yJERVeS
z^M9dSbr&A=p=qSsFAGAw&f=d?sCgvm>rUutoCku;0&6pr$KH7DbZ2LKw(3V@qy_0E
zDKz~Vi%KngU!7a+7!s1#$foo?x-#;V);|)*=p3o{(2w-=JJ^&SM(K~+{(bOrm2Z?Z
zH7FzmUYb7ZKM6{Dv$PPn{*WiZF(}eTW6k9Uxqjtaon95uSAgto3tTVIuxS4C$z+!G
zJNw(iLu<~DhnCKjqXD1JM;C0AdQf}}37L?CT|M!4EA>c<$zB^Bez`ltcr#oP9F#T5
zN+FT&750VEWi1BGMemVSsoAS4oa?06+QX0(780UQ?e*_-#)oV!oRGxDhq0zx@h?9!
z4u?nusejcn%qHENIfubeNx_0QQFyL5M1y~Dz20gfuv+7#X@CB0_=eb0`Z)a>nphNr
zGg45{zmz_-u7QEY>O@W_jzs>|T6sP5aM(oSf;w=+#S8G`3>#?2eXXeW59q5MohtY}
z6DEV6q=?pctNXLaCRz5E>bh2HuRexm$dG%_^qP2jhHjSp{Un7qS>1N**vY>*QRv1j
z(zEP)~w(g~D5|X<107=)C4f8ig{dr_(p@J&JGBiP|(^
zC}vlwJKvaUXOweXK3hy9z9*wq?zE9;f4qM_B`aI0Qo+q$CtT7`A)qXpj?oy0dzv;*
zT78|$sf(RYuA@eLH?mO#i{x*u_UmCXs#R9mp}!pZp4o*zQX83Cxq4{F8YMaJ;6CXs
z^d0`gSv!;C;N3hY1x?gj3tb&zPCbeD~
z-gk~pZXsFaF&ge)-6W^50IPL7I_n#jP!-6>Z(ms491
zOhFMz5?e3#3eVC?$XSgkaH4vVT66P=Bz7!?Zs6z^po|0F-DPW`;Owi=h}BXd+W3A8
zQc05T)S799ge!moOl++P%F3#(wj?I9hKQP*PVRpwxHSD$zR{V>Jri#~cP=YS6Vw|N
zXr6%tfn*&MlK&i(TJ>nxzaRS!tl!p)%Ku}ZwB1$yM6yz)JpAS(+LN?ctQ7wU5-j*Z^(XvE^hcw+c1j2DN!%m;zq
z@@h6#XBE`#Pu&y=54k)75av9KFeWrY@m0=N_3Hwy**13B5DqiPT{7bIJYNoXf~8}0
zPk~WVo%b?P4uFGb%JKX(CPWoLj%8j{9%p_*?Ul3U?lFHdpott&hz5XX-~4BWKCe_O
z0IR9%mJkgG04(BDqkE0ewU@Ljr8PV_$L}d%k0+IpU1Hz4k}?73sz(a6sx_#U7oA6v
z+#D$T-E!}<=}{U8i$Q|?B^@m|N7bKa7n}zVL+pPG(%)Y5&VnxIP#wvhh6u*;-K)_J
zJ+{U}^&uA~z~t0~dgaS+l5}mKi4iousIqo_g2VzZGL+|M7{SsB>YPKwlo03j3^H{aDYugtp>3&qWDEsh!;O7(Kgg;3+psi>`u&MVEM
zq9+PA5rWCV02#lEemz6a;v6P|=!Q-1VL*yhj@KIMni{^>`=jU_JOCKNg&J}L+d6Um
ze=TIp%2>efe96J1F~`xh7A`N(D#*FKHI+&P0Mhf9L?Up`*HS`%J;PU#T$ToT-CH5T
zBNG=u2r7PuO~U8
z8OL^~Ja}Yx3E`?CIv^g^9$lomrdV)dEQK1l%v1I2gnq8+^-_2KuR%n0-o_V@F79uz
z8}1yg9LCsM^JwZ;4Q=7%0MDrD-2N4MnuYFAkXYh)Ncf9JW=MWw>Dy#gC^U+%vpq5&
z_5^NG(Wxq9Wl9ZQ%0JotFfD%BJx%^WQa&edEK;*sz`}Eze}`LI*7qSGB+N_i6LwZR
z>8lH!6z44pP9LNl`F;#7)97$a;nC5mu>Cc(QTV#&g$b~^g#a*K%KBu6@!%&|JmWhx
z*_;yNeh2mw)T74Nqj_LSgAb?53=2G!eWq{ZGTQcI~m<-ziklUYbY2e48@ygs5zoOmxeRj0&XItAc*Q>n564+LzD!XXWz{USf8yig
zld>);3wE5k2$Iel)=RxHbD7u3H#g-619pmI#+-wxdVG1blsmtGN5t#jq?jT*G$Y;&
z5OUW#B&ek#mF7p2@A%K>IG0b`1zDX78T}{AALhT%C@AprnBN$kRs>`Ox&c#pjbG-6
zDOzYtwfO~?Vm@eu+y6eIn9Jq9zi;HSZ0o_@yv6)Wa36)E2emaoIZ|PaToi&w7MWHk)As_;x
zLlqYVrQ(7TtvRC%k8IXRkAHvF+JD5K`AN$z(ce&6ObA;4GwyDqbdFSs7
zXXpBp-E3-k<+cDj?sh+JURfvo%Ix`
zyr5?rPOA1;ZuwTQQT~R%lyXiyKsm5_R)k2h5C4$4+i`|h=g0YpM(jB0zr9Pa3?Mjd
z9Ay9m*((lieHbn#Y>7BKwGw%vTn;XcMrulE@2?c}$A>?3zjcNa)HQwVp^+YBE$={q
zDD5m-WD|3EMNU@1%5lGDW6u+r4e+fR5CeeRlH?e)!4*c*!*7ucl1G2KN8v6209kkW
zhFqUsgHzi2Q%8*)>lmcwtT}tuOaDzAbDEGyyfyCLwpn%kdoF)Z$2@RgmOiFl2rmQk?gg0QI`Nc2Wg){Q_gH)!NhBjJMKh}3j^p1xfJlt
z;zfTfO#fMn3pL>4JOiLR#$-Wy^3!NJbAh=x?RYL34*=+R0+|5eQp8dOP4b&%(pbwRn)(;m2z_u
z5nxhgZg`8*B(a)g0?F*wuM4b8KC(K44qqf^bK~A~G8PlG_`6}FWSPD;$4B{}6|VHm
z{Mc-yqwgV%WS9Jxu`Wu%Kdn~$1W?t*=#c+JUp&oEnmhvKZm5oA-~gUKr~eSLW}MDN
zX%%A@3egUKBC3Gw!%?+>t5nL1`%i9skGcV-&s*mNtEyL>#{o*jq+Z=c;y;Okg>cwP
z>v0aPgg^1{ZCeX;#MQsQ1|Rl>=70wL0OXVCcsC~T4$u%4oHO2GVfg$Hz})zn!0#k5
z-$Dz=A>d8?l1-|`qRHI5e+2K&=GhjmD^fr~C4I_ST7W(zSi==jip2%j`M47N$(a?h
zhZiu2EEp2WL1{(FA}7#KZ{U#n_&YJq6=m8{&T~YUB)Tu5uJW8Lp^3y=pBV8d44(px
z$a;;Kn0lx(rKY2QC^p(LSg_v=s)@=K$p}o`?nt>&G%)n}zW$W0qgXWygCbX>mMuqS
z_0m4~-fVb=U!7BQwH(;vTkl!~_ptgk^xa4?zqt1qJsXE3H`odWq4{`wfrvU}mY9h3
zpIA>bVml?)2l%RuRFW0IQNEH7?)Dg3O0jLRJUEe#{AnsB%Z8Y*^&U^T`dxMeYJ$J}
zHz`pO#XTGF>pqBYMerZ#Bm7QX6u{@PTO(WT*3uXuHpU*=_2iBVb;tTjo(l$c82CCC
zx3{29gUQQeo#Btx7nEDC>u|0;+4+sU9$&U<);2FBUNC1)Ygi|QqoSh#I1G*Z6dY8o
z=u@$Bvav>%Uh@D%6=)p>rTRJv*x637Z`rn9=dQ0`WuBr|D-Gx+?pm?KF(ZupRq0T*
z{h_A$jh{9s77smly&qak?4uxijX#HFC?LsENo6=CRL`Ld<%f_!`Iuv~q3?D+;qQWK
zO3c@PrAj^kLQV^Zr3DR`>(jTpcK4rl=SOaXR|gS+8V!J-^rri?UmWWIdj^OC*xUkh#JNpDt#D9(udlXITqrz5?=?2p*35`u)OEGddY9FSq#c1)_kN29o^_`<|Wy(rb4ZIJw=F;vMP9bsD*8zC*fV
zM}naBX_6-vy*N_NbEj;;C1=cBL_m3ZkMw+e_ZdCbhRPLx<$9UdZ$0H24?=8ThBC)>
zBO@kNKzN0$HK?_(A|X`DNCc7pxT4%^1vshr#kI)VD0RPU;~l{PWaoI_%_cNEIPL!+mdLnpc@v;$!7bWOf2z{;!i^Vq{E*BCOs&QhE7214UO~H
zvOF_G4U_crJ-)LD-5>D7XON^^Jm$sFyK_ZQ`&WsDQ@?@B>0?l`VM08+`GoI}+u!ko
zvc?ieh(52|8wKFtRfZF(KSIi&+IUs#-VE){=ud5iXQ0u>i-d3rFBoKyIio~i*~a#G
zrPJFdX!3|BsfH|Jh`9{uVY?F_xXL9*r3fAk1HldsbQ>RSJ~N#p@HK>jQ5=C-Q;PfH
zJ&j>M-W{xTUXGDXzq971smpz^-L5`QK#?qxv$hUgjM*JHeaobw5p?p$Gm`^2>e+1I
zS9IGwNZ6hRY8ME+>)2=~x|glhpGYYw#TJ^;S3w)!GP#l}pi^aC>>Smw1ji{9P$xWp
zZo}mFOTmd>XNR^%*QGz9+hC9|ht1H~7?66fh~4Eki?zX
z_xj{;iT_!!J6|xS6?ij`Ju{eMxIX{xd7wYNDfO>Iog&SLHjXlub<3Q>Uk+61rK+Ar
z-MH+-^mCX22A*#-r7(ng4D~uHDFsT14dHDH)+Dyc7wSZPkr11r=jPrC*QV6=2h>#
zK(+iC{6a05Lm@|M6;QcPG$+(jZ&Oibtj3^K^vkM$m-k5Cg3RD_gk@5{InXpXyRD2*
z(?&|OmkO~*3-TfLEaU9c)ehT-F!flW%!=jW7|4eJ79GIQ^km>&_I(n;swV)pwX{RLEFZndB2DSiYoc(rtELL{T(S
zw#fB=cC)vWEv4SsZk47`fYexVsGA
zz{A4{%IH8JckE8q-mGC%Wog3@H7?!#wRa_3F37qSCQo+GUzd$%JvGZG#901>H0m@z
zzj!Qk-oxzmBQbpO2_)3R7(*Cw=6CIEW@a~r#96_26bled9YwlRjAy6eVUQoDF1tJV
z4KI%q{dyGW-R2v*jMGD?06F(K7?j&oZ>%%Q3N>nPzIvs})Z8^$XZ6cQMS}ijJ2Kzk
zRNm^&l#$`}tp8=iI-Mafja@1Gt8VpiD}4onue`tLuxG|g{&`evMMbycn6@U;_Glq#
zF;_*xV5E+ug~%|;zIhq9)>8_*Sn9U&II5%xUY*`_Z7ye#f&T=VRw}7qT;<4w2C~=_
z2{1Kw$xPftP`=xUXR$Ev#j+ryPi3Dm19AOD4_69-L+mlE-^Yarr5nOYJ#_+B;l5EaCHb`W~!*nGujkiyo!pR+}wX(EbJQ)yjbKEIS@vz{n
z?h$0e$dBe2A}&Sk59ip?!1&eXWtci!D)S!?DMVD*Zi-?Yh>>BSLxO>c90o7^KUvU1
z#LxYb7fo5Q6X9pCX;Z0J|7w2TZS<#LX*3z!5U%HLQ;=e2r;H!D%1w9}TF_9x|{
zIHaX=tSZEAqWg_#HtdUDMX|9y6mg3QLPHgs^vCVzGC8;oj+|4op<75|MY%OX;3RML
z8$hnS;=#wZny;F;lv(vSCA{X*K)7tBU@(j0j5=LzeO?r%EqwkJFRQt>f6H!s+2XGeAL%1sLow|V?*~y
zw(VJp0Zk=%XWfy~+`D3yG4Iyhp}^Dl(JOu{ea?_BFWi6}WrfR%*P26eg}c#`EP%Aic;#kCR4NWo6}N*m$n+
z@)T~`?^N@hWPM%uAFbLtu~OlcH3&Gux+79XeQg5!F@|u~h)w}4EIi+k+w~)0+UtSG
z>NE_dA02i?Tdv=%HRo-nZna*zqK(`-;(MroI7RyolL7p-(k~}3o4%>yqMP}A&{xv#
zkCT2=_~?Bvcc33{SNmn$!QjZ!KAx82aM#dKYH?oP({qpT`C+X_eb?f@{r2r~wSj(A}q=-
zc-)||Fh*J`nHl#p<9G-c&osW{MR$qrhAU}o=s?s!?Cm|g@~NThD={bu7xOg5>l4jn
zc+f<#*|j;_|1+-S4|)sc-dtOVpP6lXQ%95P=)5&@aALZb21$KrQIgU2Cdv18V^8Mt
zAt0EZaI;oGuZZt2|MDz+e{7Z>l0I^=TMIAI6C_woHnU~v`25sZk~r7*N9%MeXYNJf
z%7D6#64n7D?Yui9@bin+Jtnm`B8!#p%`NMnWKF!YpKSvCn3KU%`;a9?-?GV+NbCQon)gf(mglI
zru4CUCOdW*%*dmi<*KvekI5_n+dQj3zp-KQy!_w&Fm2VduRwKtZtR?H`LnlJWA08~
zwG%$L_snboid47?c%N@SB^K9t)N`G2Po`HI9--a8SB98m}_Q3f9$;{ja97$Kr
zX*&)m*uu~4YX-6Rd+p2|VqP^3CeH__re`0&d&tz^>*(o8H%)gsr;XKT&ae1ZY
zKJB+WgTc{JL%Qq=Qt!8n&nuPQ2J(nQ^ZRs58#O0m
z7ADx&*JJCsv5>jHRCRTtx;NW4@$IO+4zntdK#lNmzOaFsc4q`bv+Zn3O9iisqiYd}
zB<^>@qFW}p_G#bC4oz(XO@daVOL+4*8u|qb)h!RFBkp!ONnF}$c5Tn;O}hIp=pEj&
zid!e(3-^ZUeYNxnU-~(0M>m6b$+}Qr68RvQQ@R`<;`keD;Ew-)JXpSikM`_m&{C6We}yRcFp8
zD(4B^_X);Qry1%!ogcVQ4U_OTCPj#Oojx1UnRI*nboVb$&1#e3_7fX!BB2P+WOP3o
z@%xIB((mJff?;z1uC!yCAyMmxhaaWtJnA@Mo<$bZUVo0_B&s%F;N8u7y7A%VJ!<1j
zo47Upd!0DnrOUp&QV2sQi*Oftija&}2|G+26vcJ1kn}K~Y*|WMDsm+MYur4`l-OAs554P<_Oarm~fNN@A}MWP@(##Z(4>i_>5p
z95|ZFcc@<#NO)Y$TariEn-dh)(_^GD=L;Chr*|ZL%~pO_`6hjrcmeI|?s>BL+m|Va
z7%@Q#?oVi8|!5!}B^b5wyX4BQ6n)e;ipFP~>{~?<9
zHIE3f+Qj@UncRndYesdZtj1c?L-oLrG9zp1}mLBY+SLfm>
z!<0$tZu^HA8}MGIEm2TLQSUou)xKg-pLU|ZOtD;H{iwYnqw!?eif>dy-onpfUL(TR
zraw&i)Q*%F4==z9^A$|E8?8L)Af`aKoLd
zH|1#jKVJ`z42ew24y^@=SLrH)0T>v^5K4Gm2#hqIZZ)Zqlz31^3#OmXl34bi%Xt~{
zTMcEI`^;X?f|dk4PE72$_KY7KlU*CAVH(AF=|s$4rpgk}-Z^{^@)7$bQ>@1xD6y1(
z)p~GViEykfFFX>Ji
zxg_r{%bVz8|04Cl@wEMZ1Ph7Lzk@fwWlZuzA}=^On|MNJ@xF5Wm-Hf3Lto8nWeM1S
zX!H?DI(HE5jhZOCu8rkp{II|#g=5R%#&|4AQjfqelxdM7ddfpXiR)R$Mb?KDI)%c2
z;|-Lul-d*M;T!28#Vdw4)fK<!Lmg1y!XG3ztb6g}`Z^WqwjyRTpDChT786q(Q
z4ggQY7$&cfObIV{O?9qfRl68I;S$c|b6nnYmng}TutXJf;rp!7-E{r4Gj0PLnpy$z
z`SDKD3j@S;K`08A(cG@qu($G^Z1d6g+7QyJxW}?QFX*9?L$-^hpu5yHZqn&~G)B7C
z3lm^I80E7_9&pHCHb?G)E5l;lm?HbP6UJ~7L|B2oEnG&GO`mVE2Un4gIz5%?A8pWh
z?$2+)*yv->QWa17tnOLVK
zEfCFfY1!1DfF}1uOGo}_MmcbP(0{o0BMJc$O(@vn!4S8gp%*p1(PCPYhlN&W2|20U7KkPuF6ACZ0sWZb}TXlHA^K
z2e1A!*#IKDaC%W8^k&ISfZg0@Q|SCZ)-q}heD
z@}16FVY{V&y~#~uWoC&IM_KZP2}~t?YNFWVL~c72hi+#+Is9Hivy(;A_%`2_L(X
z`hz80&lLTyP=HfQD2}OlBwle-Nu+i-0i?Q^)Zn{5=P0~B0bNmj5g=#8H!V~Wcu|O
zM)?t=dM8MOIYG|<#SOJV*U6-eoqhD$_u1cGoP1yfv=j{73gl=$Qd~~E+{sXES2rOf
zLDMiQq4@<$1(VU2+2MWsz125F@qORAk;yDZI(4swOes`2YbISjqMRC)5hT0$U8*ojsk&V6
zz|4K{ohgXW9WeFb#*iivB&;TqzFXg?#f3OS5%683y?znsk*?rkWCPe)+~j@gVux`XVuAL
z2})c@SYFhwgv3sbL5@a8?4%c`x+l;?BZEPnZkHsmfX>p_sa-q@g!V_X3m@n+ag`gU
zK7D`6k|RTI!52%MN>nt9+r^h0G^W;je%osvTp
zvFh_tK4JPMMeB4Uj_dj4kT5s35Ew;dYRFmw5iQF%&xuASmw*_>H}}bVu0P|Z2Cp&V
zG_1BRGtf#D%y}hCkWqLB^vGUxXq`a{-yhy8ti_8>6)v8suc?V*e_T??3-JzjkbGys
zmJ-j4My)b)1IWsDQ>#Ij_d%~?#}&Z@vzlvIhnp~m31@@yZ5t0pd^Hb;tTwU}(Z4GG
z&Ptt3_F3bYxex>`ay9GQCyE#>V%DZmwKCfY*&0}j#m~lFMS{4djUMu{ZP}$3QVW;Y
zHadRlk^tCJwiVmc0*LB7Qr-sXyp^K|lt_84?GuFlOf689x?6QI63p#IeBd-x6q?TI
zr4h_)dOn_Y{4lR@F$o!pR|SZC8v#_^8jj~_e}fEZXKf7l06(1}asTzuuWki)b^N5(
zFsWi8nuV5Aj!M6n^Ja1d5NO%-pX&2fUaL!mrh)6!OJqFj_fZ>jdI!6$R=bz9#7UV-
zy?*2N$w{l--3XVN_&`0x5_|FGWZb5+Iu%Bh98INw?)=96h25EI$fIXzT8Z0rFF9`K
zCykBa#ah28F9fs_&T~2_gD7=>Jr1HS^?j(BOm3GbsLR!L|rsW)F>lzfVt|s
zCI*Ao*&m;a&v?cyd_2>Nv&|znaLuLYq3~_G3+@qICe;
zM$B^+<(LjKfL$v!POrnx4S@joAF$*z&5`eYlJomb
zF70iU>D-Xs3|(EI`s7~gu2XC=8HLlZyNa&^3t0%uZZpFzdX^l}#-4@E&_OD!hCg`^
zzantjE!QRaWhzzdRC`1~ClY*uH0OvVF4fVsfa9Vyx7gWxG)SyA?cMdCe5v@
zcLh!ffLj{@WXW-uhT{^~cdBw44OQAHcpm{&|E7%d_oS?CW>;~%jo}1nBS{TrCGy%D
zmfNWGe{W^}E`gEPw(z@%p#J|}W;waEO2EA`@ItZm$q}Ohz74J{D@ailq%7@^>mBQ0*gF@(zrd7_9LhOhP$$mO?v8IF_0
zjx%n7RqS%4owj}uBXmL7g(lWb6fDs7wyo%~39Hg76P)};`ff+<`nOp?D%_R@--u9~uK2~-{DhF;n1+_B^5lfyR@xIatQFHH>
z3ercdu>hu$LTz=%s}x+Xt)iA>2?soMxJ&TCm`ME72YI`-rKlQSuvGvgEDl7sIqo`P
z0Q+V5I-@^U0~YCwBm6oY4}Xojg#lkc3L^z;cq_Po@b;=3%;2-I+Wv>@^)bYI=5Bbf
zG|07C{zK`=sG73Cczzesdok#EZnmEFQKBKzIBA^&EGC1YU6f-8Mvk*MOeWq0sZHJt
z2UM()UBV!swDAb~4R;I(gp(4LwDltlJ6)ktIdTT^2NLp5j=%2Wr)bLAb&e~ndQl&J
z%^4Y6N$YEpMmCWeS5A&^zhA=9W}&RU+LKvYs^Pj5yuW8umsuyUTGnZWD?`Zs+
z#7|;X(|m)Nn!?Km_TPMmqL-_N_q_y4L5Fd;_u!XYA#D-aZPE5VzPZy$t~_D*wXCXB
zGkj!%xeyQ6pMSt40V#IlmfFYli~ZUtXn$Kh+4>Ig@A4haW^Cqx3D85`q)}jf%@cmW
z@14T1pVWiqtT~ZeG0lJa2?!PTn^e7BR{ns)*uB6hO)QZo9RBSp=hYGTb8ee`Iucu3
zpKjZNUUlR@SVJ=`L5b;OiHA|JwWpU{U`7Mx8q;)-$%q4q!AwFUI==fqHeWD`NG|0j
zKY?fzX!#8X9Etk3GUPysDPu#Q0^sw*%F24#44_-++K?^HlsR@43pL=&{)
zU$cq~RMWeP3~&%3jW)CVmlAppt4_fNOnrv#;_myB?FRy#mBx@^P~P7nr6X4|P|^9i
zB(bBHuMnm8IU$i&FiMklQz?R5qZJlG17r$=IUwuO%q?+&;Ry2w3J7Wp%Di0bzci*i
zpx<18B@X1%A#CEx*Mvb5*1iJ4NmLjj56I!*V4*u`Y5m=+`8|LN%8Xsbb1)=KaRI<-
z3sVfot~jpty{4!70M;($cGq(@QLRc#Exjac7FmCYg7Hb!1FOTr@XK4-J(z|Bc#E;75-d|QhmnfPRS!a?hzI+fja(7kq_CA?E^gur>P4T
zXADx7C=8KwYl2NRVLOJEGq2g$#ilkpdewlf?kjP7ShhokpM`uj&JTG62@~1_va;BG
z)MGjClcmkONM9ykU)kvvJ~LtFD%s29g#21Aaze*W}?ol`iAON&8ETq
zFEidh1^H`4A~Lmt*r~F*fD8p6B#eUya7Pdr)PLc-CZo&;fEAVRP7H-McH@kkob>5W
z=703L^J^MUy2Y(p{jDnezY!T6m`Vto00Ep}=lcs8gsBDxsO1O!Ru?yRZ=MQFPOPqz}N&!FOiHzsW3
z62b#Q4SP%@6HY&N0vGo-gwyw=m88aEGDEZzlQLKu&L!}j{R0*nuE9XytZ&ycs-_je
zAb(6dxA6x^R?kOvzE4ZX_(&WZUAT*{{NCI+KP{R^gIY`@(@)=Y-VZ}Nu1h-(|6pC0
zfVaI`JAgqL!w#Z51Dq-@cNJ!
zs%f0%7xw64&oKwYnklm4D^X*R!GP7*5a!yO~>g_q$vhA;BBVY4V+nb=QCIT)^cyfh9-jNUP2
zF!5(N5#M;LVmQjYEn4n7Yaowjvfsvn!(%QI&)np}o$-8JuVdXmhf)uK77d@n{&0GF
zF0hWwN2u4$NM~*dmLlwPtDsOH3WmFwp}Lj1w#{KUK-)=6FU6+@p%hMe)ild0uVQ5E-sm^Pctnk~q_Zy;7P$J#~6#90&=hQm?!Cy*WD`GW>VDbiyjvH6H0y
z?3)}{z5m9gk9<82dw%}zuyoKorZTofrFSW_Ic~&5&DndW;imSJp<*hrELE;yysL3V
zwl2b@cWT+)cAi*?0}(rnG9d(;p&`lxwyKB8^}R5JiN2rW*C4?MeddPW_3kU+6DX8%|
zIH+;FP?u0<3^yI@rU(n|koSIumn#ZNo68Fjax1I95(-?{`upW0ere`EiJr9k^iz>j
zX_dbn;7;60iX$d1CK8pRXM35?m<)SySAyt5Xl2c5S4cPJ?G0IYMr)D
z{Z4)IWzU5BK>0B}kU^r5Z9;7m9T%=LKqezvuJ#a0pr&LP2I_JUUGX;T+#l(j~^&1Q}L9g2t!oVt=EqAE8G>PxR*TuGo{
z;;}s7#P8)epvlAsG#apQnyEN+8#~Y=h86rQeq7wYTj}f|E@bLR?n5}7J4tX&6ov)r
zn7VA>Ff)P^nR&G!#m@G@h;_%R=RwcGiFXHq16Nv
z!XSPnRlK;EW0jaht3V(lI|-L8WlYR|6-}^@4B0qy>K_vHZt7#^zHENjd@<~P_r_Yo
zc@w=L+30Kw;}+*SGO^o5ZCyOu>cXLRGxr;Q#z&e;{E763gf)GxGzdft6GNtha2YV<
zo-dmPRvxF84(DhzIh?5pmWr>i38HcT2%0*MwE6kOPok*KI;B6}w@81AW`PX03WiMl
z%qI_7V*@OLBt~eNB#trWwa@_$-E_+Mr%b$Xqdk4I=rC+qI^I)TAcyt};7yBQFzJ{2
zL_0Sx;}+~fsuUzF9LUEjBnPN*L)vvXq=T@~%hR6&^A^C#bc2)5g;4(33@=q|Mg?F^
zL$Ri(k$4VtB#68+)CbyGuoJs;uJql?6MRQbh#@6ly(q)xWeDbkW@IQ{1C35t!4FeC
zE&1f=AN5F309DxPQO?3}qc{dANpcfoGmJUpINHLo(4^Bhsu$*ekRco|T~Di8DZ_Ze
zbz=-6B+Y=s5g&$V9l#NaMMEE;U~R$ncdCrol+c797g7?~T~3#!sKQFWNMu&9@7Jql
zp)n{h-3!2hG6jaB?QvZd?|wm{!d;~-4H@5J$Sv(GLlLUL){5AS|1{D;V)$7e9xyh@
z9^|UO@)@NcR9>#^Q!1N|x&wq}ZK|-BbkF0_&;?*ffRXn`(r;=Ehy0;fQ)LA^ku&Bg
zQ2vCu-eqXstG)XWYufQF$YG>KT*@fcyT#Om;pCdhUQ~5v(z?wV^b_doB*DVvo<0y%
znw?zNz^~SpPd4ku*Ky}b@yiQRqzc6oj;(TB{@}d-$hrQIc;Wp8F=Cd92Z6I-$h=b4
z8!33J0Nt&^A)6s+<2=@y$tVqcAyX6K^N85QP9^J2|EHA1pfWm3RaF)UOE~>+X$lQG
z%+p{ahkfO#U5u)})wI~=g<%rsJuK7~U_gke)04a|m!3O98Up};EPm0k_joDleZu{3s`coAW`kA@q%2|$T%AscZV>c~~
zaw+2fx5xhiqz^ayzQoNecX#9RKrC%x9)eqFXt6MRzu|Mcat}>dxP%+wM^d4-Fb%a2
zdkkT74ycezie1)5d``czofOw7c6Jg6PICnXCp)M~a{wWj7}RBFEq_n%^4m%^zuS4c
zKN{-n$oW`^E}zK{>&+>PA2Gl7}BUmWGpHHXFFuw%lAku$k&8Oj;uvb+gg63ztz9TOWbT8B
z%+nhCU8YR64`ry+AQ?$;lE+lTx>q`=A%XalSvrVRf)Wbs*S?4hkq}asYV}HMaL*ue
zrWERSi9RMb4oD7qpfBj-r8>T~7J|^fy#-nfIidLTOZj^nv|XIDU_3g^9)$K0{%+m+
zY4)O07^jL2ElnQ6(KB96}5IrrX>w`3o_xlbYw15Y)KxP)GB7fJI=r-DIUkFR?
zzMx;;TZ*WwvL|Zt9%NwAwwJ?n0ri*Wo!^G(gl(wnGXzpzA)}8YwT1^ZF(*tXc@8&0~;g}uZzYK
z69?C)3Tch_O8R%_WP<#0dGjBaw11&$HiP#BRJxe|IPS?;jUgesJW!-f7a9onmD%eH
zarC!%CsbS`uLH|_j)K91vje4B9mk8Th->jyVk2jmzA{b-8t%VE2{OTJP~LNo9oxfM
zo;!Uo^}1pCXE!L6w{@Y$h6^Ft0HUvOv;4HZT6g89QFT9h*{1t*dHyAJ5NNaOgIcnM
zk5)%G1{Li?8qBVosTcd<=_nh^#Bgv;(0|Dy&j2jYw#~`W03E`G3$UmR+k#o(0Y?TOT_+ogdrc=j&n}~3nE#|2;>1V
zg~AE)9=5*88zV0J>9)jet5=I_VS%CUOHzIR*A!%?v`VOco})*H`J$-}c+
zVLb2fm;bUk5Uk#_}bl
zW@6t1H~qCBjzC!FdB*xZsg1YkAdu!g-)!ru5kY~*T^asgAYzxQk@L;yi3z%4owo4X
zHIWV}z}UZo_JlLsk0#TBl3*zcso-Na{Dv%3jZKZ7%PW~NKAgf0z@yN34RJql(F{#%k<>AXer^E1uDaDim#=i7HbBT=!$
z61k!iZTaLIX<2zd^Q0`0xgkgV{&7yf3HsnWTyacj`YV$=i8wu+T!BY0nfZ1e^i6Mr
zrxM7JKe?StO4+j#t-(BE7n*SpS0p~@^0~|;pD7gDsy|H8VEljQ9=}G7)#g0^@a1gR
z9BN$+sY(S67{lc(FC8Zwox&JyH{qoW41j7X+VJ(}J
zZUU!-99awRT{UFY(j|3^!0@vPuHXMFY^wLOD$LA(+a)jtcFseqh?Og80@b!mu{H;d
z9K9rBWLbfb58I8zNjBIZ*WX;$~vh%jpBujQe
zL`d0pS*L7$@4P?%!gqd}$LpTgInT4)bMJkfdv9yt`JFwHEb*B>1gI@$vgD*MoUm&I
z4)d=oeKNEStx6zsq>WPkhh0?o+aMuSoUSypwYkKmK*(G35LaYGk9}Fj5DPXTf>G`7
z)wHmF)mzv}6X2d0CZz6Qc(3h))4w8B;9{8=1Re`_eb@R-Nu_j@5F#EvLA=J!DT=^@
zDLyd!6{8V1g&RrDw0a7rf>Q{QY>4Rxh#~0X^E|!~t^E(1;gV(qv!EbmlMn{YR8&8>N
ze)=|E^smeN1vWc!?RBOwNzxm0%kAQCXAL;Z*5}zN6yK>nzF(d{lQhNLXE*@QoUg)p
zksbtbHPW4)hl-PrYE3UM?id#dU%+x+pk0^!9OssZZfy?jWU#
z$EK%BH4qRRF>*aMwGJ9si8MZ45Q>xYY^2FM){oYdV^&i8JmyTNuYBPt%soCSXDISC
zVfoUPnOO&7Nx<;9AGBDv^P??9hj;kFZG7zP-0TU7G}4pxM~?WP;-JfgUPp#a=DqDI
z-;MHtc)t?1;K#2rU5(w6yrq7o?EBUC06}7Ew>`TQ??zm0Hfz9L1&!ff6j)YL*)Hnu
zXb%|Y!KP6o?`Yr06N(71Ua+~;_a!^;MhH77Ek~IXyLUf8o)T%nN}uvo?KQUw0^wY}
z+d{WNI)tAMzuH-HbhvR5!pK#76PZxKmvM`2Dt^H4g(9%go4mJF*){!RBQHvuP
zsSB7dGGHOdx+xsVs-ydyMI;(@*Ky=a`Gl2tuy=V2lyx6>N9RsRB6+*$UA0Gh=zyic
zWk9|SsZUZ%9y{!MopoUjwdqGX{J0ZT*0W`m9DfA<`=_&eAcs=_%paZq*P4B8B=L!b&=z&RsYraLu2{6
zAHrd;7r2c+#=^2#%Fl$0Jtgs)0%a~ANwx;35u~wjaN0!$uH~D&aCBNxpA-@@e>Qbx
zJh2y?J8)Fc{sN*9*UjY=!zeyRII+Q;4wKN`3O{Y^=Zxi)Ep8#iW9$Lq^E%63ppGAi
zN3z~9$0+ipv&}~^BQgMwTIr8YH5kWc%5h9eAYit1U=ahogd>um
zkd3m-{B;sUL?uBQ8Po+f3J8`N{*C}JZUg=;S=r{8CxC$(Tm_3*0ei+-5@1;_p#MW8
z=17tb7XFl;We^Fl-J^)eraPG|aKI{_<=>QO<)2NhdZP`h>~i1@mNNIZ^h#WKOe!jb
z)JSK-qQy@JnZeKpFMRhp0tRLWVOcpb2dE%LdJWBS-vp>=MAuu=zpm)nSH0GZ2c5&9
za1NWI$B;U_BncD&6J2le1TQ|y?J2QXXJaK<(7im>@E8-4Yi}k%y!Wmz6>nUCn)K!}T-ZK_YGt!}d2Kw55l?Gz3*K3!9}2uva0G%6
z7e!0|3GKXWb5HKJ`lKe45j?y{68SXi21jt>L4IEK&|q@(WI-_a(!uh1y!=%yEisYH
zLHzb7x?j0lwXYp%0NpFgK||ZIJ))Y&dpj@NC#y;oAH)!}zfukMn5fKk5a=3i4eH$E
z_?-$$Y@%FwaMtf{a9=dAr*2~U^_O8wi7Jj+{&bbKf9^K|y(lX(rSnD7v7(5}K(KO#
z?1Ze_P76bG)`3s9fKf=h^~}p7x^%hu2FBt6)8a0PPX>&v+zc}18WIu`X0tAq)Yw0_
zt(|uO)BOl>CMrWlJKI+GB#<+FD2|92xz7WhNlFKUeB0
zj|A?bm`I&p3tn7eCZXGtsWO3oHps6$45!0j+#ZXIjV@tVZ#|^Zi9{ySVeJ}*?y~OF
zyW7`LiW-38A3DYBG=1|7*$r=Dbc_m**2CEvZ(=kXhw^Q9M3_o(6Yqq|`tdz&l&pxb
z8q*7>5GMN9Kul?Vsiq4MBWX80K|A4k!vt!HDpfvF2a7}ldsQ*3tQCJu)Vqo^c#!ysT1HXtYX#?<*zKP%PKs_NNE3IqS(RLfGHx4EQ_wU8`$$-
zvs!;CVYwk~1{8yqQFc!+!|xet_NQ_%ZY_V`Tl+)G`#Q6%Uf4F)XMU?nnij_)lXawl
z!j2fm@z9MFU{_;h
z8r64HzFug4KG3o$J~nldQurCbuZtp^Xwfl5!r0byJfl*W
zb9tkN3DkDV&Zx4V4Nl(j{2+PYIf2KE(lV1R;oBY`R?EWAPDHx(sp0?`%Fc+;e+Ewe
zvO)Uk%U{1FR5x`)UUd0Eaw@8Xlcqlwc@73F(#wXx@#z7t8AKHiY2^BQRqdO`1!Qv9
zl$Yf#{$u4qHUao4d{|>K50x^z63L?T9HRv><0At3%#5rhRtgIl(tn12x0oY=`4$|7x~QnK!YLN`
zMzjBh(cQm0sW$}Q%{v4=;TDFPgG)94xdOaYb?QQ1;`69qilJJ!5pveGmH+NqOf)tB
z^BQ8~YRvkPD-Aq7UnX(3(tGcwR$PNti~?)GJHo?3F8|&$=YVqWSR$Xj9Lji+QxzP#
zXmDd^M^W93QqEoTZ&}`(k2LQ0z)WFWc192SFTpK!w6~iNrv_2zLj&5?IrqczZ^t|R
zPxs#h>W^__Vd^QMcT%_{v`frRZ78Z&CyzyNmx?3|n*5DfvnZ$A8`;Ra-j9MWb#!ch
zQDSa;a=Ks2fGOg#rNTl32bFo@GQi`>jtGCbli|{PcWcz>);E)Htu)O0?Ylp=4pe_v
zvKTRN(^w*#wfqc|a-7wphip6c_E7wn1uAk8cLP3~TMkb9B^9%AKpVh3QI#N?ia6y=
z#7^oh=PUX)p=mEjtK?5Yw@P+VPG$h~J`eVtNNC1yx5t5siVq2yHX41_D*^{^D|5CY
zYyGOd{S;HtQ`tGfJ4&v7x8C;V^kx}PAS<-bhqbS+&lnytK!{QJ22{0X9$yee
zSW5Bx+BIX|TbnNU#WzbW6g7?LuU?6ZHeL<%Bxvr`U~7ok
zktiw{jJ${wat@B8WwXn|TF+-5P~qizJqsGo2Tg3RPt?Aa6#*%b99cS?ZFQ`rc-5x-
zt~(r8(Y<`W-QQx}-~MiJ`{Ag?ubf7Y(`nuvLhpSOTB2ThwBF8eyZgvRcatMBUox}D
zJ;`{ye}D;Oqjq(3f>63jS>f*Pt`e6VF(er&;59Yl{x0sKm}~m@J5j>J5{+`1_A2?C
zkycw(n?Dh5SBW**?0)8)GOGVDPlq2l=|?$Irq{pU5y|QnKc`w^zCd$B2aqaMHbMS?0RqWn_aSaT|@2sC|P7v(SR(sz$Zmi0DVl+
zm<@3hx1r}@bM-Ac;&S}5yVgtUoE94xwsUm+{RMn9Xl)DdiR`<*gBtv6Y1)SHP*;PJ
z1+HZdiU-09J;DuOF#taPT~?(o>s6Bey)?|Ylc!2$!1m*m>mSTwDC&pEz5PPQU8ly!
z0(;RpJk+`MaF8i)e{5tHBi9zbT>iVH>y(JwJX{c-2+knp$;c)qs`>ZEkL8j>|4>?=
zqyOGu46+fa^U}Q>eTgZw-j~m1GPRQiHgPrqL!UA
zl8)sM;&vAI%Bbrx7yV;Mgrxh3YxVcKFSQpNOI|-569wX+s@erbD={v
zQ7`_AZNF3R)H1t%RnohTJy8Ys+A0nJpngPO?cM9m4k7@V|ByDj~onz&U
z86ah0UE4vKn@&Wn3$t#==wZ|=--kkfV2Z#KaaFbtp
zWufXx4jh7(``*skj*E2>-f_EXnw9+21eO@i4i#eFAJO$fF>U~uvT2@73DWcoNlg0!b@Qt{a4}TA;nQ71>>`AsNB=C*
z?b~*HYI;#!kl5N|3-TJI9COsJg~(q$J7Bwa3Eck-FAf#rlLa^A;6|@IX@lD@gHV27muwe+@BznP optionsList.length - Math.ceil(VISIBLE_LABELS / 2)) { selected = optionsList.length - Math.ceil(VISIBLE_LABELS / 2) }
+ if (selected < 0) { selected = 0 }
+ if (selected > optionsList.length - VISIBLE_LABELS) { selected = optionsList.length - VISIBLE_LABELS }
if (selected !== lastSelected) {
lastSelected = selected
@@ -180,7 +189,7 @@ function newListSelector() {
if (pPoint.y >= upperBoundary && pPoint.y <= lowerBoundary) {
- let clickedValue = (i - Math.floor(VISIBLE_LABELS / 2) + selected)
+ let clickedValue = (i + selected)
let event = {
point: pPoint,
@@ -261,6 +270,7 @@ function newListSelector() {
}
}
}
+
function drawForeground() {
if (thisObject.visible === true) {
@@ -271,10 +281,19 @@ function newListSelector() {
for (let i = 0; i < VISIBLE_LABELS; i++) {
- let index = i - Math.floor(VISIBLE_LABELS / 2) + selected
+ let index = i + selected
let label = ''
if (index >= 0 && index < optionsList.length) {
- label = optionsList[index]
+ if (typeof(optionsList[index]) !== "string") {
+ label = optionsList[index].name
+
+ if (optionsList[index].payload.uiObject.icon !== undefined) {
+ icon = optionsList[index].payload.uiObject.icon
+ }
+
+ } else {
+ label = optionsList[index]
+ }
}
fontColor = UI_COLOR.BLACK
fontSize = FONT_SIZE
@@ -311,9 +330,14 @@ function newListSelector() {
browserCanvasContext.fill();
let middleValue = Math.floor(VISIBLE_LABELS / 2)
+ let evenOffset = 0
- UI.projects.foundations.utilities.drawPrint.drawIcon(icon, 1 / 2, 1 / 2, - offset + SIZE, (i - middleValue) * rowHeight, SIZE, thisObject.container)
- UI.projects.foundations.utilities.drawPrint.drawLabel(label, 1 / 2, 1 / 2, 0, (SIZE - fontSize) / 2 + (i - middleValue) * rowHeight, fontSize, thisObject.container, fontColor, undefined, undefined, opacity)
+ if (VISIBLE_LABELS % 2 === 0) {
+ evenOffset = rowHeight / 2
+ }
+
+ UI.projects.foundations.utilities.drawPrint.drawIcon(icon, 1 / 2, 1 / 2, - offset + SIZE, (i - middleValue) * rowHeight + evenOffset, SIZE, thisObject.container)
+ UI.projects.foundations.utilities.drawPrint.drawLabel(label, 1 / 2, 1 / 2, 0, (SIZE - fontSize) / 2 + (i - middleValue) * rowHeight + evenOffset, fontSize, thisObject.container, fontColor, undefined, undefined, opacity)
}
}
}
diff --git a/Projects/Foundations/UI/Spaces/Floating-Space/UiObjectConstructor.js b/Projects/Foundations/UI/Spaces/Floating-Space/UiObjectConstructor.js
index 855aa10b7..9d0e92797 100644
--- a/Projects/Foundations/UI/Spaces/Floating-Space/UiObjectConstructor.js
+++ b/Projects/Foundations/UI/Spaces/Floating-Space/UiObjectConstructor.js
@@ -224,7 +224,7 @@ function newUiObjectConstructor() {
return
}
- function addLeftIcons(menuItemsInitialValues, floatingObject, isPersonalData) {
+ function addLeftIcons(menuItemsInitialValues, floatingObject, schemaDocument) {
menuItemsInitialValues.push(
{
action: 'Pin / Unpin',
@@ -348,7 +348,7 @@ function newUiObjectConstructor() {
ring: 2
}
)
- if (isPersonalData !== true) {
+ if (schemaDocument.isPersonalData !== true) {
menuItemsInitialValues.push(
{
action: 'Share',
@@ -431,6 +431,23 @@ function newUiObjectConstructor() {
ring: 3
}
)
+ if (schemaDocument.referencingRules !== undefined) {
+ menuItemsInitialValues.push(
+ {
+ action: 'Create Reference',
+ actionFunction: floatingObject.payload.executeAction,
+ actionProject: 'Visual-Scripting',
+ label: undefined,
+ visible: true,
+ iconPathOn: 'create-reference',
+ iconPathOff: 'create-reference',
+ rawRadius: 12,
+ targetRadius: 0,
+ currentRadius: 0,
+ ring: 3
+ }
+ )
+ }
menuItemsInitialValues.push(
{
@@ -486,8 +503,14 @@ function newUiObjectConstructor() {
uiObject.conditionEditor.initialize()
}
}
+ if (schemaDocument.referencingRules !== undefined) {
+ uiObject.listSelector = newListSelector()
+ uiObject.listSelector.isVisibleFunction = uiObject.isVisibleFunction
+ uiObject.listSelector.container.connectToParent(uiObject.container, false, false, true, true, false, false, false, false)
+ uiObject.listSelector.initialize()
+ }
if (schemaDocument.addLeftIcons === true) {
- addLeftIcons(menuItemsInitialValues, floatingObject, schemaDocument.isPersonalData)
+ addLeftIcons(menuItemsInitialValues, floatingObject, schemaDocument)
}
if (schemaDocument.isPinned === true) {
floatingObject.isPinned = true
diff --git a/Projects/Governance/UI/Function-Libraries/PluginsFunctions.js b/Projects/Governance/UI/Function-Libraries/PluginsFunctions.js
index 2eaf1b188..ccf09dd35 100644
--- a/Projects/Governance/UI/Function-Libraries/PluginsFunctions.js
+++ b/Projects/Governance/UI/Function-Libraries/PluginsFunctions.js
@@ -29,7 +29,7 @@ function newGovernanceFunctionLibraryPluginsFunctions() {
}
function addSpecifiedUserProfile(node, rootNodes) {
- let action = { node: node}
+ let action = { node: node }
let projectName = UI.projects.communityPlugins.utilities.plugins.getProjectName(node)
if (projectName === "" || projectName === undefined) {
diff --git a/Projects/Visual-Scripting/UI/Function-Libraries/ActionSwitch.js b/Projects/Visual-Scripting/UI/Function-Libraries/ActionSwitch.js
index 785bb7a46..c6c900d8a 100644
--- a/Projects/Visual-Scripting/UI/Function-Libraries/ActionSwitch.js
+++ b/Projects/Visual-Scripting/UI/Function-Libraries/ActionSwitch.js
@@ -193,6 +193,11 @@ function newVisualScriptingActionSwitch() {
UI.projects.visualScripting.functionLibraries.attachDetach.referenceDetachNode(action.node)
}
break
+ case 'Create Reference':
+ {
+ UI.projects.visualScripting.functionLibraries.attachDetach.createReference(action.node, action.rootNodes)
+ }
+ break
default: {
console.log("[WARN] Action sent to Visual-Scripting Action Switch does not belong here. Verify at the App Schema file of the node that triggered this action that the actionProject is pointing to the right project. -> Action = " + action.name + " -> Action Node Name = " + action.node.name)
diff --git a/Projects/Visual-Scripting/UI/Function-Libraries/ReferenceAttachDetach.js b/Projects/Visual-Scripting/UI/Function-Libraries/ReferenceAttachDetach.js
index 0a685a711..477f051f4 100644
--- a/Projects/Visual-Scripting/UI/Function-Libraries/ReferenceAttachDetach.js
+++ b/Projects/Visual-Scripting/UI/Function-Libraries/ReferenceAttachDetach.js
@@ -2,7 +2,8 @@
function newVisualScriptingFunctionLibraryReferenceAttachDetach() {
let thisObject = {
referenceDetachNode: referenceDetachNode,
- referenceAttachNode: referenceAttachNode
+ referenceAttachNode: referenceAttachNode,
+ createReference: createReference
}
return thisObject
@@ -18,6 +19,35 @@ function newVisualScriptingFunctionLibraryReferenceAttachDetach() {
completeAttachment(node, attachToNode)
}
+ function createReference(node, rootNodes) {
+
+ let action = { node: node }
+ let allNodesFound = []
+
+ let schemaDocument = getSchemaDocument(node)
+ let workspaceRootNodes = UI.projects.foundations.spaces.designSpace.workspace.workspaceNode.rootNodes
+
+ let compatibleTypes = schemaDocument.referencingRules.compatibleTypes.split('->').filter(i => i)
+
+ for (let i = 0; i < compatibleTypes.length; i++) {
+ for (let j = 0; j < workspaceRootNodes.length; j++) {
+ let rootNode = workspaceRootNodes[j]
+ if (rootNode !== null) {
+ let nodeArray = UI.projects.visualScripting.utilities.branches.nodeBranchToArray(rootNode, compatibleTypes[i])
+ allNodesFound = allNodesFound.concat(nodeArray)
+ }
+ }
+ }
+
+ let eventSubscriptionId = node.payload.uiObject.container.eventHandler.listenToEvent('listSelectorClicked', onListSelect)
+ node.payload.uiObject.listSelector.activate(action, allNodesFound, eventSubscriptionId)
+
+ function onListSelect(event) {
+ referenceAttachNode(node, event.selectedNode)
+ node.payload.uiObject.container.eventHandler.stopListening('listSelectorClicked')
+ }
+ }
+
// Store the path to the reference parent to make restoring it possible if the reference parent is updated and given a new id
function storeAttachNodePath(node, attachToNode) {
if (node === undefined) { return }