From 4fb6a775672d38c90cfe3e44cb29de4594ce81d0 Mon Sep 17 00:00:00 2001 From: moltenhub-bot Date: Wed, 27 May 2026 12:24:45 -0700 Subject: [PATCH 1/6] remove images --- .moltenhub/pr-comment-screenshots/after.png | Bin 77228 -> 0 bytes .moltenhub/pr-comment-screenshots/before.png | Bin 71868 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .moltenhub/pr-comment-screenshots/after.png delete mode 100644 .moltenhub/pr-comment-screenshots/before.png diff --git a/.moltenhub/pr-comment-screenshots/after.png b/.moltenhub/pr-comment-screenshots/after.png deleted file mode 100644 index 7d571cb101eac7d07561119768641c0f79a317d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77228 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≀y`v!&W0B(R?vc{wbw7yl^ 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 G$o~V<@4@T< diff --git a/.moltenhub/pr-comment-screenshots/before.png b/.moltenhub/pr-comment-screenshots/before.png deleted file mode 100644 index 148a7e1a40155aab02599db0517919af892fada7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71868 zcmXtAbzGHA(?$g8loAfzT>^*h4gqQDZVufc-Q6jT(g*481_|kIq(f==Zl3S={;Buu z?)1!FJBJ8mC22HdLSz^i7&KWK2~`*v_-`;Ua0-a9!2fJ;7EZ&!V8X~sh^l#HAFm>0 zugvCjIa)nbd7q*2=pJyF+!*tH#T4^mg$z^Av!?B+vb56{B?MDZ1;fZ5v|DhsSJgcVtUSi(&k^VFoC-r=9Cy^A* zSw~ugk-W>5F^X-^m_GXsIVuk}TV)I}j2&QyW${F9LI_i|)~*SEli3zd!)B$SV)7)W zuc0at`&)sZB)~ZgOaKKJcEFC2%&Qy$$VuT?AnYLUe_zThkqEo`6`bh9t|lJ)cDFHO|IqTs$Bs_1hbeXS@N<6`9J4gu@2$akLhTU+5_guXP=F zyzZPh)-u^^VjR`yYTHSAqg>x9D$Ar96HnbdhK6BNjeV$C#$tD&xjsqLcaYoOV}uGU zIWOw@^ij(4LKZ?$d)O+;08bHln*YaO8Ffzl+bD_5uG5;ZC$(&FGx6WJJ0vd}C$CP- zfin%uOh6PeWCEus%kceN%Vle9&|by8{nW4{fe`1wd;@M30_pwFJxWPkP5o*7&#ArR zj;4Er0~3_|9;1yKeXg_bfuof<5;d^I0(+IR@9mc?(ebTdt9dk2>VBgvb7#Pt)wT5M z9zwJA9E|jbFekbYp1g2F`(gHQ>m5)qJ^@OAalz(u6PFC6tz2YJ$Al)bhb%KsM4mItLLwD5usYt>Q6BepeQl`n4K@g! zzmVA9>5M|yDlPLGQggYj)0-G0@h2;tZ=N`#zYq4s;Iq&G(t-B7}WqpQ@aaN4`oEYY>5*7W~D#rfmRtOtDmx>1eLwRL9W#X{5{Y6l1 zSlq;zi>MJhV?)_n5ZxQh;?A--)qG<+L7B4jYc;AaIfpEqhz@KUcXXDgCp8VGR&z2~ zE7G}=ZJ$=vZ1#V8@f+P!sgq0|=YM#v?=o?P?h^I%GhKVqoHz;;K(O~aUyThzYZ_L2 zK0%3(xU<1yEA;4 zV&^z&2&auDJS%QEqtfW3Q_;_H`#QfsN`6oA9iEyp_2M;hO}JVHG(WsVJ0%qYpO{@X zZa5$=!qR$$CQQgApoNeR7{cxTqy^84PRkus)Zm>qzn^MaAD@Henq-}|TyrEE;FUfT z<+{;jIV93$E?wWlu%fXY&VO;sH+x_hEqWq|%X(Ew%`(YsRqsd3}Zm&oYg4j%UoxHtvwNVtd9@AVg2K|)chWU~Kn1-BD zn@=mnVk zP0)T9q)^296?K;zQ>gW5-Rv(}j3vV85709AC%=`Bh8KF-e zQI71~>d73HY?%V}4=CG>w!-#Y^)sKA)XB1bQ}LJ0ZJ0A#pN?(BjFs0|A~vG~$9pKR z3_2~RT(Pfjy3Dap*m&4@abSZa-3hM8)ME<|eCj3L#2fCli9`xWZSr`Cj%WyI2^AjJ zl{#giqQgFNNlAY^U;bPY7g$nU&1EnLvUpRBLaQ|XCQ>feh&8r`$=>Kp>w(EbWVul? z^>BA@m&tXhwr!Zhe_N%`*v1iN8TDG{wtMh#a(Ztu0&$NYGov*A_P@{WCy_93#7>onF&@m<*hYI_a7Tke_om`Vv&$;{hp5a`A`vtolXYOV=H%Kh^W@S&)z3+$sPOMJUMv8 z5qwN{X0H`)(*HrSpB@Z-&At=&7vOh-54jb6zz5hq?UB)?>CegY?`E9 zPJ(`N1^;+tzUGpf9Zcx)<+4pHiRn`tXWBe&oFv_G(Ei^>d7QB`N{cTt4LKB_vzSn~ zRb@LbB0DG!@1xy99u2DIc+oFO0FEHN1@0eMZuT9-EnUG@v8s4fb4ch$p4iK~)(JCu z;?1Z;%cM_(Q@p#tB3Zp(xkEW*`%Ft@L ze2N(^;h}bYG zi=QMpBAVW=!WQyx2Pcp7S11yhk&9rYu8WzRV{C7k*EA8JpPK#Ca9zPM9Hn~&Yk%n- zU+A?$*rt(-M}cQL@eEv;t=|n=5*9MNx89%i>pe^%;a!yn5V5f`O+~w`e_()EU<~MJvI+yMrQyXYo ztP19zW|*oicyhWMr5TaS7t_r^6|^#+l5>7+Y~k=WG7`lsv5ly_c9q);$c6RH1zW!O>@+f%CQaPWBeN$S7lQ2#}<1o~(_p;TB+p-RU-=?pC z5^;Y=+g@_kQ#5iH(#xuhryi6=4@wWq8K)CZP{b^1{Xs))C95Yf@9c6TKTPiXq9bfd zSx4sNN4spTnP3NX;5Ka}RVK1j3#rMNQ$g-A)bW*Bm{f*NI?GGqm+qW!OA05h08A#R zd#$4l$m!SFPwqr+b>vax1pPqbtZ#?rX^o^q>7Z?G#u(lOTA z5VahG*CC@J9c*u;8${XsHkban@ggEmC{g3(Z ziv8gH1qTiJU>;Y749{Z`olR2OVLYl+6T12K<$RJe)KhIiYG(Lt@9M9U>>Q>%w&4LB z^qKhIHfF)6^NylbV;k~fTd#fho^Gzgzj#Bs1GAAuP*^g*maE6FKbuyB_bzf%^tViU zGgO*klL>qau_l4y+{AY*_=*RXomb9LL+~$hArG;xZsOc@#SuM(ksJtjcPQmiEfw<- zLw**fN0W=yi`Vy)KAItSzpHbf(@{pmD`BIPD+70WVw%mk5 z_EV@f5z5=UG%H+1a`}d*i^r=I$yR@rurCeis^AyDp-{;PHT6!2tb>TGpv_)5fx5GLgJ~&vHmEu?pijd1`f1kC=STj(+N$iHazS+ zADBtdH^14~*B1-qBH`h+oBKu~>uCNm{BC%;ADj;gz+h^aGeVsZ;(%v0(G5j!X1Y>V<-4R zC&4KV+N73joPgp4x_2n9XjQDV^%>Q9RcmHc(bvgEv`XVu(TddV_@bVux}5p6hk5P6 zLDPWtw7M9U7OAfhhk{^Rli1chnpN6K)2uvVU!~4ZqjwJb29XrkFPXnL96ve#L>^CK z<4&<)xx&PIFVo{Qz@k}q%%J-*W|&z*w{ouSIP}C+D4y9*Tb7#_jYl4@tGbr#*$rR; zCU?<-$8`9XZO(0@u}YKna3U=Y(xJ=^esFl9FT`5w`P=OWlk?X7M^QRED0l<%cI575 zQOV%(!Z6(j%e2tlbdbvS?epu}TJ=ack%3X{3cDlF2p=C?7AYP83;xsTuDG#51Xvya&i=}Y9igmL=XT>Datxj@Zu6FERxwXnkjCI=3KDFcY zOwDj_rReVjX5Ifh(%-)o@sR~V!{e+aGseC)d&O#@4O`Q3J0j$-gGky#jH@Dz@Pb6W z#sYIXoT10AJ=aj*BL-(DoTyTU^bz=(#aeRv1pd}v$4 zTfWa$kZ!g+Fc9tVf*NO;#uIo#*q*!nE+PGl-B>~EzI$m-2cJRja-6k&*?!cK!{7Ul zm)2yi=`|G4jgvRuH&qduv4^a}=`@R|n2XzJRQW2UjZ)PbeRK$FpAdHwH>hohZYH;e zF8&NP-AnY5I{>^8%`AVD;c4U9LgG<8GH>v9U-u(V5 zZ9aqbRAOuIoNArD9{Pr;Yv64zMgH5Cq6M2Crd$?*5Vv;L7#gm>yXkLma2(_@30sg#E0bYC*GIYMn(O5;y@Eaz z?jD%)Z$0DSE?!EHP9n92Yf{XtyF1lJY>xBD*~%E{i#sJR)g1h`P>r&J9(|J6s7vPj zjyB&J8$Ae-iM5^%g*}*$u;p(z>lmmQv`e^UCh^>wXEjTkPeZJetxuroF@;U5w)}}y*=oZ$Uv!b4Jlm10Cqh+t* z@dv=6M5L-l@phPkC-+OKOmyN?>LFj=g#xZWp#*_rWquc&7B7I zJO|gSTlX5@ja?D!yv00=RE@(}^gB1DkZW zR!m#*uu?(J$>f7HPfC?qPddU(Rb{U2Q-f*JWzAiMUfC@@NwbZq90BsC9|FfP5?CiB z^s{NzZNhk_nO>M}S}H?!j;SD%7>CECA^lT}T)%R6ICxbc`pYTPx=OGB0ubcbtsSDf z5jQl6#38zK2j}6l^KjzDzKUCk8*Gb1b2lorm|_ltw?xdrbJCv-$|?3sG=>v@!+f1y zvU5T<;1({nuU8dpkW7EJT@0IWbqlFdXF+I3L@+A14Vnj3VH!&8@etz3#%Od|y%;?3 zAn}|`G4!#jBft4WMuP-{m!_7j#xx-i)4^#IY`o}XvOafGwAa|Uorp=$pvmEWVe{vN zkke4C!xn)H^gn~J?Q&%)kaSVTRf(|>vJ9}Q8Rpsr4YXJZrle2S=lHf z*LBoQ!*Tph+GASB$6V?28CsTO z@B60cPp7RFlX7@^_IzjJdp``tdbRjDCR5Xy1$k+sUXi1OzLknDg}!u`;C-3HsBm;j ziR6y>i=8wF0IwHtLEw#qza1vmpm4}P?q&h$S|?TXTv><~oz;6HjIDSDXHW*dLk7Ch z?Pr44vNTWLBg59+b;I{j_gA@0UmhDo$8Kg*x&=^AwF~??Kf9zOvgM358hG_w5+lSU z9KW;QnHSG}3lk7bUj7vmv5pph$ZaNF^T2~!=#njH8Y55s!-U?}AF}RELpnd%-$bjL zvuuO;?drb}%e}?4u9hgdj`>rY3K#W0li!V}5neeU=C=w)UU?>`w{ZLzH+@I*8L2f& zh^qYKS5uyZWm%W?x2#!1k2<)kRHi&IFfszGMjsDj5mCIiZ-s=hdcKcXf@+X09G6WT zzpspbPC!C0Ef*Ma)cP+(E8&Fmej({5dnrEhAuP6IdTo)G8D$Nb zaovcWq9?C~Q~k$HT1rf5Z5c(Kjdn%XN^T1NXkL5wgJf%vEZPJ(d)72Lak zozFDn%0o(m(NvSASH zB-`c@GBT|(#<0njG*w8v#C2l;Vg``6>Px!Kx~Tj*2)cjombk2>eu#RX)6*;C81=`* zDVaD8E{v3M#&v#pklFHXmwt%|rGuCzk3OFn0QW3*3v`}%2HEU+Ef%4a_RpRMPN0iX zn*-iqdjd0Ni3>xDZ9P$FbW1iv(_h=MbiF7m9_mOKuONe&1+1Z0?{@dWRE_-Y zvZV_Qf1-sc<&IxZgkNbhOZXUH>6Wj?botP2031MhWA3Jz zSYMQpoi(QTu<|cXPwhA*3}e4KwvpahKL5?+i=I6pn)K;z&;qHOTE!xvH7S^WWK6iE>q=< z8RwugCJniT=K3C;^JRuTsX1**OFWk^Q@go+S4{Vn*gl0G@m)&y$%NVrSTY3~L}dzh z4AkfeVOOnT?Y&=!U9EW#gR3uJF#lvL40P8FcoFDulBTCu4)NRZRQPdyII$BNgeA1u zs2P)JTQW~%Ulizh%a~sfR8lvIbaJXXmXO*d`kkeitC2gA9=w;$3ldikZNuuE8Lp2* zSvkiv5}SR)vtQ%~3@>5uKQCMEPS}GdHnc2wDpZNOi)Ur6U+b9&H;vqJqZCaqIg!$r zg}3Z2m8B<}Hu@N{ilsZgL&GGWAGSo=CHnpZjfLa|B9Vkp)~a^DHW!VkUS!IE@E>TOQ9;JN;ewmxqp z>Neyi0dzbv44)A0$^W8b=3-;4=$&H4LJ@i>2FX7V+qY)=`?*oF#?Q+wD?~pV2dq4S zL9uVxkyC^LCe9#Pa|A!BTRO>Bp8q+u6AL=cvKVm}kC*lyB!+dJdlU8vp!PZ;E~2eI z1|Ls04zbi5C9h&C{cuhb$LucR{z<$}SBo#zSk`8GHG+UM>V^ zG^SvOS;i9@=?)*l5cO83?q_qZPzzD^8wp}IFlj`A{)@gSIA%y-Polxgfcxk%GG0fU zZ4$Dt-cT(y+(|T^_ztQq(~2{B6^hG!w!@m_X7o+8WPS>YaznBR@BB=$QQuSI=FxWWyC1|Bs~&Qd-Ugiaxq-tkrcisd4PY z3pA3ecLxM|$SE%lMvJ!hi3c+l@6JN%=Xw?GlKuVN7h(6;4+3S8t5cHddV6&3z8Jlq zAeB!b9yYpO{zY+jw3V}=y1&B(L^melyf0%RLIt5F)AYPwGB}yCnv(&!5S`G7-T&m# zbdB-@hpUCjJMpsdNspzEG&%}W5KD`Q_dO6(>5Gr|dBNj54V>(L2E=_vk55QKgIG(a z`||7cO~_}BLyiKTNGEgqWKiK!6P--TGrJ^=tTxJ{OOuv#+lHzryuodUihyvsj{s8l zO;;lEUMGdtT^{{Y-h}^!i`W$RU_P#Culupm4?cUT9WDI=?8UR3-^FAtE23+rcsX5c zX78={c+pe*8P{gSymUFKtCTnW0;gGphaUz>B{R_VdVY~`WL~VNp^o=1oh;_pP zTx5~Qr`=f1>umjKP+Md0$$XApL^eemIqOn8%ggcpMVe@^0zkhNnLiEA%W} z4F8wgi!VX^UWbo=Fx>j2FgiG*9{OBU@ zf6f2`Cs(L?+0+zMzZKg#rKi5jMje6FeeAJBANYLt0{4Xz>x{gQz1t|ci*DgtXi!wJ zXGpO_aiDF$>Y5o_#8A)>`NHo+-6=XJ4vJo6om}*5_1P*NQwEgr2M& zQ|46G%W7kYlBfC5W2Wyv;!{iw>)F&-ZW*BkpZ0* z+vi@JJas%&l@w+WRjbu4@(#cA!rEhDK#l5{wYV&alc&vYKe>&hh~leQXB{))m-&)@ z+M8Mlcn^%v`^MndqX)-ZE(44A1Q@%Ri6_LEZIMcG-F&>8=5W$eu2^O?m!yfR*|pGh z`WPsY{p59)!s$8D=12FPeRSOYqR{1xRIQ+^%*(U;MACmtBt{>ZSko%w?JhwXJi*I6 zP)>BiAr#=G4OM!C66#`gu?fc}9huR5P@=yT`h)XGqUo#^{TJxBV0pF2ardU>zo@0$ z$jC-cQ(^10w=v)sDV$@%4ju{Q6xJi|>t{$rT1`6YD&&G0U#c-;xOih0F4vDO^dua^ zNU*UWF?1>sXoxl723Zk9gTlma+3|-_MnCUTm+)rqa%C%$pw<;*JduEUPMM{HKJ082 zbjRr^SGF|WSSmNNJy%G6VQL<~$DQB5fU=YF9?>B1#KA-a>@za?L327FkD)VP`WH@r z-uH8NbWxX~6aYeHlba;SRPoq+{1?=9YQH&e_5khA^0b&16vP+1oc$Hgt>-xUC=b!X zIDm90Wmh35nTGaHSorfM3FDXI%v;y<+;P5tt3)dK$MRiIfznZ&Hh1r6Ps+7q?b)M6 z3B!?ts)`zfySY%ZuHABIUXu0`kY@s*m)i?#^P@sO!eVY8mA`$Xq*_+T*Zdl@L1$Kv zNSifiiW#;K_r=kzSKDGC(~Cj(_TD9iqQ`1>dm4NqGAfmaHGn%J^m8DVDOz~5=-r^R zivRBqW4cbCgZO){5n3k~&3TU3ul~EE!L&sUz?dX>#}>xjy`i1|0N$h#7>azrEf<LJIRxYy;)nHU2dLw>JBWI}9U1Ad#r{{-pCvFMvG`seT{=!J|Y`hOi2^Q5l zOM&A}z_)_Lv`_nf(`W}Mo}W0IB@h9AamP$b8smD2C8B2F)npz6Oq#FE|tps}% zA4a{jfi_sAKf;=aokIe3PHBh7nEvfVh?)KHR0zImIwS28B{=(Zg2Ev{ncimd#d%_& zG5Z$>OTO)&UrB_;6EzjGG3Vwia$d_GPK#uFRX`jE&_Vo7Nf%}WRP>js$fWNBxPDz= zcR;lwpi^+Qf2jNJv2jy=;mXN4gF8QVb$t1A7#Ym;(t%07$7Sryh*{_f4_+qYsTLjY z+4VpZG?)*(a(Erd(fvoppdEq#BiP%GH+1=9S)AOwk^JD;9#gq(N%qJ5Q$Ts88FkekN^qURX>nP`bxG=GdP`tFvW(uoRSMy7)U zE#<;3Li94Y_I^8l)$6DNW2r=E| zdh8Tc5WxikCpqIA&j(lBricZ`VoVJ&pbKcy$GAVO>FscaO|Bs;;h8ztDm^wdpD4$Z zgfG{Q`o(QoaYgu5UA_mn6H36e4-Z{U4@TW_n^mLg`mm^6c;u(D&NOA!ClC(o62opFDwDUk!JXbehxBPQ_oS;d@;+4QlrpQpU%(U^L!@l zW$wxs219QApR|g&<+3w|_3?ISSjzajW~D5L@`1(JQ$&gliB+mbn9{cJP4A3vaZ=)M z!h-)!tuV*Np`6`#p*B6_@kI8J;lVUp?!B3ap9N}-%ukmza{H&Dk>i`xT$q!CeW4A)RL31e!z1=M$$_82KgE!7Uaycaf=ceaYKbHSDxTLE?=BS8 zTlBFyi7A6=G_T#Mdr(O2-3mch6s>?RHsT1}oG?QXT>=*881m-D)%|`u%DchME)dZ8 z9H-btz-Bt~rqR|AQ@y!a1@;Yp7yI3~_ixFi%`!9&uE*74c=AMP;t18YFh$-cvBP?ubjoMAY!S28E5gW_yzlR0E#?Y%|kJ8}ur~4>* z=eM%3!J{sz9e$)e!}jOWfP1Qe?71S##mx9)Ue`cagx<|t{lw+rl

  • 7oo^E9FT{1+PB%0ecr>E}D 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 Q0O$e9ODjp0Nf-zI51&>z-v9sr From 1837962756d20a5e6c5992142a7c6cafab01768e Mon Sep 17 00:00:00 2001 From: moltenhub-bot Date: Wed, 27 May 2026 14:01:52 -0700 Subject: [PATCH 2/6] testing --- .dockerignore | 1 + .github/workflows/ci.yml | 15 + .gitignore | 3 +- Dockerfile | 12 + README.md | 2 +- internal/web/server_test.go | 85 +- .../skill-payload-form/skill-payload-form.css | 2 + .../skill-payload-form/skill-payload-form.js | 257 ++++ internal/web/static/styles.css | 74 ++ internal/web/templates/index.html | 387 +++++- package-lock.json | 1084 +++++++++++++++++ package.json | 22 + vite.config.mjs | 21 + web/skill-payload-form/main.jsx | 84 ++ web/skill-payload-form/schema.mjs | 235 ++++ web/skill-payload-form/schema.test.mjs | 94 ++ web/skill-payload-form/skill-payload-form.css | 70 ++ 17 files changed, 2369 insertions(+), 79 deletions(-) create mode 100644 internal/web/static/skill-payload-form/skill-payload-form.css create mode 100644 internal/web/static/skill-payload-form/skill-payload-form.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 vite.config.mjs create mode 100644 web/skill-payload-form/main.jsx create mode 100644 web/skill-payload-form/schema.mjs create mode 100644 web/skill-payload-form/schema.test.mjs create mode 100644 web/skill-payload-form/skill-payload-form.css diff --git a/.dockerignore b/.dockerignore index c7b91d2..7832046 100644 --- a/.dockerignore +++ b/.dockerignore @@ -4,4 +4,5 @@ .moltenhub .moltenhub-agents-* AGENTS.md +node_modules prompt-images/ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ebf7305..6dd37ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,9 +22,24 @@ jobs: with: go-version-file: go.mod + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 22 + cache: npm + - name: Validate repository run: ./scripts/validate-repo.sh + - name: Install frontend dependencies + run: npm ci + + - name: Run frontend tests + run: npm test + + - name: Verify frontend build + run: npm run verify:web-build + - name: Run tests run: go test ./... diff --git a/.gitignore b/.gitignore index 4afa2a7..b952f45 100644 --- a/.gitignore +++ b/.gitignore @@ -1,10 +1,11 @@ data/ dist/ bin/ +node_modules/ coverage.out AGENTS.md core.* .moltenhub-agents-*.md prompt-images/ .moltenhub -moltenhub \ No newline at end of file +moltenhub diff --git a/Dockerfile b/Dockerfile index f8164ad..c2f9695 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,3 +1,14 @@ +FROM node:22-alpine AS webbuild + +WORKDIR /src + +COPY package.json package-lock.json ./ +RUN npm ci + +COPY vite.config.mjs ./ +COPY web ./web +RUN npm run build:web + FROM golang:1.26 AS build WORKDIR /src @@ -6,6 +17,7 @@ COPY go.mod go.sum ./ RUN go mod download COPY . . +COPY --from=webbuild /src/internal/web/static/skill-payload-form ./internal/web/static/skill-payload-form RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o /out/moltenhub-dispatch ./cmd/moltenhub-dispatch diff --git a/README.md b/README.md index cfcf272..fd032bf 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ The bundled UI supports: - First-run onboarding for region, bind token, and profile setup. - Connected-agent management and presence display. -- Manual skill dispatch with Markdown or JSON payloads. +- Manual skill dispatch with schema-generated forms plus Markdown or JSON payload fallback. - Scheduled and recurring dispatches. - Pending task status, recent runtime events, and schedule deletion. diff --git a/internal/web/server_test.go b/internal/web/server_test.go index 319284b..8e2ed70 100644 --- a/internal/web/server_test.go +++ b/internal/web/server_test.go @@ -1307,8 +1307,23 @@ func TestHandleIndexIncludesSkillSchemaPlaceholderSupport(t *testing.T) { server.Handler().ServeHTTP(rec, req) body := rec.Body.String() + if !strings.Contains(body, `/static/skill-payload-form/skill-payload-form.js`) { + t.Fatalf("expected JSONForms skill payload bundle script, body=%s", body) + } + if !strings.Contains(body, `/static/skill-payload-form/skill-payload-form.css`) { + t.Fatalf("expected JSONForms skill payload bundle stylesheet, body=%s", body) + } + if !strings.Contains(body, `id="skill-payload-mode-field"`) { + t.Fatalf("expected payload mode toggle field, body=%s", body) + } + if !strings.Contains(body, `id="skill-payload-mode-form"`) || !strings.Contains(body, `id="skill-payload-mode-json"`) { + t.Fatalf("expected form and JSON payload mode options, body=%s", body) + } + if !strings.Contains(body, `id="skill-payload-form-root"`) { + t.Fatalf("expected JSONForms mount point, body=%s", body) + } if !strings.Contains(body, `const skillPayloadHint = document.getElementById("skill-payload-hint");`) { - t.Fatalf("expected payload hint hook for schema-aware readonly copy, body=%s", body) + t.Fatalf("expected payload hint hook for schema-aware generated form copy, body=%s", body) } if !strings.Contains(body, `const defaultSkillPayloadHint = skillPayloadHint instanceof HTMLElement`) { t.Fatalf("expected default payload hint capture before schema overrides, body=%s", body) @@ -1316,26 +1331,29 @@ func TestHandleIndexIncludesSkillSchemaPlaceholderSupport(t *testing.T) { if !strings.Contains(body, `const extractSkillSchema = (skill) => {`) { t.Fatalf("expected skill schema extraction helper in client script, body=%s", body) } - if !strings.Contains(body, `for (const key of ["schema", "input_schema", "payload_schema", "inputSchema", "payloadSchema", "parameters", "args_schema", "argsSchema"])`) { + if !strings.Contains(body, `const skillSchemaAliases = ["schema", "input_schema", "payload_schema", "inputSchema", "payloadSchema", "parameters", "args_schema", "argsSchema"];`) { t.Fatalf("expected schema alias scan in client script, body=%s", body) } + if !strings.Contains(body, `const skillUISchemaAliases = ["ui_schema", "uischema", "uiSchema"];`) { + t.Fatalf("expected UI schema alias scan in client script, body=%s", body) + } if !strings.Contains(body, `schemaText: trimmedString(schemaText),`) { - t.Fatalf("expected skill entries to preserve schema text for readonly payload text, body=%s", body) + t.Fatalf("expected skill entries to preserve schema text for mode reset keys, body=%s", body) } - if !strings.Contains(body, `Required payload schema shown in readonly payload text box. Markdown and JSON are both supported.`) { - t.Fatalf("expected schema-specific payload hint copy, body=%s", body) + if !strings.Contains(body, `Generated from the selected skill schema. Switch to JSON for raw payload editing.`) { + t.Fatalf("expected generated form payload hint copy, body=%s", body) } - if !strings.Contains(body, `const setSkillPayloadSchemaText = (schemaText) => {`) { - t.Fatalf("expected payload schema text helper in client script, body=%s", body) + if !strings.Contains(body, `const skillPayloadFormAPI = () => {`) { + t.Fatalf("expected JSONForms bundle bridge helper, body=%s", body) } - if !strings.Contains(body, `skillPayloadInput.readOnly = nextSchemaText !== "";`) { - t.Fatalf("expected selected skill schema to make payload text readonly, body=%s", body) + if !strings.Contains(body, `api.normalizeSkillSchema(skillEntry.schema, skillEntry.uischema)`) { + t.Fatalf("expected selected skill schema to be normalized through JSONForms bridge, body=%s", body) } - if !strings.Contains(body, `skillPayloadInput.value = nextSchemaText;`) { - t.Fatalf("expected selected skill schema to render inside payload text box, body=%s", body) + if !strings.Contains(body, `renderSkillPayloadForm(nextData);`) { + t.Fatalf("expected selected skill schema to render generated payload form, body=%s", body) } - if !strings.Contains(body, `formData.delete("payload");`) || !strings.Contains(body, `formData.delete("payload_format");`) { - t.Fatalf("expected readonly schema reference text to be omitted from dispatch payload, body=%s", body) + if strings.Contains(body, `formData.delete("payload");`) || strings.Contains(body, `formData.delete("payload_format");`) { + t.Fatalf("did not expect generated form payload to be omitted from dispatch, body=%s", body) } } @@ -2023,6 +2041,47 @@ func TestHandleDispatchAPIAcceptsJSONPayloadWithTabbedPrompt(t *testing.T) { } } +func TestHandleDispatchAPIAcceptsGeneratedFormJSONPayload(t *testing.T) { + t.Parallel() + + stub := &stubService{ + dispatchTask: app.PendingTask{ID: "task-1"}, + } + server, err := New(stub) + if err != nil { + t.Fatalf("new server: %v", err) + } + + form := url.Values{} + form.Set("target_agent_ref", "worker-a") + form.Set("skill_name", "code_for_me") + form.Set("skill_payload_input_mode", "form") + form.Set("payload_format", "json") + form.Set("payload", `{"prompt":"Review logs","limit":3}`) + req := httptest.NewRequest(http.MethodPost, "/api/dispatch", strings.NewReader(form.Encode())) + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + rec := httptest.NewRecorder() + + server.Handler().ServeHTTP(rec, req) + if rec.Code != http.StatusOK { + t.Fatalf("expected 200 response, got %d body=%s", rec.Code, rec.Body.String()) + } + + if got := stub.lastDispatchReq.PayloadFormat; got != "json" { + t.Fatalf("expected payload format json, got %#v", stub.lastDispatchReq) + } + payload, ok := stub.lastDispatchReq.Payload.(map[string]any) + if !ok { + t.Fatalf("expected JSON payload map, got %T", stub.lastDispatchReq.Payload) + } + if got := payload["prompt"]; got != "Review logs" { + t.Fatalf("unexpected prompt payload: %#v", payload) + } + if got := payload["limit"]; got != float64(3) { + t.Fatalf("unexpected limit payload: %#v", payload) + } +} + func TestHandleDispatchMapsTextPayloadFormatAliasToMarkdown(t *testing.T) { t.Parallel() diff --git a/internal/web/static/skill-payload-form/skill-payload-form.css b/internal/web/static/skill-payload-form/skill-payload-form.css new file mode 100644 index 0000000..3fcc0f4 --- /dev/null +++ b/internal/web/static/skill-payload-form/skill-payload-form.css @@ -0,0 +1,2 @@ +.skill-payload-form-root .jsonforms-root{font-family:var(--font-family,"Instrument Sans", "Segoe UI", sans-serif)}.skill-payload-form-root .group-layout,.skill-payload-form-root .vertical-layout,.skill-payload-form-root .horizontal-layout{gap:12px;display:grid}.skill-payload-form-root .horizontal-layout{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.skill-payload-form-root .control{gap:6px;display:grid}.skill-payload-form-root .control>label,.skill-payload-form-root .array-layout>label,.skill-payload-form-root .group-label{color:var(--text-soft,#35507a);letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:700}.skill-payload-form-root input,.skill-payload-form-root select,.skill-payload-form-root textarea{border:1px solid var(--surface-control-border,#70a3dd57);border-radius:var(--radius-control,6px);background:var(--input-background,#fff);width:100%;min-height:42px;color:var(--text,#0f1b33);font:inherit;box-shadow:var(--surface-control-shadow,none);padding:10px 12px}.skill-payload-form-root textarea{resize:vertical;min-height:96px}.skill-payload-form-root input[type=checkbox]{width:18px;min-height:18px;box-shadow:none}.skill-payload-form-root input:focus,.skill-payload-form-root select:focus,.skill-payload-form-root textarea:focus{border-color:rgb(var(--hub-running-rgb,0 145 176) / .54);box-shadow:var(--surface-control-shadow,none), 0 0 0 3px rgb(var(--hub-running-rgb,0 145 176) / .16);outline:none}.skill-payload-form-root .validation{color:var(--surface-danger,#b42318);font-size:.78rem;line-height:1.35} +/*$vite$:1*/ \ No newline at end of file diff --git a/internal/web/static/skill-payload-form/skill-payload-form.js b/internal/web/static/skill-payload-form/skill-payload-form.js new file mode 100644 index 0000000..dbacc71 --- /dev/null +++ b/internal/web/static/skill-payload-form/skill-payload-form.js @@ -0,0 +1,257 @@ +(function(){var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e),f=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{process.env.NODE_ENV!==`production`&&(function(){function n(e,t){Object.defineProperty(a.prototype,e,{get:function(){console.warn(`%s(...) is deprecated in plain JavaScript React classes. %s`,t[0],t[1])}})}function r(e){return typeof e!=`object`||!e?null:(e=de&&e[de]||e[`@@iterator`],typeof e==`function`?e:null)}function i(e,t){e=(e=e.constructor)&&(e.displayName||e.name)||`ReactClass`;var n=e+`.`+t;fe[n]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,e),fe[n]=!0)}function a(e,t,n){this.props=e,this.context=t,this.refs=me,this.updater=n||pe}function o(){}function s(e,t,n){this.props=e,this.context=t,this.refs=me,this.updater=n||pe}function c(){}function l(e){return``+e}function u(e){try{l(e);var t=!1}catch{t=!0}if(t){t=console;var n=t.error,r=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return n.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,r),l(e)}}function d(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===_e?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case I:return`Fragment`;case ne:return`Profiler`;case te:return`StrictMode`;case oe:return`Suspense`;case se:return`SuspenseList`;case ue:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case F:return`Portal`;case ie:return e.displayName||`Context`;case re:return(e._context.displayName||`Context`)+`.Consumer`;case ae:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ce:return t=e.displayName||null,t===null?d(e.type)||`Memo`:t;case le:t=e._payload,e=e._init;try{return d(e(t))}catch{}}return null}function f(e){if(e===I)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===le)return`<...>`;try{var t=d(e);return t?`<`+t+`>`:`<...>`}catch{return`<...>`}}function p(){var e=R.A;return e===null?null:e.getOwner()}function m(){return Error(`react-stack-top-frame`)}function h(e){if(ve.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function g(e,t){function n(){be||(be=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function _(){var e=d(this.type);return Se[e]||(Se[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function v(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:ee,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:_}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function y(e,t){return t=v(e.type,t,e.props,e._owner,e._debugStack,e._debugTask),e._store&&(t._store.validated=e._store.validated),t}function b(e){x(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===le&&(e._payload.status===`fulfilled`?x(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function x(e){return typeof e==`object`&&!!e&&e.$$typeof===ee}function S(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}function C(e,t){return typeof e==`object`&&e&&e.key!=null?(u(e.key),S(``+e.key)):t.toString(36)}function w(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(c,c):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function T(e,t,n,i,a){var o=typeof e;(o===`undefined`||o===`boolean`)&&(e=null);var s=!1;if(e===null)s=!0;else switch(o){case`bigint`:case`string`:case`number`:s=!0;break;case`object`:switch(e.$$typeof){case ee:case F:s=!0;break;case le:return s=e._init,T(s(e._payload),t,n,i,a)}}if(s){s=e,a=a(s);var c=i===``?`.`+C(s,0):i;return ge(a)?(n=``,c!=null&&(n=c.replace(Ee,`$&/`)+`/`),T(a,t,n,``,function(e){return e})):a!=null&&(x(a)&&(a.key!=null&&(s&&s.key===a.key||u(a.key)),n=y(a,n+(a.key==null||s&&s.key===a.key?``:(``+a.key).replace(Ee,`$&/`)+`/`)+c),i!==``&&s!=null&&x(s)&&s.key==null&&s._store&&!s._store.validated&&(n._store.validated=2),a=n),t.push(a)),1}if(s=0,c=i===``?`.`:i+`:`,ge(e))for(var l=0;l import('./MyComponent')) + +Did you accidentally put curly braces around the import?`,t),`default`in t||console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s + +Your code should look like: + const MyComponent = lazy(() => import('./MyComponent'))`,t),t.default;throw e._result}function O(){var e=R.H;return e===null&&console.error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: +1. You might have mismatching versions of React and the renderer (such as React DOM) +2. You might be breaking the Rules of Hooks +3. You might have more than one copy of React in the same app +See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),e}function k(){R.asyncTransitions--}function A(e){if(ke===null)try{var n=(`require`+Math.random()).slice(0,7);ke=(t&&t[n]).call(t,`timers`).setImmediate}catch{ke=function(e){!1===Oe&&(Oe=!0,typeof MessageChannel>`u`&&console.error(`This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.`));var t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(void 0)}}return ke(e)}function j(e){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);`))}),{then:function(e,a){i=!0,o.then(function(i){if(M(t,n),n===0){try{P(r),A(function(){return N(i,e,a)})}catch(e){R.thrownErrors.push(e)}if(0 ...)"))}),R.actQueue=null),0R.recentlyCreatedOwnerStacks++;return v(e,i,r,p(),c?Error(`react-stack-top-frame`):Ce,c?ye(f(e)):we)},e.createRef=function(){var e={current:null};return Object.seal(e),e},e.forwardRef=function(e){e!=null&&e.$$typeof===ce?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof e==`function`?e.length!==0&&e.length!==2&&console.error(`forwardRef render functions accept exactly two parameters: props and ref. %s`,e.length===1?`Did you forget to use the ref parameter?`:`Any additional parameter will be undefined.`):console.error(`forwardRef requires a render function but was given %s.`,e===null?`null`:typeof e),e!=null&&e.defaultProps!=null&&console.error(`forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?`);var t={$$typeof:ae,render:e},n;return Object.defineProperty(t,"displayName",{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(Object.defineProperty(e,"name",{value:t}),e.displayName=t)}}),t},e.isValidElement=x,e.lazy=function(e){e={_status:-1,_result:e};var t={$$typeof:le,_payload:e,_init:D},n={name:`lazy`,start:-1,end:-1,value:null,owner:null,debugStack:Error(`react-stack-top-frame`),debugTask:console.createTask?console.createTask(`lazy()`):null};return e._ioInfo=n,t._debugInfo=[{awaited:n}],t},e.memo=function(e,t){e??console.error(`memo: The first argument must be a component. Instead received: %s`,e===null?`null`:typeof e),t={$$typeof:ce,type:e,compare:t===void 0?null:t};var n;return Object.defineProperty(t,"displayName",{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(Object.defineProperty(e,"name",{value:t}),e.displayName=t)}}),t},e.startTransition=function(e){var t=R.T,n={};n._updatedFibers=new Set,R.T=n;try{var r=e(),i=R.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&(R.asyncTransitions++,r.then(k,k),r.then(c,De))}catch(e){De(e)}finally{t===null&&n._updatedFibers&&(e=n._updatedFibers.size,n._updatedFibers.clear(),10{process.env.NODE_ENV===`production`?t.exports=f():t.exports=p()})),h=s((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),g=s((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(){if(x=!1,T){var t=e.unstable_now();O=t;var n=!0;try{a:{y=!1,b&&(b=!1,C(E),E=-1),v=!0;var a=_;try{b:{for(o(t),g=r(p);g!==null&&!(g.expirationTime>t&&c());){var u=g.callback;if(typeof u==`function`){g.callback=null,_=g.priorityLevel;var d=u(g.expirationTime<=t);if(t=e.unstable_now(),typeof d==`function`){g.callback=d,o(t),n=!0;break b}g===r(p)&&i(p),o(t)}else i(p);g=r(p)}if(g!==null)n=!0;else{var f=r(m);f!==null&&l(s,f.startTime-t),n=!1}}break a}finally{g=null,_=a,v=!1}n=void 0}}finally{n?k():T=!1}}}function n(e,t){var n=e.length;e.push(t);a:for(;0>>1,i=e[r];if(0>>1;ra(c,n))la(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(la(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}function o(e){for(var t=r(m);t!==null;){if(t.callback===null)i(m);else if(t.startTime<=e)i(m),t.sortIndex=t.expirationTime,n(p,t);else break;t=r(m)}}function s(e){if(b=!1,o(e),!y)if(r(p)!==null)y=!0,T||(T=!0,k());else{var t=r(m);t!==null&&l(s,t.startTime-e)}}function c(){return x?!0:!(e.unstable_now()-Oe||125o?(t.sortIndex=a,n(m,t),r(p)===null&&t===r(m)&&(b?(C(E),E=-1):b=!0,l(s,a-o))):(t.sortIndex=c,n(p,t),y||v||(y=!0,T||(T=!0,k()))),t},e.unstable_shouldYield=c,e.unstable_wrapCallback=function(e){var t=_;return function(){var n=_;_=t;try{return e.apply(this,arguments)}finally{_=n}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),_=s(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=h():t.exports=g()})),v=s((e=>{var t=m();function n(e){var t=`https://react.dev/errors/`+e;if(1{process.env.NODE_ENV!==`production`&&(function(){function t(){}function n(e){return``+e}function r(e,t,r){var i=3` tag.%s',n),typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){n=t.as;var r=i(n,t.crossOrigin);l.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){var n=``;typeof e==`string`&&e||(n+=" The `href` argument encountered was "+a(e)+`.`),t!==void 0&&typeof t!=`object`?n+=" The `options` argument encountered was "+a(t)+`.`:t&&`as`in t&&typeof t.as!=`string`&&(n+=" The `as` option encountered was "+a(t.as)+`.`),n&&console.error('ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `` tag.%s',n),typeof e==`string`&&(t?(n=i(t.as,t.crossOrigin),l.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})):l.d.m(e))},e.requestFormReset=function(e){l.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s().useFormState(e,t,n)},e.useFormStatus=function(){return s().useHostTransitionStatus()},e.version=`19.2.6`,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),b=s(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`)){if(process.env.NODE_ENV!==`production`)throw Error(`^_^`);try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}}process.env.NODE_ENV===`production`?(n(),t.exports=v()):t.exports=y()})),x=s((e=>{var t=_(),n=m(),r=b();function i(e){var t=`https://react.dev/errors/`+e;if(1re||(e.current=ne[re],ne[re]=null,re--)}function oe(e,t){re++,ne[re]=e.current,e.current=t}var se=ie(null),ce=ie(null),le=ie(null),ue=ie(null);function de(e,t){switch(oe(le,t),oe(ce,e),oe(se,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Jd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Jd(t),e=Yd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ae(se),oe(se,e)}function fe(){ae(se),ae(ce),ae(le)}function pe(e){e.memoizedState!==null&&oe(ue,e);var t=se.current,n=Yd(t,e.type);t!==n&&(oe(ce,e),oe(se,n))}function L(e){ce.current===e&&(ae(se),ae(ce)),ue.current===e&&(ae(ue),rp._currentValue=te)}var me,he;function ge(e){if(me===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);me=t&&t[1]||``,he=-1)`:-1i||c[r]!==l[i]){var u=` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{_e=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ge(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return ge(e.type);case 16:return ge(`Lazy`);case 13:return e.child!==t&&t!==null?ge(`Suspense Fallback`):ge(`Suspense`);case 19:return ge(`SuspenseList`);case 0:case 15:return R(e.type,!1);case 11:return R(e.type.render,!1);case 1:return R(e.type,!0);case 31:return ge(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Fe=null;function Ie(e){if(typeof Me==`function`&&Ne(e),Fe&&typeof Fe.setStrictMode==`function`)try{Fe.setStrictMode(Pe,e)}catch{}}var Le=Math.clz32?Math.clz32:Be,Re=Math.log,ze=Math.LN2;function Be(e){return e>>>=0,e===0?32:31-(Re(e)/ze|0)|0}var Ve=256,He=262144,Ue=4194304;function We(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ge(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=We(n))):i=We(o):i=We(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=We(n))):i=We(o)):i=We(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ke(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function qe(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Je(){var e=Ue;return Ue<<=1,!(Ue&62914560)&&(Ue=4194304),e}function Ye(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Xe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ze(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),un=!1;if(ln)try{var dn={};Object.defineProperty(dn,"passive",{get:function(){un=!0}}),window.addEventListener(`test`,dn,dn),window.removeEventListener(`test`,dn,dn)}catch{un=!1}var fn=null,pn=null,mn=null;function hn(){if(mn)return mn;var e,t=pn,n=t.length,r,i=`value`in fn?fn.value:fn.textContent,a=i.length;for(e=0;e=qn),Xn=` `,Zn=!1;function Qn(e,t){switch(e){case`keyup`:return Gn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function $n(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var er=!1;function tr(e,t){switch(e){case`compositionend`:return $n(t);case`keypress`:return t.which===32?(Zn=!0,Xn):null;case`textInput`:return e=t.data,e===Xn&&Zn?null:e;default:return null}}function nr(e,t){if(er)return e===`compositionend`||!Kn&&Qn(e,t)?(e=hn(),mn=pn=fn=null,er=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=wr(n)}}function Er(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Er(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Dr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=It(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=It(e.document)}return t}function Or(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var kr=ln&&`documentMode`in document&&11>=document.documentMode,Ar=null,jr=null,Mr=null,Nr=!1;function Pr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Nr||Ar==null||Ar!==It(r)||(r=Ar,`selectionStart`in r&&Or(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Mr&&Cr(Mr,r)||(Mr=r,r=Md(jr,`onSelect`),0>=o,i-=o,Ei=1<<32-Le(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Fi&&Oi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),Fi&&Oi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Fi&&Oi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),Fi&&Oi(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===v&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case h:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===v){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Da(l)===r.type){n(e,r.sibling),c=a(r,o.props),Pa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===v?(c=pi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=fi(o.type,o.key,o.props,null,e.mode,c),Pa(c,o),c.return=e,e=c)}return s(e);case g:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=gi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Da(o),b(e,r,o,c)}if(ee(o))return _(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Na(o),c);if(o.$$typeof===C)return b(e,r,ra(e,o),c);Fa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=mi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ma=0;var i=b(e,t,n,r);return ja=null,i}catch(t){if(t===xa||t===Ca)throw t;var a=ci(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var La=Ia(!0),Ra=Ia(!1),za=!1;function Ba(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Va(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ha(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ua(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Vl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ai(e),ii(e,null,n),t}return ti(e,r,t,n),ai(e)}function Wa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}function Ga(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ka=!1;function qa(){if(Ka){var e=fa;if(e!==null)throw e}}function Ja(e,t,n,r){Ka=!1;var i=e.updateQueue;za=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var p=s.lane&-536870913,m=p!==s.lane;if(m?(Ul&p)===p:(r&p)===p){p!==0&&p===B&&(Ka=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;p=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,p);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,p=typeof h==`function`?h.call(_,d,p):h,p==null)break a;d=f({},d,p);break a;case 2:za=!0}}p=s.callback,p!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[p]:m.push(p))}else m={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Zl|=o,e.lanes=o,e.memoizedState=d}}function Ya(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Xa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=F.T,s={};F.T=s,Ps(e,!1,t,n);try{var c=i(),l=F.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ns(e,t,ha(c,r),vu(e)):Ns(e,t,r,vu(e))}catch(n){Ns(e,t,{then:function(){},status:`rejected`,reason:n},vu())}finally{I.p=a,o!==null&&s.types!==null&&(o.types=s.types),F.T=o}}function Cs(){}function ws(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ts(e).queue;Ss(e,a,t,te,n===null?Cs:function(){return Es(e),n(r)})}function Ts(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Fo,lastRenderedState:te},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Fo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Es(e){var t=Ts(e);t.next===null&&(t=e.alternate.memoizedState),Ns(e,t.next.queue,{},vu())}function Ds(){return na(rp)}function Os(){return Ao().memoizedState}function ks(){return Ao().memoizedState}function As(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=vu();e=Ha(n);var r=Ua(t,e,n);r!==null&&(bu(r,t,n),Wa(r,t,n)),t={cache:la()},e.payload=t;return}t=t.return}}function js(e,t,n){var r=vu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Fs(e)?Is(t,n):(n=ni(e,t,n,r),n!==null&&(bu(n,e,r),Ls(n,t,r)))}function Ms(e,t,n){Ns(e,t,n,vu())}function Ns(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Fs(e))Is(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Sr(s,o))return ti(e,t,i,0),Hl===null&&ei(),!1}catch{}if(n=ni(e,t,i,r),n!==null)return bu(n,e,r),Ls(n,t,r),!0}return!1}function Ps(e,t,n,r){if(r={lane:2,revertLane:_d(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Fs(e)){if(t)throw Error(i(479))}else t=ni(e,n,r,2),t!==null&&bu(t,e,2)}function Fs(e){var t=e.alternate;return e===V||t!==null&&t===V}function Is(e,t){go=ho=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ls(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}var Rs={readContext:na,use:No,useCallback:So,useContext:So,useEffect:So,useImperativeHandle:So,useLayoutEffect:So,useInsertionEffect:So,useMemo:So,useReducer:So,useRef:So,useState:So,useDebugValue:So,useDeferredValue:So,useTransition:So,useSyncExternalStore:So,useId:So,useHostTransitionStatus:So,useFormState:So,useActionState:So,useOptimistic:So,useMemoCache:So,useCacheRefresh:So};Rs.useEffectEvent=So;var zs={readContext:na,use:No,useCallback:function(e,t){return ko().memoizedState=[e,t===void 0?null:t],e},useContext:na,useEffect:ls,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ss(4194308,4,hs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ss(4194308,4,e,t)},useInsertionEffect:function(e,t){ss(4,2,e,t)},useMemo:function(e,t){var n=ko();t=t===void 0?null:t;var r=e();if(_o){Ie(!0);try{e()}finally{Ie(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ko();if(n!==void 0){var i=n(t);if(_o){Ie(!0);try{n(t)}finally{Ie(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=js.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=ko();return e={current:e},t.memoizedState=e},useState:function(e){e=Go(e);var t=e.queue,n=Ms.bind(null,V,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:_s,useDeferredValue:function(e,t){return bs(ko(),e,t)},useTransition:function(){var e=Go(!1);return e=Ss.bind(null,V,e.queue,!0,!1),ko().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=V,a=ko();if(Fi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Hl===null)throw Error(i(349));Ul&127||Bo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ls(Ho.bind(null,r,o,e),[e]),r.flags|=2048,as(9,{destroy:void 0},Vo.bind(null,r,o,n,t),null),n},useId:function(){var e=ko(),t=Hl.identifierPrefix;if(Fi){var n=Di,r=Ei;n=(r&~(1<<32-Le(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=vo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[ot]=t,o[st]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Vd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Nc(t)}}return Rc(t),Pc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Nc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=le.current,Hi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ni,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ot]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Rd(e.nodeValue,n)),e||zi(t,!0)}else e=qd(e).createTextNode(r),e[ot]=t,t.stateNode=e}return Rc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Hi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[ot]=t}else Ui(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Rc(t),e=!1}else n=Wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(co(t),t):(co(t),null);if(t.flags&128)throw Error(i(558))}return Rc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Hi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[ot]=t}else Ui(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Rc(t),a=!1}else a=Wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(co(t),t):(co(t),null)}return co(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ic(t,t.updateQueue),Rc(t),null);case 4:return fe(),e===null&&Od(t.stateNode.containerInfo),Rc(t),null;case 10:return Xi(t.type),Rc(t),null;case 19:if(ae(lo),r=t.memoizedState,r===null)return Rc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Lc(r,!1);else{if(Xl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=uo(e),o!==null){for(t.flags|=128,Lc(r,!1),e=o.updateQueue,t.updateQueue=e,Ic(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)di(n,e),n=n.sibling;return oe(lo,lo.current&1|2),Fi&&Oi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>ou&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304)}else{if(!a)if(e=uo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Ic(t,e),Lc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Fi)return Rc(t),null}else 2*Te()-r.renderingStartTime>ou&&n!==536870912&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Rc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=lo.current,oe(lo,a?n&1|2:n&1),Fi&&Oi(t,r.treeForkCount),e);case 22:case 23:return co(t),to(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Rc(t),t.subtreeFlags&6&&(t.flags|=8192)):Rc(t),n=t.updateQueue,n!==null&&Ic(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&ae(_a),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Xi(ca),Rc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Bc(e,t){switch(ji(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Xi(ca),fe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return L(t),null;case 31:if(t.memoizedState!==null){if(co(t),t.alternate===null)throw Error(i(340));Ui()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(co(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Ui()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ae(lo),null;case 4:return fe(),null;case 10:return Xi(t.type),null;case 22:case 23:return co(t),to(),e!==null&&ae(_a),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Xi(ca),null;case 25:return null;default:return null}}function Vc(e,t){switch(ji(t),t.tag){case 3:Xi(ca),fe();break;case 26:case 27:case 5:L(t);break;case 4:fe();break;case 31:t.memoizedState!==null&&co(t);break;case 13:co(t);break;case 19:ae(lo);break;case 10:Xi(t.type);break;case 22:case 23:co(t),to(),e!==null&&ae(_a);break;case 24:Xi(ca)}}function Hc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Xu(t,t.return,e)}}function Uc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Xu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Xu(t,t.return,e)}}function Wc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Xa(t,n)}catch(t){Xu(e,e.return,t)}}}function Gc(e,t,n){n.props=Ks(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Xu(e,t,n)}}function Kc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Xu(e,t,n)}}function qc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Xu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Xu(e,t,n)}else n.current=null}function Jc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Xu(e,e.return,t)}}function Yc(e,t,n){try{var r=e.stateNode;Hd(r,e.type,n,t),r[st]=t}catch(t){Xu(e,e.return,t)}}function Xc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&af(e.type)||e.tag===4}function Zc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Xc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&af(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=$t));else if(r!==4&&(r===27&&af(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function $c(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&af(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($c(e,t,n),e=e.sibling;e!==null;)$c(e,t,n),e=e.sibling}function el(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Vd(t,r,n),t[ot]=e,t[st]=n}catch(t){Xu(e,e.return,t)}}var tl=!1,nl=!1,rl=!1,il=typeof WeakSet==`function`?WeakSet:Set,al=null;function ol(e,t){if(e=e.containerInfo,Gd=fp,e=Dr(e),Or(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Kd={focusedElem:e,selectionRange:n},fp=!1,al=t;al!==null;)if(t=al,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,al=e;else for(;al!==null;){switch(t=al,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Vd(o,r,n),o[ot]=e,yt(o),r=o;break a;case`link`:var s=Kf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Tr(s,h),v=Tr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,F.T=null,n=mu,mu=null;var o=uu,s=fu;if(lu=0,du=uu=null,fu=0,Vl&6)throw Error(i(331));var c=Vl;if(Vl|=4,Il(o.current),Ol(o,o.current,s,n),Vl=c,ud(0,!1),Fe&&typeof Fe.onPostCommitFiberRoot==`function`)try{Fe.onPostCommitFiberRoot(Pe,o)}catch{}return!0}finally{I.p=a,F.T=r,Ku(e,t)}}function Yu(e,t,n){t=vi(n,t),t=Qs(e.stateNode,t,2),e=Ua(e,t,2),e!==null&&(Xe(e,2),ld(e))}function Xu(e,t,n){if(e.tag===3)Yu(e,e,n);else for(;t!==null;){if(t.tag===3){Yu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(cu===null||!cu.has(r))){e=vi(n,e),n=$s(2),r=Ua(t,n,2),r!==null&&(ec(n,r,t,e),Xe(r,2),ld(r));break}}t=t.return}}function Zu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Bl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Jl=!0,i.add(n),e=Qu.bind(null,e,t,n),t.then(e,e))}function Qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Hl===e&&(Ul&n)===n&&(Xl===4||Xl===3&&(Ul&62914560)===Ul&&300>Te()-iu?!(Vl&2)&&Du(e,0):$l|=n,tu===Ul&&(tu=0)),ld(e)}function $u(e,t){t===0&&(t=Je()),e=ri(e,t),e!==null&&(Xe(e,t),ld(e))}function ed(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$u(e,n)}function td(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),$u(e,n)}function nd(e,t){return xe(e,t)}var rd=null,id=null,ad=!1,od=!1,sd=!1,cd=0;function ld(e){e!==id&&e.next===null&&(id===null?rd=id=e:id=id.next=e),od=!0,ad||(ad=!0,gd())}function ud(e,t){if(!sd&&od){sd=!0;do for(var n=!1,r=rd;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Le(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,hd(r,a))}else a=Ul,a=Ge(r,r===Hl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ke(r,a)||(n=!0,hd(r,a));r=r.next}while(n);sd=!1}}function dd(){fd()}function fd(){od=ad=!1;var e=0;cd!==0&&Qd()&&(e=cd);for(var t=Te(),n=null,r=rd;r!==null;){var i=r.next,a=pd(r,t);a===0?(r.next=null,n===null?rd=i:n.next=i,i===null&&(id=n)):(n=r,(e!==0||a&3)&&(od=!0)),r=i}lu!==0&&lu!==5||ud(e,!1),cd!==0&&(cd=0)}function pd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Ud(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Df(e,t,n){var r=Ef;if(r&&typeof t==`string`&&t){var i=Rt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Sf.has(i)||(Sf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Vd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Of(e){Cf.D(e),Df(`dns-prefetch`,e,null)}function kf(e,t){Cf.C(e,t),Df(`preconnect`,e,t)}function Af(e,t,n){Cf.L(e,t,n);var r=Ef;if(r&&e&&t){var i=`link[rel="preload"][as="`+Rt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Rt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Rt(n.imageSizes)+`"]`)):i+=`[href="`+Rt(e)+`"]`;var a=i;switch(t){case`style`:a=If(e);break;case`script`:a=Bf(e)}xf.has(a)||(e=f({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),xf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Lf(a))||t===`script`&&r.querySelector(J(a))||(t=r.createElement(`link`),Vd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function jf(e,t){Cf.m(e,t);var n=Ef;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Rt(r)+`"][href="`+Rt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Bf(e)}if(!xf.has(a)&&(e=f({rel:`modulepreload`,href:e},t),xf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(J(a)))return}r=n.createElement(`link`),Vd(r,`link`,e),yt(r),n.head.appendChild(r)}}}function Mf(e,t,n){Cf.S(e,t,n);var r=Ef;if(r&&e){var i=vt(r).hoistableStyles,a=If(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Lf(a)))s.loading=5;else{e=f({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=xf.get(a))&&Uf(e,n);var c=o=r.createElement(`link`);yt(c),Vd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Hf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Nf(e,t){Cf.X(e,t);var n=Ef;if(n&&e){var r=vt(n).hoistableScripts,i=Bf(e),a=r.get(i);a||(a=n.querySelector(J(i)),a||(e=f({src:e,async:!0},t),(t=xf.get(i))&&Wf(e,t),a=n.createElement(`script`),yt(a),Vd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Pf(e,t){Cf.M(e,t);var n=Ef;if(n&&e){var r=vt(n).hoistableScripts,i=Bf(e),a=r.get(i);a||(a=n.querySelector(J(i)),a||(e=f({src:e,async:!0,type:`module`},t),(t=xf.get(i))&&Wf(e,t),a=n.createElement(`script`),yt(a),Vd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Ff(e,t,n,r){var a=(a=le.current)?q(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=If(n.href),n=vt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=If(n.href);var o=vt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Lf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),xf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},xf.set(e,n),o||zf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Bf(n),n=vt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function If(e){return`href="`+Rt(e)+`"`}function Lf(e){return`link[rel="stylesheet"][`+e+`]`}function Rf(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function zf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Vd(t,`link`,n),yt(t),e.head.appendChild(t))}function Bf(e){return`[src="`+Rt(e)+`"]`}function J(e){return`script[async]`+e}function Vf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Rt(n.href)+`"]`);if(r)return t.instance=r,yt(r),r;var a=f({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),yt(r),Vd(r,`style`,a),Hf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=If(n.href);var o=e.querySelector(Lf(a));if(o)return t.state.loading|=4,t.instance=o,yt(o),o;r=Rf(n),(a=xf.get(a))&&Uf(r,a),o=(e.ownerDocument||e).createElement(`link`),yt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Vd(o,`link`,r),t.state.loading|=4,Hf(o,n.precedence,e),t.instance=o;case`script`:return o=Bf(n.src),(a=e.querySelector(J(o)))?(t.instance=a,yt(a),a):(r=n,(a=xf.get(o))&&(r=f({},n),Wf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),yt(a),Vd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Hf(r,n.precedence,e));return t.instance}function Hf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Jf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Yf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=If(r.href),a=t.querySelector(Lf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=$f.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,yt(a);return}a=t.ownerDocument||t,r=Rf(r),(i=xf.get(i))&&Uf(r,i),a=a.createElement(`link`),yt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Vd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=$f.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Zf=0;function Qf(e,t){return e.stylesheets&&e.count===0&&tp(e,e.stylesheets),0Zf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function $f(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)tp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ep=null;function tp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ep=new Map,t.forEach(np,e),ep=null,$f.call(e))}function np(e,t){if(!(t.state.loading&4)){var n=ep.get(e);if(n)var r=n.get(null);else{n=new Map,ep.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{process.env.NODE_ENV!==`production`&&(function(){function t(e,t){for(e=e.memoizedState;e!==null&&0=t.length)return i;var a=t[r],o=Bf(e)?e.slice():q({},e);return o[a]=n(e[a],t,r+1,i),o}function r(e,t,n){if(t.length!==n.length)console.warn(`copyWithRename() expects paths of the same length`);else{for(var r=0;rGf?console.error(`Unexpected pop.`):(t!==Wf[Gf]&&console.error(`Unexpected Fiber popped.`),e.current=Uf[Gf],Uf[Gf]=null,Wf[Gf]=null,Gf--)}function N(e,t,n){Gf++,Uf[Gf]=e.current,Wf[Gf]=n,e.current=t}function P(e){return e===null&&console.error(`Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.`),e}function ee(e,t){N(Jf,t,e),N(qf,e,e),N(Kf,null,e);var n=t.nodeType;switch(n){case 9:case 11:n=n===9?`#document`:`#fragment`,t=(t=t.documentElement)&&(t=t.namespaceURI)?Pu(t):WS;break;default:if(n=t.tagName,t=t.namespaceURI)t=Pu(t),t=Fu(t,n);else switch(n){case`svg`:t=GS;break;case`math`:t=KS;break;default:t=WS}}n=n.toLowerCase(),n=Ft(null,n),n={context:t,ancestorInfo:n},M(Kf,e),N(Kf,n,e)}function F(e){M(Kf,e),M(qf,e),M(Jf,e)}function I(){return P(Kf.current)}function te(e){e.memoizedState!==null&&N(Yf,e,e);var t=P(Kf.current),n=e.type,r=Fu(t.context,n);n=Ft(t.ancestorInfo,n),r={context:r,ancestorInfo:n},t!==r&&(N(qf,e,e),N(Kf,r,e))}function ne(e){qf.current===e&&(M(Kf,e),M(qf,e)),Yf.current===e&&(M(Yf,e),xC._currentValue=bC)}function re(){}function ie(){if(Xf===0){Zf=console.log,Qf=console.info,$f=console.warn,ep=console.error,tp=console.group,np=console.groupCollapsed,rp=console.groupEnd;var e={configurable:!0,enumerable:!0,value:re,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}Xf++}function ae(){if(Xf--,Xf===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:q({},e,{value:Zf}),info:q({},e,{value:Qf}),warn:q({},e,{value:$f}),error:q({},e,{value:ep}),group:q({},e,{value:tp}),groupCollapsed:q({},e,{value:np}),groupEnd:q({},e,{value:rp})})}0>Xf&&console.error(`disabledDepth fell below zero. This is a bug in React. Please file an issue.`)}function oe(e){var t=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,e=e.stack,Error.prepareStackTrace=t,e.startsWith(`Error: react-stack-top-frame +`)&&(e=e.slice(29)),t=e.indexOf(` +`),t!==-1&&(e=e.slice(t+1)),t=e.indexOf(`react_stack_bottom_frame`),t!==-1&&(t=e.lastIndexOf(` +`,t)),t!==-1)e=e.slice(0,t);else return``;return e}function se(e){if(ip===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ip=t&&t[1]||``,ap=-1)`:-1o||l[a]!==u[o]){var d=` +`+l[a].replace(` at new `,` at `);return e.displayName&&d.includes(``)&&(d=d.replace(``,e.displayName)),typeof e==`function`&&sp.set(e,d),d}while(1<=a&&0<=o);break}}}finally{op=!1,J.H=r,ae(),Error.prepareStackTrace=n}return l=(l=e?e.displayName||e.name:``)?se(l):``,typeof e==`function`&&sp.set(e,l),l}function le(e,t){switch(e.tag){case 26:case 27:case 5:return se(e.type);case 16:return se(`Lazy`);case 13:return e.child!==t&&t!==null?se(`Suspense Fallback`):se(`Suspense`);case 19:return se(`SuspenseList`);case 0:case 15:return ce(e.type,!1);case 11:return ce(e.type.render,!1);case 1:return ce(e.type,!0);case 31:return se(`Activity`);default:return``}}function ue(e){try{var t=``,n=null;do{t+=le(e,n);var r=e._debugInfo;if(r)for(var i=r.length-1;0<=i;i--){var a=r[i];if(typeof a.name==`string`){var o=t;a:{var s=a.name,c=a.env,l=a.debugLocation;if(l!=null){var u=oe(l),d=u.lastIndexOf(` +`),f=d===-1?u:u.slice(d+1);if(f.indexOf(s)!==-1){var p=` +`+f;break a}}p=se(s+(c?` [`+c+`]`:``))}t=o+p}}n=e,e=e.return}while(e);return t}catch(e){return` +Error generating stack: `+e.message+` +`+e.stack}}function de(e){return(e=e?e.displayName||e.name:``)?se(e):``}function fe(){if(cp===null)return null;var e=cp._debugOwner;return e==null?null:k(e)}function pe(){if(cp===null)return``;var e=cp;try{var t=``;switch(e.tag===6&&(e=e.return),e.tag){case 26:case 27:case 5:t+=se(e.type);break;case 13:t+=se(`Suspense`);break;case 19:t+=se(`SuspenseList`);break;case 31:t+=se(`Activity`);break;case 30:case 0:case 15:case 1:e._debugOwner||t!==``||(t+=de(e.type));break;case 11:e._debugOwner||t!==``||(t+=de(e.type.render))}for(;e;)if(typeof e.tag==`number`){var n=e;e=n._debugOwner;var r=n._debugStack;if(e&&r){var i=oe(r);i!==``&&(t+=` +`+i)}}else if(e.debugStack!=null){var a=e.debugStack;(e=e.owner)&&a&&(t+=` +`+oe(a))}else break;var o=t}catch(e){o=` +Error generating stack: `+e.message+` +`+e.stack}return o}function L(e,t,n,r,i,a,o){var s=cp;me(e);try{return e!==null&&e._debugTask?e._debugTask.run(t.bind(null,n,r,i,a,o)):t(n,r,i,a,o)}finally{me(s)}throw Error(`runWithFiberInDEV should never be called in production. This is a bug in React.`)}function me(e){J.getCurrentStack=e===null?null:pe,lp=!1,cp=e}function he(e){return typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`}function ge(e){try{return _e(e),!1}catch{return!0}}function _e(e){return``+e}function R(e,t){if(ge(e))return console.error("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",t,he(e)),_e(e)}function ve(e,t){if(ge(e))return console.error("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",t,he(e)),_e(e)}function ye(e){if(ge(e))return console.error(`Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.`,he(e)),_e(e)}function be(e){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled)return!0;if(!t.supportsFiber)return console.error(`The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools`),!0;try{wp=t.inject(e),Tp=t}catch(e){console.error(`React instrumentation encountered an error: %o.`,e)}return!!t.checkDCE}function xe(e){if(typeof Sp==`function`&&Cp(e),Tp&&typeof Tp.setStrictMode==`function`)try{Tp.setStrictMode(wp,e)}catch(e){Ep||(Ep=!0,console.error(`React instrumentation encountered an error: %o`,e))}}function Se(e){return e>>>=0,e===0?32:31-(kp(e)/Ap|0)|0}function Ce(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return console.error(`Should have found matching lanes. This is a bug in React.`),e}}function we(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ce(n))):i=Ce(o):i=Ce(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ce(n))):i=Ce(o)):i=Ce(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Te(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ee(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return console.error(`Should have found matching lanes. This is a bug in React.`),-1}}function De(){var e=Np;return Np<<=1,!(Np&62914560)&&(Np=4194304),e}function Oe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ke(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ae(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0."))}):t.dangerouslySetInnerHTML==null||am||(am=!0,console.error("Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."))),t.selected==null||rm||(console.error("Use the `defaultValue` or `value` props on must be a scalar value if `multiple` is false.%s",n,ft())}}t.value===void 0||t.defaultValue===void 0||om||(console.error(`Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components`),om=!0)}function ht(e,t){t.value===void 0||t.defaultValue===void 0||cm||(console.error(`%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components`,fe()||`A component`),cm=!0),t.children!=null&&t.value==null&&console.error("Use the `defaultValue` or `value` props instead of setting children on + +
    + +
    Markdown and JSON are both supported. - +
    @@ -510,6 +527,7 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e

    + @@ -532,6 +550,12 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e const skillNameSelect = document.getElementById("skill-name-select"); const skillNameHint = document.getElementById("skill-name-hint"); const skillPayloadField = document.getElementById("skill-payload-field"); + const skillPayloadModeField = document.getElementById("skill-payload-mode-field"); + const skillPayloadModeForm = document.getElementById("skill-payload-mode-form"); + const skillPayloadModeJSON = document.getElementById("skill-payload-mode-json"); + const skillPayloadFormPanel = document.getElementById("skill-payload-form-panel"); + const skillPayloadFormRoot = document.getElementById("skill-payload-form-root"); + const skillPayloadJSONPanel = document.getElementById("skill-payload-json-panel"); const skillPayloadInput = document.getElementById("skill-payload-input"); const skillPayloadHint = document.getElementById("skill-payload-hint"); const skillPayloadValidation = document.getElementById("skill-payload-validation"); @@ -556,23 +580,18 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e const defaultSkillPayloadPlaceholder = skillPayloadInput instanceof HTMLTextAreaElement ? trimmedString(skillPayloadInput.getAttribute("data-default-placeholder")) || "Describe the task or paste a JSON payload." : "Describe the task or paste a JSON payload."; - const setSkillPayloadSchemaText = (schemaText) => { - if (!(skillPayloadInput instanceof HTMLTextAreaElement)) { - return; - } - const previousSchemaText = trimmedString(skillPayloadInput.dataset.schemaText); - const nextSchemaText = trimmedString(schemaText); - skillPayloadInput.readOnly = nextSchemaText !== ""; - skillPayloadInput.dataset.schemaText = nextSchemaText; - if (nextSchemaText !== "") { - skillPayloadInput.value = nextSchemaText; - } else if (previousSchemaText !== "" && trimmedString(skillPayloadInput.value) === previousSchemaText) { - skillPayloadInput.value = ""; - } - }; const defaultSkillPayloadHint = skillPayloadHint instanceof HTMLElement ? trimmedString(skillPayloadHint.textContent) || "Markdown and JSON are both supported." : "Markdown and JSON are both supported."; + let skillPayloadFormState = { + key: "", + hasForm: false, + mode: "json", + schema: null, + uischema: undefined, + data: null, + errors: [], + }; const dispatchTaskClear = document.getElementById("dispatch-task-clear"); const dispatchDelayToggle = document.getElementById("dispatch-delay-toggle"); const dispatchDelayToggleRegion = document.querySelector("[data-dispatch-delay-toggle-region]"); @@ -2685,43 +2704,55 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e return connectedAgentRefs(agent).some((ref) => ref.toLowerCase() === normalizedTargetRef); }; + const skillSchemaAliases = ["schema", "input_schema", "payload_schema", "inputSchema", "payloadSchema", "parameters", "args_schema", "argsSchema"]; + const skillUISchemaAliases = ["ui_schema", "uischema", "uiSchema"]; + + const firstSkillAliasValue = (skill, aliases) => { + if (!skill || typeof skill !== "object") { + return undefined; + } + for (const key of aliases) { + if (Object.prototype.hasOwnProperty.call(skill, key) && skill[key] != null) { + return skill[key]; + } + } + return undefined; + }; + + const formatSkillPayloadText = (value) => { + if (value == null) { + return ""; + } + if (typeof value === "string") { + return trimmedString(value); + } + if (typeof value === "object") { + try { + return JSON.stringify(value, null, 2); + } catch (_error) { + return ""; + } + } + return trimmedString(value); + }; + const connectedAgentSkillEntries = (agent) => { const ordered = []; const seen = new Map(); - const formatSkillSchemaPlaceholder = (schema) => { - if (schema == null) { - return ""; - } - if (typeof schema === "string") { - return trimmedString(schema); - } - if (typeof schema === "object") { - try { - return JSON.stringify(schema, null, 2); - } catch (_error) { - return ""; - } - } - return trimmedString(schema); - }; const extractSkillSchema = (skill) => { - if (!skill || typeof skill !== "object") { - return ""; - } - for (const key of ["schema", "input_schema", "payload_schema", "inputSchema", "payloadSchema", "parameters", "args_schema", "argsSchema"]) { - const schemaText = formatSkillSchemaPlaceholder(skill[key]); - if (schemaText !== "") { - return schemaText; - } - } - return ""; + return firstSkillAliasValue(skill, skillSchemaAliases); }; - const pushSkill = (name, description = "", isDefault = false, schemaText = "") => { + const extractSkillUISchema = (skill) => { + return firstSkillAliasValue(skill, skillUISchemaAliases); + }; + const pushSkill = (name, description = "", isDefault = false, schema = undefined, uischema = undefined) => { const skillName = trimmedString(name); if (!skillName) { return; } const key = skillName.toLowerCase(); + const schemaText = formatSkillPayloadText(schema); + const uiSchemaText = formatSkillPayloadText(uischema); const existingIndex = seen.get(key); if (existingIndex !== undefined) { const existing = ordered[existingIndex]; @@ -2729,8 +2760,13 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e existing.description = trimmedString(description); } if (existing && existing.schemaText === "" && trimmedString(schemaText) !== "") { + existing.schema = schema; existing.schemaText = trimmedString(schemaText); } + if (existing && existing.uiSchemaText === "" && trimmedString(uiSchemaText) !== "") { + existing.uischema = uischema; + existing.uiSchemaText = trimmedString(uiSchemaText); + } if (existing && isDefault) { existing.isDefault = true; } @@ -2740,7 +2776,10 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e ordered.push({ name: skillName, description: trimmedString(description), + schema, schemaText: trimmedString(schemaText), + uischema, + uiSchemaText: trimmedString(uiSchemaText), isDefault, }); }; @@ -2756,7 +2795,7 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e } advertisedSkills.forEach((skill) => { if (skill && typeof skill === "object") { - pushSkill(skill.name, skill.description, false, extractSkillSchema(skill)); + pushSkill(skill.name, skill.description, false, extractSkillSchema(skill), extractSkillUISchema(skill)); return; } pushSkill(skill); @@ -2922,6 +2961,164 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e return connectedAgentSkillEntries(dispatchState.selectedAgent).find((skill) => skill.name === dispatchState.skillName) || null; }; + const skillPayloadFormAPI = () => { + const api = window.MoltenHubSkillPayloadForm; + if (!api || typeof api !== "object") { + return null; + } + if ( + typeof api.normalizeSkillSchema !== "function" + || typeof api.createDefaultPayload !== "function" + || typeof api.prettyJSONStringify !== "function" + || typeof api.render !== "function" + || typeof api.transitionPayloadMode !== "function" + ) { + return null; + } + return api; + }; + + const skillPayloadSelectionKey = (skillEntry) => { + const dispatchState = resolveSelectedDispatchState(); + if (!skillEntry) { + return ""; + } + return [ + dispatchState.targetRef, + dispatchState.skillName, + skillEntry.schemaText || "", + skillEntry.uiSchemaText || "", + ].join("\n"); + }; + + const resetSkillPayloadFormState = () => { + const api = skillPayloadFormAPI(); + if (api && typeof api.unmount === "function" && skillPayloadFormRoot instanceof HTMLElement) { + api.unmount(skillPayloadFormRoot); + } + skillPayloadFormState = { + key: "", + hasForm: false, + mode: "json", + schema: null, + uischema: undefined, + data: null, + errors: [], + }; + }; + + const setSkillPayloadTextFromData = (data) => { + if (!(skillPayloadInput instanceof HTMLTextAreaElement)) { + return; + } + const api = skillPayloadFormAPI(); + skillPayloadInput.value = api && typeof api.prettyJSONStringify === "function" + ? api.prettyJSONStringify(data == null ? {} : data) + : JSON.stringify(data == null ? {} : data, null, 2); + }; + + const syncSkillPayloadModePanels = () => { + const formMode = skillPayloadFormState.hasForm && skillPayloadFormState.mode === "form"; + if (skillPayloadModeField instanceof HTMLElement) { + skillPayloadModeField.hidden = !skillPayloadFormState.hasForm; + } + if (skillPayloadModeForm instanceof HTMLInputElement) { + skillPayloadModeForm.checked = formMode; + skillPayloadModeForm.disabled = !skillPayloadFormState.hasForm; + } + if (skillPayloadModeJSON instanceof HTMLInputElement) { + skillPayloadModeJSON.checked = skillPayloadFormState.hasForm && !formMode; + skillPayloadModeJSON.disabled = !skillPayloadFormState.hasForm; + } + if (skillPayloadFormPanel instanceof HTMLElement) { + skillPayloadFormPanel.hidden = !formMode; + } + if (skillPayloadJSONPanel instanceof HTMLElement) { + skillPayloadJSONPanel.hidden = formMode; + } + if (skillPayloadInput instanceof HTMLTextAreaElement) { + skillPayloadInput.readOnly = false; + skillPayloadInput.dataset.schemaText = skillPayloadFormState.hasForm ? formatSkillPayloadText(skillPayloadFormState.schema) : ""; + } + }; + + const updateSkillPayloadFormData = (data, errors = []) => { + skillPayloadFormState = { + ...skillPayloadFormState, + data: data == null ? {} : data, + errors: Array.isArray(errors) ? errors : [], + }; + setSkillPayloadTextFromData(skillPayloadFormState.data); + if (skillPayloadFormatInput instanceof HTMLInputElement) { + skillPayloadFormatInput.value = "json"; + } + validateSkillPayload(); + }; + + const renderSkillPayloadForm = (data) => { + const api = skillPayloadFormAPI(); + if (!api || !(skillPayloadFormRoot instanceof HTMLElement) || !skillPayloadFormState.hasForm) { + return false; + } + const result = api.render(skillPayloadFormRoot, { + schema: skillPayloadFormState.schema, + uischema: skillPayloadFormState.uischema, + data: data == null ? skillPayloadFormState.data : data, + onChange: ({ data: nextData, errors }) => { + updateSkillPayloadFormData(nextData, errors); + }, + }); + if (!result || result.ok !== true) { + return false; + } + return true; + }; + + const setSkillPayloadMode = (mode) => { + if (!skillPayloadFormState.hasForm) { + return false; + } + const api = skillPayloadFormAPI(); + if (!api || !(skillPayloadInput instanceof HTMLTextAreaElement)) { + return false; + } + const transition = api.transitionPayloadMode({ + toMode: mode, + textValue: skillPayloadInput.value, + currentData: skillPayloadFormState.data, + schema: skillPayloadFormState.schema, + }); + if (!transition || transition.ok !== true) { + skillPayloadFormState = { + ...skillPayloadFormState, + mode: "json", + errors: [], + }; + syncSkillPayloadModePanels(); + setSkillPayloadValidationMessage(`JSON is invalid (${transition && transition.error ? transition.error : "unable to parse payload"}).`, true); + if (skillPayloadInput instanceof HTMLTextAreaElement) { + skillPayloadInput.focus({ preventScroll: true }); + } + return false; + } + skillPayloadFormState = { + ...skillPayloadFormState, + mode: transition.mode, + data: transition.data, + errors: [], + }; + skillPayloadInput.value = transition.textValue; + if (skillPayloadFormatInput instanceof HTMLInputElement) { + skillPayloadFormatInput.value = "json"; + } + if (transition.mode === "form") { + renderSkillPayloadForm(transition.data); + } + syncSkillPayloadModePanels(); + validateSkillPayload(); + return true; + }; + const escapeJSONStringControlWhitespace = (value) => { let output = ""; let inString = false; @@ -3023,10 +3220,18 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e setSkillPayloadValidationMessage(""); return true; } - if (skillPayloadInput.readOnly && trimmedString(skillPayloadInput.dataset.schemaText) !== "") { - skillPayloadFormatInput.value = ""; + if (skillPayloadFormState.hasForm && skillPayloadFormState.mode === "form") { + skillPayloadFormatInput.value = "json"; + if (skillPayloadFormState.errors.length > 0) { + const message = skillPayloadFormState.errors.length === 1 + ? "Resolve the highlighted payload field before dispatching." + : `Resolve ${skillPayloadFormState.errors.length} highlighted payload fields before dispatching.`; + skillPayloadInput.setCustomValidity(message); + setSkillPayloadValidationMessage(message, true); + return false; + } skillPayloadInput.setCustomValidity(""); - setSkillPayloadValidationMessage(""); + setSkillPayloadValidationMessage("Generated JSON payload."); return true; } @@ -3061,17 +3266,58 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e if (!selectedSkill) { skillPayloadInput.value = ""; skillPayloadInput.setCustomValidity(""); - setSkillPayloadSchemaText(""); + resetSkillPayloadFormState(); skillPayloadInput.placeholder = defaultSkillPayloadPlaceholder; } else { - setSkillPayloadSchemaText(skillEntry && skillEntry.schemaText ? skillEntry.schemaText : ""); skillPayloadInput.placeholder = defaultSkillPayloadPlaceholder; } } + if (selectedSkill && skillEntry) { + const api = skillPayloadFormAPI(); + const key = skillPayloadSelectionKey(skillEntry); + const normalized = api && skillEntry.schemaText !== "" + ? api.normalizeSkillSchema(skillEntry.schema, skillEntry.uischema) + : null; + if (normalized && normalized.ok === true) { + const keyChanged = key !== skillPayloadFormState.key; + const nextData = keyChanged || !skillPayloadFormState.hasForm + ? api.createDefaultPayload(normalized.schema) + : (skillPayloadFormState.data == null ? api.createDefaultPayload(normalized.schema) : skillPayloadFormState.data); + skillPayloadFormState = { + key, + hasForm: true, + mode: keyChanged ? "form" : skillPayloadFormState.mode, + schema: normalized.schema, + uischema: normalized.uischema, + data: nextData, + errors: keyChanged ? [] : skillPayloadFormState.errors, + }; + setSkillPayloadTextFromData(nextData); + if (skillPayloadFormatInput instanceof HTMLInputElement) { + skillPayloadFormatInput.value = "json"; + } + renderSkillPayloadForm(nextData); + } else { + const hadGeneratedPayload = skillPayloadFormState.hasForm; + resetSkillPayloadFormState(); + if (hadGeneratedPayload && skillPayloadInput instanceof HTMLTextAreaElement) { + skillPayloadInput.value = ""; + } + } + } else if (!selectedSkill) { + resetSkillPayloadFormState(); + } + syncSkillPayloadModePanels(); if (skillPayloadHint instanceof HTMLElement) { - skillPayloadHint.textContent = skillEntry && skillEntry.schemaText - ? "Required payload schema shown in readonly payload text box. Markdown and JSON are both supported." - : defaultSkillPayloadHint; + let hint = defaultSkillPayloadHint; + if (skillPayloadFormState.hasForm && skillPayloadFormState.mode === "form") { + hint = "Generated from the selected skill schema. Switch to JSON for raw payload editing."; + } else if (skillPayloadFormState.hasForm) { + hint = "Edit raw JSON for the selected skill schema."; + } else if (skillEntry && skillEntry.schemaText) { + hint = "Schema form unavailable. Use raw JSON for this payload."; + } + skillPayloadHint.textContent = hint; } if (skillPayloadFormatInput instanceof HTMLInputElement && !selectedSkill) { skillPayloadFormatInput.value = ""; @@ -3283,7 +3529,7 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e : ""; } if (skillPayloadInput instanceof HTMLTextAreaElement) { - setSkillPayloadSchemaText(""); + resetSkillPayloadFormState(); skillPayloadInput.value = ""; skillPayloadInput.setCustomValidity(""); } @@ -3313,10 +3559,7 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e }; const dispatchAnalyticsParams = (dispatchState = resolveSelectedDispatchState()) => { - const schemaLocked = skillPayloadInput instanceof HTMLTextAreaElement - && skillPayloadInput.readOnly - && trimmedString(skillPayloadInput.dataset.schemaText) !== ""; - const payload = skillPayloadInput instanceof HTMLTextAreaElement && !schemaLocked + const payload = skillPayloadInput instanceof HTMLTextAreaElement ? trimmedString(skillPayloadInput.value) : ""; const payloadFormat = skillPayloadFormatInput instanceof HTMLInputElement @@ -3359,7 +3602,7 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e return false; } if (clearForm && skillPayloadInput instanceof HTMLTextAreaElement) { - setSkillPayloadSchemaText(""); + resetSkillPayloadFormState(); skillPayloadInput.value = ""; } if (clearForm && skillPayloadFormatInput instanceof HTMLInputElement) { @@ -3368,6 +3611,7 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e if (clearForm) { setSkillPayloadValidationMessage(""); setDispatchDelayFieldVisible(false, { clear: true }); + syncSkillPayloadField(); } const taskID = trimmedString(body && body.task_id); const isScheduled = Boolean(body && body.scheduled); @@ -4477,6 +4721,23 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e validateSkillPayload(); }); } + [skillPayloadModeForm, skillPayloadModeJSON].forEach((node) => { + if (!(node instanceof HTMLInputElement)) { + return; + } + node.addEventListener("change", () => { + if (!node.checked) { + return; + } + const changed = setSkillPayloadMode(node.value); + trackAppEvent("dispatch_payload_mode_select", { + app_area: "dispatch", + mode: node.value, + changed, + has_schema: skillPayloadFormState.hasForm, + }); + }); + }); if (dispatchDelayEnabled instanceof HTMLInputElement) { dispatchDelayEnabled.addEventListener("change", () => { syncScheduleModeState(); @@ -4587,7 +4848,9 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e ...dispatchAnalyticsParams(dispatchState), result: "invalid_payload", }); - if (skillPayloadInput instanceof HTMLTextAreaElement) { + if (skillPayloadFormState.hasForm && skillPayloadFormState.mode === "form" && skillPayloadFormRoot instanceof HTMLElement) { + skillPayloadFormRoot.focus({ preventScroll: true }); + } else if (skillPayloadInput instanceof HTMLTextAreaElement) { skillPayloadInput.reportValidity(); skillPayloadInput.focus({ preventScroll: true }); } @@ -4650,10 +4913,6 @@

    {{if .State.Session.AgentToken}}Agent Profile{{e } else { formData.delete("skill_name"); } - if (skillPayloadInput instanceof HTMLTextAreaElement && skillPayloadInput.readOnly && trimmedString(skillPayloadInput.dataset.schemaText) !== "") { - formData.delete("payload"); - formData.delete("payload_format"); - } dispatchRequestInFlight = true; setDispatchSubmitBusy(true); setDispatchSubmitStatus("Sending..."); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..710ca1e --- /dev/null +++ b/package-lock.json @@ -0,0 +1,1084 @@ +{ + "name": "moltenhub-dispatch", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "moltenhub-dispatch", + "version": "0.0.0", + "dependencies": { + "@jsonforms/core": "3.7.0", + "@jsonforms/react": "3.7.0", + "@jsonforms/vanilla-renderers": "3.7.0", + "react": "19.2.6", + "react-dom": "19.2.6" + }, + "devDependencies": { + "@vitejs/plugin-react": "6.0.2", + "vite": "8.0.14" + } + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@jsonforms/core": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@jsonforms/core/-/core-3.7.0.tgz", + "integrity": "sha512-CE9viWtwi9QWLqlWLeOul1/R1GRAyOA9y6OoUpsCc0FhyR+g5p29F3k0fUExHWxL0Sf4KHcXYkfhtqfRBPS8ww==", + "license": "MIT", + "dependencies": { + "@types/json-schema": "^7.0.3", + "ajv": "^8.6.1", + "ajv-formats": "^2.1.0", + "lodash": "^4.17.21" + } + }, + "node_modules/@jsonforms/react": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@jsonforms/react/-/react-3.7.0.tgz", + "integrity": "sha512-HkY7qAx8vW97wPEgZ7GxCB3iiXG1c95GuObxtcDHGPBJWMwnxWBnVYJmv5h7nthrInKsQKHZL5OusnC/sj/1GQ==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + }, + "peerDependencies": { + "@jsonforms/core": "3.7.0", + "react": "^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@jsonforms/vanilla-renderers": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@jsonforms/vanilla-renderers/-/vanilla-renderers-3.7.0.tgz", + "integrity": "sha512-RdXQGsheARUJVbaTe6SqGw9W4/yrm0BgUok6OKUj8krp1NF4fqXc5UbYGHFksMR/p7LCuoYHCtQzKLXEfxJbDw==", + "license": "MIT", + "dependencies": { + "lodash": "^4.17.21" + }, + "peerDependencies": { + "@jsonforms/core": "3.7.0", + "@jsonforms/react": "3.7.0", + "react": "^16.12.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.4.tgz", + "integrity": "sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.132.0", + "resolved": "https://registry.npmjs.org/@oxc-project/types/-/types-0.132.0.tgz", + "integrity": "sha512-FESMOxil5Se014ui/Eq8fT5uHJo6nIRwH0PfJrZJXs6Gek3ZVFOrpUv3YIZT20m+extU98Hg1Ym72U58rlsxUQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.2.tgz", + "integrity": "sha512-ZS4D1JPGn/MYQN/SYDWftIE/nVsM8j/AFOYEzAoOE2O3NktQOZru+/vYXGbR/qtdLdIfGCP0lcoJiYVzsEz+iQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.2.tgz", + "integrity": "sha512-vdFA9+C/rekyGce7WqHs/xoT0ioZEWaOFyZLIV1mEeNFaFDUQrPIo8Vs2GvJ6eetb3rzDUtUBgzto3ExpXJB3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.2.tgz", + "integrity": "sha512-BewSOwTHazv77DTYiAZXSqqKZ4KP/KonFisDMVU7PImxoWfB2aepnPhd2E4SWz3zDzYgDNbs6jBmTdgNnF02GA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.2.tgz", + "integrity": "sha512-m41o7M0YWtUdqk61Tb+jnKb2rN++iRdIASlExkUoKfIAH30DOHCB8fVLzSUpbWHHU8esmEioY62PxzexE8MBuA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.2.tgz", + "integrity": "sha512-jcojB9H7W/jS29pMKWAK1N+fU99vXodHDTatS3b3y/XSOCiHo0kkA74pL3jJmkoQtYpOCxDvaKs1fo2Ij/1X5w==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.2.tgz", + "integrity": "sha512-1jn6qDU5iiOgFgygDzKUuKP0maTi0/f1+sBLgvij/76C77Nm3ts6ufz9Bjg5q5dduxiUIxtq86JIoBvo1xQ4Ig==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.2.tgz", + "integrity": "sha512-QVLO/czFMdoMFSqlX3bcswcJNm/23r+qoa/jgtmFc/qEp6/jXmIkDjF/XIo8dPfGaiwy1xfQn8o77L79GeXFgw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.2.tgz", + "integrity": "sha512-hgO5Abm0w5UL6FEa2iFnZqo2KlK7TQ5QhV5x09hujBf7t5KzHQ1VmfPuTpqRy/rNlSxua3eWH374xxiVrP+lcA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.2.tgz", + "integrity": "sha512-fy8rXxuYEu602abC8MUNaPjYLIFzReOaEIEMKMUa0rFEUxNpVXhs15KSSQ4qlqSaM7B6rcj9rDZgADh/IGDzLQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.2.tgz", + "integrity": "sha512-0+bOkiQ779+r1WpoHOWHqncvyySci0vKph+myNDYb+im6meJAzHQXay6oEgnkHuUGouM1LKTZwqKpBow6Kj7CQ==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.2.tgz", + "integrity": "sha512-mjSkrzZK5Qsl0a9d1JgILOiuZOSDTVdKENcSXBoqbzSrspLR/4/IRVDo5wd2GgZjNss/viBFJdeq+j7qH2nypw==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.2.tgz", + "integrity": "sha512-1v5vHasdfQAZoEHakBV72LIFAC9JjnymsiKxp+GEr/ma3+NJCPSaYK+qavInOovJkgwFrs7GccX2d6IgDA3Z5w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.2.tgz", + "integrity": "sha512-mb1VobWn6NheziTk5/WEaR6AKVbrwT5sOi6C7zk3gy/pD1qtJfU1j4PgTo2NJnOtbL9Dl3Aeei8w9jJ7qC2jZQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.2.tgz", + "integrity": "sha512-SqKonF56vA/L2yHwHYcEp2P34URpOZ7d1fS635cTkpDnUtEGdUbhI6NzsPdqeSWvAAeGDrxjWjNmibDIdFf9/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.2.tgz", + "integrity": "sha512-v7qRI7gXLRINcOGXt+7YmAZ6iFuyZVMIoXAxhd8oP+DR9dLfL9GfNIx7PLMxmhZdvq8waUJBQiWN9EKNy+TRBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-react": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-6.0.2.tgz", + "integrity": "sha512-DlSMqo4WhThw4vB8Mpn0Woe9J+Jfq1geJ61AKW0QEgLzGMNwtIMdxbDUzLxcun8W7NbJO0e2Jg/Nxm3cCSVzzg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "^1.0.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "@rolldown/plugin-babel": "^0.1.7 || ^0.2.0", + "babel-plugin-react-compiler": "^1.0.0", + "vite": "^8.0.0" + }, + "peerDependenciesMeta": { + "@rolldown/plugin-babel": { + "optional": true + }, + "babel-plugin-react-compiler": { + "optional": true + } + } + }, + "node_modules/ajv": { + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/lightningcss": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.32.0.tgz", + "integrity": "sha512-NXYBzinNrblfraPGyrbPoD19C1h9lfI/1mzgWYvXUTe414Gz/X1FD2XBZSZM7rRTrMA8JL3OtAaGifrIKhQ5yQ==", + "dev": true, + "license": "MPL-2.0", + "dependencies": { + "detect-libc": "^2.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-android-arm64": "1.32.0", + "lightningcss-darwin-arm64": "1.32.0", + "lightningcss-darwin-x64": "1.32.0", + "lightningcss-freebsd-x64": "1.32.0", + "lightningcss-linux-arm-gnueabihf": "1.32.0", + "lightningcss-linux-arm64-gnu": "1.32.0", + "lightningcss-linux-arm64-musl": "1.32.0", + "lightningcss-linux-x64-gnu": "1.32.0", + "lightningcss-linux-x64-musl": "1.32.0", + "lightningcss-win32-arm64-msvc": "1.32.0", + "lightningcss-win32-x64-msvc": "1.32.0" + } + }, + "node_modules/lightningcss-android-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MPL-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.32.0", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MPL-2.0", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lodash": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.2.6", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.6.tgz", + "integrity": "sha512-sfWGGfavi0xr8Pg0sVsyHMAOziVYKgPLNrS7ig+ivMNb3wbCBw3KxtflsGBAwD3gYQlE/AEZsTLgToRrSCjb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.6", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.6.tgz", + "integrity": "sha512-0prMI+hvBbPjsWnxDLxlCGyM8PN6UuWjEUCYmZhO67xIV9Xasa/r/vDnq+Xyq4Lo27g8QSbO5YzARu0D1Sps3g==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.6" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rolldown": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.2.tgz", + "integrity": "sha512-oZx5zVDtVB44AW3eaifgDml1gWRDZGvjcfdxonE4swNPG98PrrXjaO/KrnUjzlMnztCCRVlUueA1kCXhARGk6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.132.0", + "@rolldown/pluginutils": "^1.0.0" + }, + "bin": { + "rolldown": "bin/cli.mjs" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "optionalDependencies": { + "@rolldown/binding-android-arm64": "1.0.2", + "@rolldown/binding-darwin-arm64": "1.0.2", + "@rolldown/binding-darwin-x64": "1.0.2", + "@rolldown/binding-freebsd-x64": "1.0.2", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.2", + "@rolldown/binding-linux-arm64-gnu": "1.0.2", + "@rolldown/binding-linux-arm64-musl": "1.0.2", + "@rolldown/binding-linux-ppc64-gnu": "1.0.2", + "@rolldown/binding-linux-s390x-gnu": "1.0.2", + "@rolldown/binding-linux-x64-gnu": "1.0.2", + "@rolldown/binding-linux-x64-musl": "1.0.2", + "@rolldown/binding-openharmony-arm64": "1.0.2", + "@rolldown/binding-wasm32-wasi": "1.0.2", + "@rolldown/binding-win32-arm64-msvc": "1.0.2", + "@rolldown/binding-win32-x64-msvc": "1.0.2" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.16", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.16.tgz", + "integrity": "sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/vite": { + "version": "8.0.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.14.tgz", + "integrity": "sha512-s4BJJ+5y1pYL6Otw51FHhVJQhPnuRinKig64g/1+EUNaJsd3gCKdD31IPFvswUgW9/60QT9oFHbZHbQK5imcxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.15", + "rolldown": "1.0.2", + "tinyglobby": "^0.2.16" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "@vitejs/devtools": "^0.1.18", + "esbuild": "^0.27.0 || ^0.28.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@vitejs/devtools": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..6158cbf --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "moltenhub-dispatch", + "version": "0.0.0", + "private": true, + "type": "module", + "scripts": { + "test": "node --test web/skill-payload-form/*.test.mjs", + "build:web": "vite build", + "verify:web-build": "npm run build:web && git diff --exit-code -- internal/web/static/skill-payload-form" + }, + "dependencies": { + "@jsonforms/core": "3.7.0", + "@jsonforms/react": "3.7.0", + "@jsonforms/vanilla-renderers": "3.7.0", + "react": "19.2.6", + "react-dom": "19.2.6" + }, + "devDependencies": { + "@vitejs/plugin-react": "6.0.2", + "vite": "8.0.14" + } +} diff --git a/vite.config.mjs b/vite.config.mjs new file mode 100644 index 0000000..49ce2b8 --- /dev/null +++ b/vite.config.mjs @@ -0,0 +1,21 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react"; + +export default defineConfig({ + plugins: [react()], + build: { + emptyOutDir: true, + outDir: "internal/web/static/skill-payload-form", + lib: { + entry: "web/skill-payload-form/main.jsx", + name: "MoltenHubSkillPayloadFormBundle", + formats: ["iife"], + fileName: () => "skill-payload-form.js", + }, + rollupOptions: { + output: { + assetFileNames: "skill-payload-form.[ext]", + }, + }, + }, +}); diff --git a/web/skill-payload-form/main.jsx b/web/skill-payload-form/main.jsx new file mode 100644 index 0000000..b4da3da --- /dev/null +++ b/web/skill-payload-form/main.jsx @@ -0,0 +1,84 @@ +import React from "react"; +import { createRoot } from "react-dom/client"; +import { JsonForms } from "@jsonforms/react"; +import { vanillaCells, vanillaRenderers } from "@jsonforms/vanilla-renderers"; +import "./skill-payload-form.css"; + +import { + createDefaultPayload, + deepClone, + normalizeSkillSchema, + prettyJSONStringify, + transitionPayloadMode, +} from "./schema.mjs"; + +const roots = new WeakMap(); + +function SkillPayloadForm({ schema, uischema, data, onChange }) { + return ( + { + onChange({ + data: nextData == null ? {} : nextData, + errors: Array.isArray(errors) ? errors : [], + }); + }} + /> + ); +} + +const renderForm = (element, options) => { + if (!(element instanceof HTMLElement)) { + return { ok: false, error: "form mount element is missing" }; + } + const normalized = normalizeSkillSchema(options && options.schema, options && options.uischema); + if (!normalized.ok) { + return normalized; + } + const initialData = options && Object.prototype.hasOwnProperty.call(options, "data") && options.data != null + ? deepClone(options.data) + : createDefaultPayload(normalized.schema); + let root = roots.get(element); + if (!root) { + root = createRoot(element); + roots.set(element, root); + } + root.render( + {}} + />, + ); + return { + ok: true, + schema: normalized.schema, + uischema: normalized.uischema, + data: initialData, + error: "", + }; +}; + +const unmountForm = (element) => { + const root = roots.get(element); + if (!root) { + return; + } + root.unmount(); + roots.delete(element); +}; + +window.MoltenHubSkillPayloadForm = { + createDefaultPayload, + normalizeSkillSchema, + prettyJSONStringify, + render: renderForm, + transitionPayloadMode, + unmount: unmountForm, +}; diff --git a/web/skill-payload-form/schema.mjs b/web/skill-payload-form/schema.mjs new file mode 100644 index 0000000..a93e633 --- /dev/null +++ b/web/skill-payload-form/schema.mjs @@ -0,0 +1,235 @@ +export const schemaAliases = [ + "schema", + "input_schema", + "payload_schema", + "inputSchema", + "payloadSchema", + "parameters", + "args_schema", + "argsSchema", +]; + +export const uiSchemaAliases = ["ui_schema", "uischema", "uiSchema"]; + +export const isPlainObject = (value) => { + if (value == null || typeof value !== "object" || Array.isArray(value)) { + return false; + } + const prototype = Object.getPrototypeOf(value); + return prototype === Object.prototype || prototype === null; +}; + +export const deepClone = (value) => { + if (value == null || typeof value !== "object") { + return value; + } + return JSON.parse(JSON.stringify(value)); +}; + +export const firstAliasValue = (source, aliases) => { + if (!isPlainObject(source)) { + return undefined; + } + for (const alias of aliases) { + if (Object.prototype.hasOwnProperty.call(source, alias) && source[alias] != null) { + return source[alias]; + } + } + return undefined; +}; + +export const extractSkillSchemaPayload = (skill) => ({ + schema: firstAliasValue(skill, schemaAliases), + uischema: firstAliasValue(skill, uiSchemaAliases), +}); + +export const parseMaybeJSONString = (value, label = "value") => { + if (typeof value !== "string") { + return { ok: true, value }; + } + const trimmed = value.trim(); + if (trimmed === "") { + return { ok: false, error: `${label} is empty` }; + } + try { + return { ok: true, value: JSON.parse(trimmed) }; + } catch (error) { + return { + ok: false, + error: `${label} must be valid JSON: ${error instanceof Error ? error.message : "parse failed"}`, + }; + } +}; + +export const normalizeJSONSchema = (schemaInput) => { + const parsed = parseMaybeJSONString(schemaInput, "schema"); + if (!parsed.ok) { + return { ok: false, schema: null, error: parsed.error }; + } + if (!isPlainObject(parsed.value)) { + return { ok: false, schema: null, error: "schema must be a JSON object" }; + } + const schema = deepClone(parsed.value); + if (!schema.type && isPlainObject(schema.properties)) { + schema.type = "object"; + } + if (!schema.type && !schema.anyOf && !schema.oneOf && !schema.allOf && !schema.$ref) { + return { ok: false, schema: null, error: "schema must declare a type or JSON Schema composition" }; + } + return { ok: true, schema, error: "" }; +}; + +export const normalizeUISchema = (uischemaInput) => { + if (uischemaInput == null || (typeof uischemaInput === "string" && uischemaInput.trim() === "")) { + return { ok: true, uischema: undefined, error: "" }; + } + const parsed = parseMaybeJSONString(uischemaInput, "ui schema"); + if (!parsed.ok) { + return { ok: false, uischema: undefined, error: parsed.error }; + } + if (!isPlainObject(parsed.value)) { + return { ok: false, uischema: undefined, error: "ui schema must be a JSON object" }; + } + return { ok: true, uischema: deepClone(parsed.value), error: "" }; +}; + +export const normalizeSkillSchema = (schemaInput, uischemaInput) => { + if (schemaInput == null || (typeof schemaInput === "string" && schemaInput.trim() === "")) { + return { ok: false, schema: null, uischema: undefined, error: "schema is empty" }; + } + const schemaResult = normalizeJSONSchema(schemaInput); + if (!schemaResult.ok) { + return { ok: false, schema: null, uischema: undefined, error: schemaResult.error }; + } + const uiSchemaResult = normalizeUISchema(uischemaInput); + if (!uiSchemaResult.ok) { + return { ok: false, schema: null, uischema: undefined, error: uiSchemaResult.error }; + } + return { + ok: true, + schema: schemaResult.schema, + uischema: uiSchemaResult.uischema, + error: "", + }; +}; + +const schemaTypes = (schema) => { + if (!isPlainObject(schema)) { + return []; + } + if (Array.isArray(schema.type)) { + return schema.type.filter((type) => typeof type === "string"); + } + return typeof schema.type === "string" ? [schema.type] : []; +}; + +export const createDefaultPayload = (schema) => { + if (!isPlainObject(schema)) { + return {}; + } + if (Object.prototype.hasOwnProperty.call(schema, "default")) { + return deepClone(schema.default); + } + const types = schemaTypes(schema); + if (types.includes("array")) { + return []; + } + if (types.includes("object") || isPlainObject(schema.properties)) { + const output = {}; + const properties = isPlainObject(schema.properties) ? schema.properties : {}; + for (const [key, propertySchema] of Object.entries(properties)) { + if (!isPlainObject(propertySchema)) { + continue; + } + if (Object.prototype.hasOwnProperty.call(propertySchema, "default")) { + output[key] = deepClone(propertySchema.default); + continue; + } + const nestedDefault = createNestedDefault(propertySchema); + if (nestedDefault.hasDefault) { + output[key] = nestedDefault.value; + } + } + return output; + } + return {}; +}; + +const createNestedDefault = (schema) => { + if (!isPlainObject(schema)) { + return { hasDefault: false, value: undefined }; + } + if (Object.prototype.hasOwnProperty.call(schema, "default")) { + return { hasDefault: true, value: deepClone(schema.default) }; + } + const types = schemaTypes(schema); + if (types.includes("object") || isPlainObject(schema.properties)) { + const value = createDefaultPayload(schema); + return Object.keys(value).length > 0 + ? { hasDefault: true, value } + : { hasDefault: false, value: undefined }; + } + if (types.includes("array") && isPlainObject(schema.items)) { + const itemDefault = createNestedDefault(schema.items); + if (itemDefault.hasDefault) { + return { hasDefault: true, value: [itemDefault.value] }; + } + } + return { hasDefault: false, value: undefined }; +}; + +export const prettyJSONStringify = (value) => JSON.stringify(value == null ? {} : value, null, 2); + +export const parseJSONPayload = (value) => { + const trimmed = String(value || "").trim(); + if (trimmed === "") { + return { ok: true, data: {}, error: "" }; + } + try { + return { ok: true, data: JSON.parse(trimmed), error: "" }; + } catch (error) { + return { + ok: false, + data: null, + error: error instanceof Error ? error.message : "payload must be valid JSON", + }; + } +}; + +export const transitionPayloadMode = ({ toMode, textValue, currentData, schema }) => { + if (toMode === "json") { + return { + ok: true, + mode: "json", + data: currentData == null ? createDefaultPayload(schema) : deepClone(currentData), + textValue: prettyJSONStringify(currentData == null ? createDefaultPayload(schema) : currentData), + error: "", + }; + } + if (toMode === "form") { + const parsed = parseJSONPayload(textValue); + if (!parsed.ok) { + return { + ok: false, + mode: "json", + data: currentData == null ? createDefaultPayload(schema) : deepClone(currentData), + textValue, + error: parsed.error, + }; + } + return { + ok: true, + mode: "form", + data: parsed.data == null ? createDefaultPayload(schema) : parsed.data, + textValue: prettyJSONStringify(parsed.data == null ? createDefaultPayload(schema) : parsed.data), + error: "", + }; + } + return { + ok: false, + mode: "json", + data: currentData == null ? createDefaultPayload(schema) : deepClone(currentData), + textValue, + error: "payload mode must be form or json", + }; +}; diff --git a/web/skill-payload-form/schema.test.mjs b/web/skill-payload-form/schema.test.mjs new file mode 100644 index 0000000..0d7445f --- /dev/null +++ b/web/skill-payload-form/schema.test.mjs @@ -0,0 +1,94 @@ +import assert from "node:assert/strict"; +import test from "node:test"; + +import { + createDefaultPayload, + extractSkillSchemaPayload, + normalizeSkillSchema, + transitionPayloadMode, +} from "./schema.mjs"; + +test("extractSkillSchemaPayload reads schema and ui schema aliases", () => { + const skill = { + name: "review", + input_schema: { properties: { prompt: { type: "string" } } }, + uiSchema: { type: "VerticalLayout", elements: [] }, + }; + + assert.deepEqual(extractSkillSchemaPayload(skill), { + schema: { properties: { prompt: { type: "string" } } }, + uischema: { type: "VerticalLayout", elements: [] }, + }); +}); + +test("normalizeSkillSchema parses string schemas and defaults object type from properties", () => { + const result = normalizeSkillSchema(`{"properties":{"prompt":{"type":"string"}}}`); + + assert.equal(result.ok, true); + assert.equal(result.schema.type, "object"); + assert.deepEqual(result.schema.properties.prompt, { type: "string" }); +}); + +test("normalizeSkillSchema rejects invalid schema input", () => { + const result = normalizeSkillSchema("{bad"); + + assert.equal(result.ok, false); + assert.match(result.error, /valid JSON/); +}); + +test("createDefaultPayload uses root and nested schema defaults", () => { + assert.deepEqual(createDefaultPayload({ + type: "object", + properties: { + prompt: { type: "string", default: "Inspect logs" }, + options: { + type: "object", + properties: { + limit: { type: "integer", default: 20 }, + }, + }, + skip: { type: "boolean" }, + }, + }), { + prompt: "Inspect logs", + options: { limit: 20 }, + }); +}); + +test("transitionPayloadMode preserves form data when switching to JSON", () => { + const result = transitionPayloadMode({ + toMode: "json", + schema: { type: "object", properties: {} }, + currentData: { prompt: "Ship it" }, + textValue: "", + }); + + assert.equal(result.ok, true); + assert.equal(result.mode, "json"); + assert.equal(result.textValue, "{\n \"prompt\": \"Ship it\"\n}"); +}); + +test("transitionPayloadMode hydrates form mode from valid JSON and rejects invalid JSON", () => { + const schema = { type: "object", properties: {} }; + const hydrated = transitionPayloadMode({ + toMode: "form", + schema, + currentData: {}, + textValue: "{\"prompt\":\"Build\"}", + }); + + assert.equal(hydrated.ok, true); + assert.equal(hydrated.mode, "form"); + assert.deepEqual(hydrated.data, { prompt: "Build" }); + + const rejected = transitionPayloadMode({ + toMode: "form", + schema, + currentData: { prompt: "Build" }, + textValue: "{bad", + }); + + assert.equal(rejected.ok, false); + assert.equal(rejected.mode, "json"); + assert.deepEqual(rejected.data, { prompt: "Build" }); +}); diff --git a/web/skill-payload-form/skill-payload-form.css b/web/skill-payload-form/skill-payload-form.css new file mode 100644 index 0000000..c11b15b --- /dev/null +++ b/web/skill-payload-form/skill-payload-form.css @@ -0,0 +1,70 @@ +.skill-payload-form-root .jsonforms-root { + font-family: var(--font-family, "Instrument Sans", "Segoe UI", sans-serif); +} + +.skill-payload-form-root .group-layout, +.skill-payload-form-root .vertical-layout, +.skill-payload-form-root .horizontal-layout { + display: grid; + gap: 12px; +} + +.skill-payload-form-root .horizontal-layout { + grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); +} + +.skill-payload-form-root .control { + display: grid; + gap: 6px; +} + +.skill-payload-form-root .control > label, +.skill-payload-form-root .array-layout > label, +.skill-payload-form-root .group-label { + color: var(--text-soft, #35507a); + font-size: 0.78rem; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; +} + +.skill-payload-form-root input, +.skill-payload-form-root select, +.skill-payload-form-root textarea { + width: 100%; + min-height: 42px; + border: 1px solid var(--surface-control-border, rgba(112, 163, 221, 0.34)); + border-radius: var(--radius-control, 6px); + padding: 10px 12px; + background: var(--input-background, #ffffff); + color: var(--text, #0f1b33); + font: inherit; + box-shadow: var(--surface-control-shadow, none); +} + +.skill-payload-form-root textarea { + min-height: 96px; + resize: vertical; +} + +.skill-payload-form-root input[type="checkbox"] { + width: 18px; + min-height: 18px; + box-shadow: none; +} + +.skill-payload-form-root input:focus, +.skill-payload-form-root select:focus, +.skill-payload-form-root textarea:focus { + border-color: rgb(var(--hub-running-rgb, 0 145 176) / 0.54); + box-shadow: + var(--surface-control-shadow, none), + 0 0 0 3px rgb(var(--hub-running-rgb, 0 145 176) / 0.16); + outline: none; +} + +.skill-payload-form-root .validation { + color: var(--surface-danger, #b42318); + font-size: 0.78rem; + line-height: 1.35; +} From c91405c880da35b0a3ce1aa5a0108a91695ef36c Mon Sep 17 00:00:00 2001 From: moltenhub-bot Date: Wed, 27 May 2026 14:01:58 -0700 Subject: [PATCH 3/6] testing --- README.md | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index fd032bf..f25b151 100644 --- a/README.md +++ b/README.md @@ -29,12 +29,14 @@ docker run --rm -p 8080:8080 \ ## Docker -Build a local image: +Build a local image from this checkout: ```bash docker build -t moltenhub-dispatch . ``` +The Docker build runs the web asset build first, then compiles the Go binary with those assets embedded. + Run the local image: ```bash @@ -131,23 +133,35 @@ Dispatch requests can run immediately, later, or on an interval. Use `agent` or Requirements: - Go `1.26` or newer +- Node.js `22` or newer, for the bundled JSONForms web assets - Docker, only for container builds -Run locally: +Install frontend dependencies and build the embedded web bundle: + +```bash +npm ci +npm run build:web +``` + +Run the service locally: ```bash go run ./cmd/moltenhub-dispatch ``` +The web UI runs at . If you change files under `web/skill-payload-form/`, run `npm run build:web` again before `go run` so the embedded bundle is current. + Validate changes: ```bash ./scripts/validate-repo.sh +npm test +npm run verify:web-build go test ./... go build ./... ``` -CI runs the same repository validation, test, and build commands. +CI runs the same repository validation, frontend test/build verification, Go test, and Go build commands. ## Runtime WebSocket From 1494d3730666b0f7ba27dba96607bfd9c0cf3d52 Mon Sep 17 00:00:00 2001 From: moltenhub-bot Date: Wed, 27 May 2026 14:04:35 -0700 Subject: [PATCH 4/6] readme --- README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f25b151..595ea81 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,15 @@ docker build -t moltenhub-dispatch . The Docker build runs the web asset build first, then compiles the Go binary with those assets embedded. -Run the local image: +Run the local image and complete onboarding in the browser: + +```bash +docker run --rm -p 8080:8080 \ + -v "$(pwd)/.moltenhub:/workspace/config" \ + moltenhub-dispatch +``` + +Or bind during startup with an existing region and token: ```bash docker run --rm -p 8080:8080 \ From c1812d85e31bdc8638c2442a862ef41b28a4706d Mon Sep 17 00:00:00 2001 From: moltenhub-bot Date: Wed, 27 May 2026 14:32:52 -0700 Subject: [PATCH 5/6] ok --- README.md | 2 + internal/app/service_capabilities.go | 71 ++++++++++++++++++- internal/app/service_test.go | 18 ++++- .../skill-payload-form/skill-payload-form.js | 4 +- web/skill-payload-form/schema.mjs | 59 ++++++++++++++- web/skill-payload-form/schema.test.mjs | 31 ++++++++ 6 files changed, 179 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 595ea81..aec8ae1 100644 --- a/README.md +++ b/README.md @@ -159,6 +159,8 @@ go run ./cmd/moltenhub-dispatch The web UI runs at . If you change files under `web/skill-payload-form/`, run `npm run build:web` again before `go run` so the embedded bundle is current. +If a selected skill still shows the raw payload textarea instead of a generated form, confirm that you are running this locally built image or binary, not the published `moltenai/moltenhub-dispatch` image. The form appears only when the selected connected agent advertises a valid JSON schema or supported parameter metadata for that skill; skills without schemas intentionally fall back to the textarea. + Validate changes: ```bash diff --git a/internal/app/service_capabilities.go b/internal/app/service_capabilities.go index d897388..359bce6 100644 --- a/internal/app/service_capabilities.go +++ b/internal/app/service_capabilities.go @@ -428,8 +428,8 @@ func connectedAgentMetadataFromCapabilityEntry(entry map[string]any, sources []m Harness: firstCapabilityString(sources, "harness"), Presence: connectedAgentPresenceFromCapabilitySources(sources), } - if skills := capabilitySkills(entry, nestedMap(entry, "metadata"), nestedMap(entry, "agent")); len(skills) > 0 { - metadata.AdvertisedSkills = SkillsToMetadata(skills) + if skills := capabilitySkillMetadata(entry, nestedMap(entry, "metadata"), nestedMap(entry, "agent")); len(skills) > 0 { + metadata.AdvertisedSkills = skills } if metadataEmpty(metadata) { return nil @@ -516,6 +516,73 @@ func SkillsToMetadata(skills []Skill) []map[string]any { return metadata } +func capabilitySkillMetadata(primary map[string]any, metadata map[string]any, agent map[string]any) []map[string]any { + for _, source := range []map[string]any{primary, metadata, agent} { + for _, current := range []map[string]any{source, nestedMap(source, "metadata")} { + if current == nil { + continue + } + for _, key := range []string{"advertised_skills", "skills"} { + if skills := skillMetadataFromAny(current[key]); len(skills) > 0 { + return skills + } + } + } + } + return nil +} + +func skillMetadataFromAny(value any) []map[string]any { + skills := make([]map[string]any, 0) + appendSkillMap := func(skill map[string]any) { + name := strings.TrimSpace(stringFromMap(skill, "name")) + if name == "" { + return + } + entry := make(map[string]any, len(skill)) + for key, value := range skill { + entry[key] = value + } + entry["name"] = name + if description := strings.TrimSpace(stringFromMap(skill, "description")); description != "" { + entry["description"] = description + } + skills = append(skills, entry) + } + appendSkill := func(item any) { + switch typed := item.(type) { + case map[string]any: + appendSkillMap(typed) + case Skill: + if metadata := SkillsToMetadata([]Skill{typed}); len(metadata) == 1 { + skills = append(skills, metadata[0]) + } + case string: + name := strings.TrimSpace(typed) + if name != "" { + skills = append(skills, map[string]any{"name": name}) + } + } + } + + switch typed := value.(type) { + case []any: + for _, item := range typed { + appendSkill(item) + } + case []map[string]any: + for _, item := range typed { + appendSkill(item) + } + case []Skill: + for _, item := range typed { + appendSkill(item) + } + } + + return skills +} + func presenceEmpty(presence *hub.AgentPresence) bool { if presence == nil { return true diff --git a/internal/app/service_test.go b/internal/app/service_test.go index abb5af0..bea5f96 100644 --- a/internal/app/service_test.go +++ b/internal/app/service_test.go @@ -4721,7 +4721,16 @@ func TestRefreshConnectedAgentsRetainsPeerCatalogSkillsWhenTalkablePeersExist(t "uri": "https://hub.example/v1/agents/peer-uuid", "metadata": map[string]any{ "skills": []map[string]any{ - {"name": "review_openapi", "description": "Review Hub API integration behavior."}, + { + "name": "review_openapi", + "description": "Review Hub API integration behavior.", + "schema": map[string]any{ + "type": "object", + "properties": map[string]any{ + "prompt": map[string]any{"type": "string"}, + }, + }, + }, }, }, }, @@ -4748,6 +4757,13 @@ func TestRefreshConnectedAgentsRetainsPeerCatalogSkillsWhenTalkablePeersExist(t if skills := ConnectedAgentSkills(agents[0]); len(skills) != 1 || skills[0].Name != "review_openapi" { t.Fatalf("expected peer skill catalog skills to survive talkable peer fallback, got %#v", skills) } + if agents[0].Metadata == nil || len(agents[0].Metadata.AdvertisedSkills) != 1 { + t.Fatalf("expected advertised skill metadata with schema, got %#v", agents[0].Metadata) + } + schema, ok := agents[0].Metadata.AdvertisedSkills[0]["schema"].(map[string]any) + if !ok || schema["type"] != "object" { + t.Fatalf("expected advertised skill schema to survive normalization, got %#v", agents[0].Metadata.AdvertisedSkills[0]) + } } func TestRefreshConnectedAgentsMergesPeerCatalogSkillsWithTalkablePeerProfile(t *testing.T) { diff --git a/internal/web/static/skill-payload-form/skill-payload-form.js b/internal/web/static/skill-payload-form/skill-payload-form.js index dbacc71..8e705ea 100644 --- a/internal/web/static/skill-payload-form/skill-payload-form.js +++ b/internal/web/static/skill-payload-form/skill-payload-form.js @@ -249,9 +249,9 @@ You might need to use a local HTTP server (instead of file://): https://react.de deps: ${r}}`};var i={keyword:`dependencies`,type:`object`,schemaType:`object`,error:e.error,code(e){let[t,n]=a(e);o(e,t),s(e,n)}};function a({schema:e}){let t={},n={};for(let r in e){if(r===`__proto__`)continue;let i=Array.isArray(e[r])?t:n;i[r]=e[r]}return[t,n]}function o(e,n=e.schema){let{gen:i,data:a,it:o}=e;if(Object.keys(n).length===0)return;let s=i.let(`missing`);for(let c in n){let l=n[c];if(l.length===0)continue;let u=(0,r.propertyInData)(i,a,c,o.opts.ownProperties);e.setParams({property:c,depsCount:l.length,deps:l.join(`, `)}),o.allErrors?i.if(u,()=>{for(let t of l)(0,r.checkReportMissingProp)(e,t)}):(i.if((0,t._)`${u} && (${(0,r.checkMissingProp)(e,l,s)})`),(0,r.reportMissingProp)(e,s),i.else())}}e.validatePropertyDeps=o;function s(e,t=e.schema){let{gen:i,data:a,keyword:o,it:s}=e,c=i.name(`valid`);for(let l in t)(0,n.alwaysValidSchema)(s,t[l])||(i.if((0,r.propertyInData)(i,a,l,s.opts.ownProperties),()=>{let t=e.subschema({keyword:o,schemaProp:l},c);e.mergeValidEvaluated(t,c)},()=>i.var(c,!0)),e.ok(c))}e.validateSchemaDeps=s,e.default=i})),Rr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Rn(),n=zn();e.default={keyword:`propertyNames`,type:`object`,schemaType:[`object`,`boolean`],error:{message:`property name must be valid`,params:({params:e})=>(0,t._)`{propertyName: ${e.propertyName}}`},code(e){let{gen:r,schema:i,data:a,it:o}=e;if((0,n.alwaysValidSchema)(o,i))return;let s=r.name(`valid`);r.forIn(`key`,a,n=>{e.setParams({propertyName:n}),e.subschema({keyword:`propertyNames`,data:n,dataTypes:[`string`],propertyName:n,compositeRule:!0},s),r.if((0,t.not)(s),()=>{e.error(!0),o.allErrors||r.break()})}),e.ok(s)}}})),zr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=qn(),n=Rn(),r=Bn(),i=zn();e.default={keyword:`additionalProperties`,type:[`object`],schemaType:[`boolean`,`object`],allowUndefined:!0,trackErrors:!0,error:{message:`must NOT have additional properties`,params:({params:e})=>(0,n._)`{additionalProperty: ${e.additionalProperty}}`},code(e){let{gen:a,schema:o,parentSchema:s,data:c,errsCount:l,it:u}=e;if(!l)throw Error(`ajv implementation error`);let{allErrors:d,opts:f}=u;if(u.props=!0,f.removeAdditional!==`all`&&(0,i.alwaysValidSchema)(u,o))return;let p=(0,t.allSchemaProperties)(s.properties),m=(0,t.allSchemaProperties)(s.patternProperties);h(),e.ok((0,n._)`${l} === ${r.default.errors}`);function h(){a.forIn(`key`,c,e=>{!p.length&&!m.length?v(e):a.if(g(e),()=>v(e))})}function g(r){let o;if(p.length>8){let e=(0,i.schemaRefOrVal)(u,s.properties,`properties`);o=(0,t.isOwnProperty)(a,e,r)}else o=p.length?(0,n.or)(...p.map(e=>(0,n._)`${r} === ${e}`)):n.nil;return m.length&&(o=(0,n.or)(o,...m.map(i=>(0,n._)`${(0,t.usePattern)(e,i)}.test(${r})`))),(0,n.not)(o)}function _(e){a.code((0,n._)`delete ${c}[${e}]`)}function v(t){if(f.removeAdditional===`all`||f.removeAdditional&&o===!1){_(t);return}if(o===!1){e.setParams({additionalProperty:t}),e.error(),d||a.break();return}if(typeof o==`object`&&!(0,i.alwaysValidSchema)(u,o)){let r=a.name(`valid`);f.removeAdditional===`failing`?(y(t,r,!1),a.if((0,n.not)(r),()=>{e.reset(),_(t)})):(y(t,r),d||a.if((0,n.not)(r),()=>a.break()))}}function y(t,n,r){let a={keyword:`additionalProperties`,dataProp:t,dataPropType:i.Type.Str};r===!1&&Object.assign(a,{compositeRule:!0,createErrors:!1,allErrors:!1}),e.subschema(a,n)}}}})),Br=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=$n(),n=qn(),r=zn(),i=zr();e.default={keyword:`properties`,type:`object`,schemaType:`object`,code(e){let{gen:a,schema:o,parentSchema:s,data:c,it:l}=e;l.opts.removeAdditional===`all`&&s.additionalProperties===void 0&&i.default.code(new t.KeywordCxt(l,i.default,`additionalProperties`));let u=(0,n.allSchemaProperties)(o);for(let e of u)l.definedProperties.add(e);l.opts.unevaluated&&u.length&&l.props!==!0&&(l.props=r.mergeEvaluated.props(a,(0,r.toHash)(u),l.props));let d=u.filter(e=>!(0,r.alwaysValidSchema)(l,o[e]));if(d.length===0)return;let f=a.name(`valid`);for(let t of d)p(t)?m(t):(a.if((0,n.propertyInData)(a,c,t,l.opts.ownProperties)),m(t),l.allErrors||a.else().var(f,!0),a.endIf()),e.it.definedProperties.add(t),e.ok(f);function p(e){return l.opts.useDefaults&&!l.compositeRule&&o[e].default!==void 0}function m(t){e.subschema({keyword:`properties`,schemaProp:t,dataProp:t},f)}}}})),Vr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=qn(),n=Rn(),r=zn(),i=zn();e.default={keyword:`patternProperties`,type:`object`,schemaType:`object`,code(e){let{gen:a,schema:o,data:s,parentSchema:c,it:l}=e,{opts:u}=l,d=(0,t.allSchemaProperties)(o),f=d.filter(e=>(0,r.alwaysValidSchema)(l,o[e]));if(d.length===0||f.length===d.length&&(!l.opts.unevaluated||l.props===!0))return;let p=u.strictSchema&&!u.allowMatchingProperties&&c.properties,m=a.name(`valid`);l.props!==!0&&!(l.props instanceof n.Name)&&(l.props=(0,i.evaluatedPropsToName)(a,l.props));let{props:h}=l;g();function g(){for(let e of d)p&&_(e),l.allErrors?v(e):(a.var(m,!0),v(e),a.if(m))}function _(e){for(let t in p)new RegExp(e).test(t)&&(0,r.checkStrictMode)(l,`property ${t} matches pattern ${e} (use allowMatchingProperties)`)}function v(r){a.forIn(`key`,s,o=>{a.if((0,n._)`${(0,t.usePattern)(e,r)}.test(${o})`,()=>{let t=f.includes(r);t||e.subschema({keyword:`patternProperties`,schemaProp:r,dataProp:o,dataPropType:i.Type.Str},m),l.opts.unevaluated&&h!==!0?a.assign((0,n._)`${h}[${o}]`,!0):!t&&!l.allErrors&&a.if((0,n.not)(m),()=>a.break())})})}}}})),Hr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=zn();e.default={keyword:`not`,schemaType:[`object`,`boolean`],trackErrors:!0,code(e){let{gen:n,schema:r,it:i}=e;if((0,t.alwaysValidSchema)(i,r)){e.fail();return}let a=n.name(`valid`);e.subschema({keyword:`not`,compositeRule:!0,createErrors:!1,allErrors:!1},a),e.failResult(a,()=>e.reset(),()=>e.error())},error:{message:`must NOT be valid`}}})),Ur=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={keyword:`anyOf`,schemaType:`array`,trackErrors:!0,code:qn().validateUnion,error:{message:`must match a schema in anyOf`}}})),Wr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Rn(),n=zn();e.default={keyword:`oneOf`,schemaType:`array`,trackErrors:!0,error:{message:`must match exactly one schema in oneOf`,params:({params:e})=>(0,t._)`{passingSchemas: ${e.passing}}`},code(e){let{gen:r,schema:i,parentSchema:a,it:o}=e;if(!Array.isArray(i))throw Error(`ajv implementation error`);if(o.opts.discriminator&&a.discriminator)return;let s=i,c=r.let(`valid`,!1),l=r.let(`passing`,null),u=r.name(`_valid`);e.setParams({passing:l}),r.block(d),e.result(c,()=>e.reset(),()=>e.error(!0));function d(){s.forEach((i,a)=>{let s;(0,n.alwaysValidSchema)(o,i)?r.var(u,!0):s=e.subschema({keyword:`oneOf`,schemaProp:a,compositeRule:!0},u),a>0&&r.if((0,t._)`${u} && ${c}`).assign(c,!1).assign(l,(0,t._)`[${l}, ${a}]`).else(),r.if(u,()=>{r.assign(c,!0),r.assign(l,a),s&&e.mergeEvaluated(s,t.Name)})})}}}})),Gr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=zn();e.default={keyword:`allOf`,schemaType:`array`,code(e){let{gen:n,schema:r,it:i}=e;if(!Array.isArray(r))throw Error(`ajv implementation error`);let a=n.name(`valid`);r.forEach((n,r)=>{if((0,t.alwaysValidSchema)(i,n))return;let o=e.subschema({keyword:`allOf`,schemaProp:r},a);e.ok(a),e.mergeEvaluated(o)})}}})),Kr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Rn(),n=zn(),r={keyword:`if`,schemaType:[`object`,`boolean`],trackErrors:!0,error:{message:({params:e})=>(0,t.str)`must match "${e.ifClause}" schema`,params:({params:e})=>(0,t._)`{failingKeyword: ${e.ifClause}}`},code(e){let{gen:r,parentSchema:a,it:o}=e;a.then===void 0&&a.else===void 0&&(0,n.checkStrictMode)(o,`"if" without "then" and "else" is ignored`);let s=i(o,`then`),c=i(o,`else`);if(!s&&!c)return;let l=r.let(`valid`,!0),u=r.name(`_valid`);if(d(),e.reset(),s&&c){let t=r.let(`ifClause`);e.setParams({ifClause:t}),r.if(u,f(`then`,t),f(`else`,t))}else s?r.if(u,f(`then`)):r.if((0,t.not)(u),f(`else`));e.pass(l,()=>e.error(!0));function d(){let t=e.subschema({keyword:`if`,compositeRule:!0,createErrors:!1,allErrors:!1},u);e.mergeEvaluated(t)}function f(n,i){return()=>{let a=e.subschema({keyword:n},u);r.assign(l,u),e.mergeValidEvaluated(a,l),i?r.assign(i,(0,t._)`${n}`):e.setParams({ifClause:n})}}}};function i(e,t){let r=e.schema[t];return r!==void 0&&!(0,n.alwaysValidSchema)(e,r)}e.default=r})),qr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=zn();e.default={keyword:[`then`,`else`],schemaType:[`object`,`boolean`],code({keyword:e,parentSchema:n,it:r}){n.if===void 0&&(0,t.checkStrictMode)(r,`"${e}" without "if" is ignored`)}}})),Jr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Mr(),n=Pr(),r=Nr(),i=Fr(),a=Ir(),o=Lr(),s=Rr(),c=zr(),l=Br(),u=Vr(),d=Hr(),f=Ur(),p=Wr(),m=Gr(),h=Kr(),g=qr();function _(e=!1){let _=[d.default,f.default,p.default,m.default,h.default,g.default,s.default,c.default,o.default,l.default,u.default];return e?_.push(n.default,i.default):_.push(t.default,r.default),_.push(a.default),_}e.default=_})),Yr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Rn();e.default={keyword:`format`,type:[`number`,`string`],schemaType:`string`,$data:!0,error:{message:({schemaCode:e})=>(0,t.str)`must match format "${e}"`,params:({schemaCode:e})=>(0,t._)`{format: ${e}}`},code(e,n){let{gen:r,data:i,$data:a,schema:o,schemaCode:s,it:c}=e,{opts:l,errSchemaPath:u,schemaEnv:d,self:f}=c;if(!l.validateFormats)return;a?p():m();function p(){let a=r.scopeValue(`formats`,{ref:f.formats,code:l.code.formats}),o=r.const(`fDef`,(0,t._)`${a}[${s}]`),c=r.let(`fType`),u=r.let(`format`);r.if((0,t._)`typeof ${o} == "object" && !(${o} instanceof RegExp)`,()=>r.assign(c,(0,t._)`${o}.type || "string"`).assign(u,(0,t._)`${o}.validate`),()=>r.assign(c,(0,t._)`"string"`).assign(u,o)),e.fail$data((0,t.or)(p(),m()));function p(){return l.strictSchema===!1?t.nil:(0,t._)`${s} && !${u}`}function m(){let e=d.$async?(0,t._)`(${o}.async ? await ${u}(${i}) : ${u}(${i}))`:(0,t._)`${u}(${i})`,r=(0,t._)`(typeof ${u} == "function" ? ${e} : ${u}.test(${i}))`;return(0,t._)`${u} && ${u} !== true && ${c} === ${n} && !${r}`}}function m(){let a=f.formats[o];if(!a){m();return}if(a===!0)return;let[s,c,p]=h(a);s===n&&e.pass(g());function m(){if(l.strictSchema===!1){f.logger.warn(e());return}throw Error(e());function e(){return`unknown format "${o}" ignored in schema at path "${u}"`}}function h(e){let n=e instanceof RegExp?(0,t.regexpCode)(e):l.code.formats?(0,t._)`${l.code.formats}${(0,t.getProperty)(o)}`:void 0,i=r.scopeValue(`formats`,{key:o,ref:e,code:n});return typeof e==`object`&&!(e instanceof RegExp)?[e.type||`string`,e.validate,(0,t._)`${i}.validate`]:[`string`,e,i]}function g(){if(typeof a==`object`&&!(a instanceof RegExp)&&a.async){if(!d.$async)throw Error(`async format in sync schema`);return(0,t._)`await ${p}(${i})`}return typeof c==`function`?(0,t._)`${p}(${i})`:(0,t._)`${p}.test(${i})`}}}}})),Xr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=[Yr().default]})),Zr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.contentVocabulary=e.metadataVocabulary=void 0,e.metadataVocabulary=[`title`,`description`,`default`,`deprecated`,`readOnly`,`writeOnly`,`examples`],e.contentVocabulary=[`contentMediaType`,`contentEncoding`,`contentSchema`]})),Qr=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=vr(),n=jr(),r=Jr(),i=Xr(),a=Zr();e.default=[t.default,n.default,(0,r.default)(),i.default,a.metadataVocabulary,a.contentVocabulary]})),$r=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.DiscrError=void 0;var t;(function(e){e.Tag=`tag`,e.Mapping=`mapping`})(t||(e.DiscrError=t={}))})),ei=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Rn(),n=$r(),r=nr(),i=tr(),a=zn();e.default={keyword:`discriminator`,type:`object`,schemaType:`object`,error:{message:({params:{discrError:e,tagName:t}})=>e===n.DiscrError.Tag?`tag "${t}" must be string`:`value of tag "${t}" must be in oneOf`,params:({params:{discrError:e,tag:n,tagName:r}})=>(0,t._)`{error: ${e}, tag: ${r}, tagValue: ${n}}`},code(e){let{gen:o,data:s,schema:c,parentSchema:l,it:u}=e,{oneOf:d}=l;if(!u.opts.discriminator)throw Error(`discriminator: requires discriminator option`);let f=c.propertyName;if(typeof f!=`string`)throw Error(`discriminator: requires propertyName`);if(c.mapping)throw Error(`discriminator: mapping is not supported`);if(!d)throw Error(`discriminator: requires oneOf keyword`);let p=o.let(`valid`,!1),m=o.const(`tag`,(0,t._)`${s}${(0,t.getProperty)(f)}`);o.if((0,t._)`typeof ${m} == "string"`,()=>h(),()=>e.error(!1,{discrError:n.DiscrError.Tag,tag:m,tagName:f})),e.ok(p);function h(){let r=_();o.if(!1);for(let e in r)o.elseIf((0,t._)`${m} === ${e}`),o.assign(p,g(r[e]));o.else(),e.error(!1,{discrError:n.DiscrError.Mapping,tag:m,tagName:f}),o.endIf()}function g(n){let r=o.name(`valid`),i=e.subschema({keyword:`oneOf`,schemaProp:n},r);return e.mergeEvaluated(i,t.Name),r}function _(){let e={},t=o(l),n=!0;for(let e=0;eri,$schema:()=>ni,default:()=>ci,definitions:()=>ai,properties:()=>si,title:()=>ii,type:()=>oi}),ni,ri,ii,ai,oi,si,ci,li=o((()=>{ni=`http://json-schema.org/draft-07/schema#`,ri=`http://json-schema.org/draft-07/schema#`,ii=`Core schema meta-schema`,ai={schemaArray:{type:`array`,minItems:1,items:{$ref:`#`}},nonNegativeInteger:{type:`integer`,minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:`#/definitions/nonNegativeInteger`},{default:0}]},simpleTypes:{enum:[`array`,`boolean`,`integer`,`null`,`number`,`object`,`string`]},stringArray:{type:`array`,items:{type:`string`},uniqueItems:!0,default:[]}},oi=[`object`,`boolean`],si={$id:{type:`string`,format:`uri-reference`},$schema:{type:`string`,format:`uri`},$ref:{type:`string`,format:`uri-reference`},$comment:{type:`string`},title:{type:`string`},description:{type:`string`},default:!0,readOnly:{type:`boolean`,default:!1},examples:{type:`array`,items:!0},multipleOf:{type:`number`,exclusiveMinimum:0},maximum:{type:`number`},exclusiveMaximum:{type:`number`},minimum:{type:`number`},exclusiveMinimum:{type:`number`},maxLength:{$ref:`#/definitions/nonNegativeInteger`},minLength:{$ref:`#/definitions/nonNegativeIntegerDefault0`},pattern:{type:`string`,format:`regex`},additionalItems:{$ref:`#`},items:{anyOf:[{$ref:`#`},{$ref:`#/definitions/schemaArray`}],default:!0},maxItems:{$ref:`#/definitions/nonNegativeInteger`},minItems:{$ref:`#/definitions/nonNegativeIntegerDefault0`},uniqueItems:{type:`boolean`,default:!1},contains:{$ref:`#`},maxProperties:{$ref:`#/definitions/nonNegativeInteger`},minProperties:{$ref:`#/definitions/nonNegativeIntegerDefault0`},required:{$ref:`#/definitions/stringArray`},additionalProperties:{$ref:`#`},definitions:{type:`object`,additionalProperties:{$ref:`#`},default:{}},properties:{type:`object`,additionalProperties:{$ref:`#`},default:{}},patternProperties:{type:`object`,additionalProperties:{$ref:`#`},propertyNames:{format:`regex`},default:{}},dependencies:{type:`object`,additionalProperties:{anyOf:[{$ref:`#`},{$ref:`#/definitions/stringArray`}]}},propertyNames:{$ref:`#`},const:!0,enum:{type:`array`,items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:`#/definitions/simpleTypes`},{type:`array`,items:{$ref:`#/definitions/simpleTypes`},minItems:1,uniqueItems:!0}]},format:{type:`string`},contentMediaType:{type:`string`},contentEncoding:{type:`string`},if:{$ref:`#`},then:{$ref:`#`},else:{$ref:`#`},allOf:{$ref:`#/definitions/schemaArray`},anyOf:{$ref:`#/definitions/schemaArray`},oneOf:{$ref:`#/definitions/schemaArray`},not:{$ref:`#`}},ci={$schema:ni,$id:ri,title:ii,definitions:ai,type:oi,properties:si,default:!0}})),ui=s(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0}),e.MissingRefError=e.ValidationError=e.CodeGen=e.Name=e.nil=e.stringify=e.str=e._=e.KeywordCxt=e.Ajv=void 0;var n=hr(),r=Qr(),i=ei(),a=(li(),d(ti).default),o=[`/properties`],s=`http://json-schema.org/draft-07/schema`,c=class extends n.default{_addVocabularies(){super._addVocabularies(),r.default.forEach(e=>this.addVocabulary(e)),this.opts.discriminator&&this.addKeyword(i.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let e=this.opts.$data?this.$dataMetaSchema(a,o):a;this.addMetaSchema(e,s,!1),this.refs[`http://json-schema.org/schema`]=s}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(s)?s:void 0)}};e.Ajv=c,t.exports=e=c,t.exports.Ajv=c,Object.defineProperty(e,"__esModule",{value:!0}),e.default=c;var l=$n();Object.defineProperty(e,"KeywordCxt",{enumerable:!0,get:function(){return l.KeywordCxt}});var u=Rn();Object.defineProperty(e,"_",{enumerable:!0,get:function(){return u._}}),Object.defineProperty(e,"str",{enumerable:!0,get:function(){return u.str}}),Object.defineProperty(e,"stringify",{enumerable:!0,get:function(){return u.stringify}}),Object.defineProperty(e,"nil",{enumerable:!0,get:function(){return u.nil}}),Object.defineProperty(e,"Name",{enumerable:!0,get:function(){return u.Name}}),Object.defineProperty(e,"CodeGen",{enumerable:!0,get:function(){return u.CodeGen}});var f=er();Object.defineProperty(e,"ValidationError",{enumerable:!0,get:function(){return f.default}});var p=tr();Object.defineProperty(e,"MissingRefError",{enumerable:!0,get:function(){return p.default}})})),di=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatNames=e.fastFormats=e.fullFormats=void 0;function t(e,t){return{validate:e,compare:t}}e.fullFormats={date:t(a,o),time:t(c,l),"date-time":t(d,f),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:h,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:w,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:_,int32:{type:`number`,validate:b},int64:{type:`number`,validate:x},float:{type:`number`,validate:S},double:{type:`number`,validate:S},password:!0,binary:!0},e.fastFormats={...e.fullFormats,date:t(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,o),time:t(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,l),"date-time":t(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,f),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i},e.formatNames=Object.keys(e.fullFormats);function n(e){return e%4==0&&(e%100!=0||e%400==0)}var r=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,i=[0,31,28,31,30,31,30,31,31,30,31,30,31];function a(e){let t=r.exec(e);if(!t)return!1;let a=+t[1],o=+t[2],s=+t[3];return o>=1&&o<=12&&s>=1&&s<=(o===2&&n(a)?29:i[o])}function o(e,t){if(e&&t)return e>t?1:et?1:e=v}function x(e){return Number.isInteger(e)}function S(){return!0}var C=/[^\\]\\Z/;function w(e){if(C.test(e))return!1;try{return new RegExp(e),!0}catch{return!1}}})),fi=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.formatLimitDefinition=void 0;var t=ui(),n=Rn(),r=n.operators,i={formatMaximum:{okStr:`<=`,ok:r.LTE,fail:r.GT},formatMinimum:{okStr:`>=`,ok:r.GTE,fail:r.LT},formatExclusiveMaximum:{okStr:`<`,ok:r.LT,fail:r.GTE},formatExclusiveMinimum:{okStr:`>`,ok:r.GT,fail:r.LTE}};e.formatLimitDefinition={keyword:Object.keys(i),type:`string`,schemaType:`string`,$data:!0,error:{message:({keyword:e,schemaCode:t})=>n.str`should be ${i[e].okStr} ${t}`,params:({keyword:e,schemaCode:t})=>n._`{comparison: ${i[e].okStr}, limit: ${t}}`},code(e){let{gen:r,data:a,schemaCode:o,keyword:s,it:c}=e,{opts:l,self:u}=c;if(!l.validateFormats)return;let d=new t.KeywordCxt(c,u.RULES.all.format.definition,`format`);d.$data?f():p();function f(){let t=r.scopeValue(`formats`,{ref:u.formats,code:l.code.formats}),i=r.const(`fmt`,n._`${t}[${d.schemaCode}]`);e.fail$data(n.or(n._`typeof ${i} != "object"`,n._`${i} instanceof RegExp`,n._`typeof ${i}.compare != "function"`,m(i)))}function p(){let t=d.schema,i=u.formats[t];if(!i||i===!0)return;if(typeof i!=`object`||i instanceof RegExp||typeof i.compare!=`function`)throw Error(`"${s}": format "${t}" does not define "compare" function`);let a=r.scopeValue(`formats`,{key:t,ref:i,code:l.code.formats?n._`${l.code.formats}${n.getProperty(t)}`:void 0});e.fail$data(m(a))}function m(e){return n._`${e}.compare(${a}, ${o}) ${i[s].fail} 0`}},dependencies:[`format`]},e.default=t=>(t.addKeyword(e.formatLimitDefinition),t)})),pi=s(((e,t)=>{Object.defineProperty(e,"__esModule",{value:!0});var n=di(),r=fi(),i=Rn(),a=new i.Name(`fullFormats`),o=new i.Name(`fastFormats`),s=(e,t={keywords:!0})=>{if(Array.isArray(t))return c(e,t,n.fullFormats,a),e;let[i,s]=t.mode===`fast`?[n.fastFormats,o]:[n.fullFormats,a];return c(e,t.formats||n.formatNames,i,s),t.keywords&&r.default(e),e};s.get=(e,t=`full`)=>{let r=(t===`fast`?n.fastFormats:n.fullFormats)[e];if(!r)throw Error(`Unknown format "${e}"`);return r};function c(e,t,n,r){var a;(a=e.opts.code).formats??(a.formats=i._`require("ajv-formats/dist/formats").${r}`);for(let r of t)e.addFormat(r,n[r])}t.exports=e=s,Object.defineProperty(e,"__esModule",{value:!0}),e.default=s})),mi=s(((e,t)=>{function n(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}t.exports=n})),hi=s(((e,t)=>{t.exports=mi()()})),gi=s(((e,t)=>{var n=hi(),r=ft();function i(e,t){return e&&n(e,t,r)}t.exports=i})),_i=s(((e,t)=>{var n=dt();function r(e,t){return function(r,i){if(r==null)return r;if(!n(r))return e(r,i);for(var a=r.length,o=t?a:-1,s=Object(r);(t?o--:++o{var n=gi();t.exports=_i()(n)})),yi=s(((e,t)=>{var n=vi();function r(e,t){var r=[];return n(e,function(e,n,i){t(e,n,i)&&r.push(e)}),r}t.exports=r})),bi=s(((e,t)=>{var n=Ke(),r=yi(),i=Kt(),a=We();function o(e,t){return(a(e)?n:r)(e,i(t,3))}t.exports=o})),xi=s(((e,t)=>{var n=xt();function r(e,t){return n(e,t)}t.exports=r})),Si=s(((e,t)=>{var n=he();t.exports=function(){try{var e=n(Object,`defineProperty`);return e({},``,{}),e}catch{}}()})),Ci=s(((e,t)=>{var n=Si();function r(e,t,r){t==`__proto__`&&n?n(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}t.exports=r})),wi=s(((e,t)=>{var n=Ci(),r=ee();function i(e,t,i){(i!==void 0&&!r(e[t],i)||i===void 0&&!(t in e))&&n(e,t,i)}t.exports=i})),Ti=s(((e,t)=>{var n=T(),r=typeof e==`object`&&e&&!e.nodeType&&e,i=r&&typeof t==`object`&&t&&!t.nodeType&&t,a=i&&i.exports===r?n.Buffer:void 0,o=a?a.allocUnsafe:void 0;function s(e,t){if(t)return e.slice();var n=e.length,r=o?o(n):new e.constructor(n);return e.copy(r),r}t.exports=s})),Ei=s(((e,t)=>{var n=ze();function r(e){var t=new e.constructor(e.byteLength);return new n(t).set(new n(e)),t}t.exports=r})),Di=s(((e,t)=>{var n=Ei();function r(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}t.exports=r})),Oi=s(((e,t)=>{function n(e,t){var n=-1,r=e.length;for(t||=Array(r);++n{var n=le(),r=Object.create;t.exports=function(){function e(){}return function(t){if(!n(t))return{};if(r)return r(t);e.prototype=t;var i=new e;return e.prototype=void 0,i}}()})),Ai=s(((e,t)=>{t.exports=ct()(Object.getPrototypeOf,Object)})),ji=s(((e,t)=>{var n=ki(),r=Ai(),i=st();function a(e){return typeof e.constructor==`function`&&!i(e)?n(r(e)):{}}t.exports=a})),Mi=s(((e,t)=>{var n=dt(),r=A();function i(e){return r(e)&&n(e)}t.exports=i})),Ni=s(((e,t)=>{var n=k(),r=Ai(),i=A(),a=`[object Object]`,o=Function.prototype,s=Object.prototype,c=o.toString,l=s.hasOwnProperty,u=c.call(Object);function d(e){if(!i(e)||n(e)!=a)return!1;var t=r(e);if(t===null)return!0;var o=l.call(t,`constructor`)&&t.constructor;return typeof o==`function`&&o instanceof o&&c.call(o)==u}t.exports=d})),Pi=s(((e,t)=>{function n(e,t){if(!(t===`constructor`&&typeof e[t]==`function`)&&t!=`__proto__`)return e[t]}t.exports=n})),Fi=s(((e,t)=>{var n=Ci(),r=ee(),i=Object.prototype.hasOwnProperty;function a(e,t,a){var o=e[t];(!(i.call(e,t)&&r(o,a))||a===void 0&&!(t in e))&&n(e,t,a)}t.exports=a})),Ii=s(((e,t)=>{var n=Fi(),r=Ci();function i(e,t,i,a){var o=!i;i||={};for(var s=-1,c=t.length;++s{function n(e){var t=[];if(e!=null)for(var n in Object(e))t.push(n);return t}t.exports=n})),Ri=s(((e,t)=>{var n=le(),r=st(),i=Li(),a=Object.prototype.hasOwnProperty;function o(e){if(!n(e))return i(e);var t=r(e),o=[];for(var s in e)s==`constructor`&&(t||!a.call(e,s))||o.push(s);return o}t.exports=o})),zi=s(((e,t)=>{var n=ot(),r=Ri(),i=dt();function a(e){return i(e)?n(e,!0):r(e)}t.exports=a})),Bi=s(((e,t)=>{var n=Ii(),r=zi();function i(e){return n(e,r(e))}t.exports=i})),Vi=s(((e,t)=>{var n=wi(),r=Ti(),i=Di(),a=Oi(),o=ji(),s=Ze(),c=We(),l=Mi(),u=$e(),d=ue(),f=le(),p=Ni(),m=at(),h=Pi(),g=Bi();function _(e,t,_,v,y,b,x){var S=h(e,_),C=h(t,_),w=x.get(C);if(w){n(e,_,w);return}var T=b?b(S,C,_+``,e,t,x):void 0,E=T===void 0;if(E){var D=c(C),O=!D&&u(C),k=!D&&!O&&m(C);T=C,D||O||k?c(S)?T=S:l(S)?T=a(S):O?(E=!1,T=r(C,!0)):k?(E=!1,T=i(C,!0)):T=[]:p(C)||s(C)?(T=S,s(S)?T=g(S):(!f(S)||d(S))&&(T=o(C))):E=!1}E&&(x.set(C,T),y(T,C,v,b,x),x.delete(C)),n(e,_,T)}t.exports=_})),Hi=s(((e,t)=>{var n=Me(),r=wi(),i=hi(),a=Vi(),o=le(),s=zi(),c=Pi();function l(e,t,u,d,f){e!==t&&i(t,function(i,s){if(f||=new n,o(i))a(e,t,s,u,l,d,f);else{var p=d?d(c(e,s),i,s+``,e,t,f):void 0;p===void 0&&(p=i),r(e,s,p)}},s)}t.exports=l})),Ui=s(((e,t)=>{function n(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}t.exports=n})),Wi=s(((e,t)=>{var n=Ui(),r=Math.max;function i(e,t,i){return t=r(t===void 0?e.length-1:t,0),function(){for(var a=arguments,o=-1,s=r(a.length-t,0),c=Array(s);++o{function n(e){return function(){return e}}t.exports=n})),Ki=s(((e,t)=>{var n=Gi(),r=Si(),i=Ht();t.exports=r?function(e,t){return r(e,`toString`,{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:i})),qi=s(((e,t)=>{var n=800,r=16,i=Date.now;function a(e){var t=0,a=0;return function(){var o=i(),s=r-(o-a);if(a=o,s>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}t.exports=a})),Ji=s(((e,t)=>{var n=Ki();t.exports=qi()(n)})),Yi=s(((e,t)=>{var n=Ht(),r=Wi(),i=Ji();function a(e,t){return i(r(e,t,n),e+``)}t.exports=a})),Xi=s(((e,t)=>{var n=Yi(),r=hn();function i(e){return n(function(t,n){var i=-1,a=n.length,o=a>1?n[a-1]:void 0,s=a>2?n[2]:void 0;for(o=e.length>3&&typeof o==`function`?(a--,o):void 0,s&&r(n[0],n[1],s)&&(o=a<3?void 0:o,a=1),t=Object(t);++i{var n=Hi();t.exports=Xi()(function(e,t,r){n(e,t,r)})})),Qi=s(((e,t)=>{function n(e,t){for(var n=-1,r=e==null?0:e.length;++n{var n=Ii(),r=ft();function i(e,t){return e&&n(t,r(t),e)}t.exports=i})),ea=s(((e,t)=>{var n=Ii(),r=zi();function i(e,t){return e&&n(t,r(t),e)}t.exports=i})),ta=s(((e,t)=>{var n=Ii(),r=Je();function i(e,t){return n(e,r(e),t)}t.exports=i})),na=s(((e,t)=>{var n=Ue(),r=Ai(),i=Je(),a=qe();t.exports=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,i(e)),e=r(e);return t}:a})),ra=s(((e,t)=>{var n=Ii(),r=na();function i(e,t){return n(e,r(e),t)}t.exports=i})),ia=s(((e,t)=>{var n=Ge(),r=na(),i=zi();function a(e){return n(e,i,r)}t.exports=a})),aa=s(((e,t)=>{var n=Object.prototype.hasOwnProperty;function r(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]==`string`&&n.call(e,`index`)&&(r.index=e.index,r.input=e.input),r}t.exports=r})),oa=s(((e,t)=>{var n=Ei();function r(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}t.exports=r})),sa=s(((e,t)=>{var n=/\w*$/;function r(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}t.exports=r})),ca=s(((e,t)=>{var n=E(),r=n?n.prototype:void 0,i=r?r.valueOf:void 0;function a(e){return i?Object(i.call(e)):{}}t.exports=a})),la=s(((e,t)=>{var n=Ei(),r=oa(),i=sa(),a=ca(),o=Di(),s=`[object Boolean]`,c=`[object Date]`,l=`[object Map]`,u=`[object Number]`,d=`[object RegExp]`,f=`[object Set]`,p=`[object String]`,m=`[object Symbol]`,h=`[object ArrayBuffer]`,g=`[object DataView]`,_=`[object Float32Array]`,v=`[object Float64Array]`,y=`[object Int8Array]`,b=`[object Int16Array]`,x=`[object Int32Array]`,S=`[object Uint8Array]`,C=`[object Uint8ClampedArray]`,w=`[object Uint16Array]`,T=`[object Uint32Array]`;function E(e,t,E){var D=e.constructor;switch(t){case h:return n(e);case s:case c:return new D(+e);case g:return r(e,E);case _:case v:case y:case b:case x:case S:case C:case w:case T:return o(e,E);case l:return new D;case u:case p:return new D(e);case d:return i(e);case f:return new D;case m:return a(e)}}t.exports=E})),ua=s(((e,t)=>{var n=yt(),r=A(),i=`[object Map]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),da=s(((e,t)=>{var n=ua(),r=rt(),i=it(),a=i&&i.isMap;t.exports=a?r(a):n})),z=s(((e,t)=>{var n=yt(),r=A(),i=`[object Set]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),B=s(((e,t)=>{var n=z(),r=rt(),i=it(),a=i&&i.isSet;t.exports=a?r(a):n})),fa=s(((e,t)=>{var n=Me(),r=Qi(),i=Fi(),a=$i(),o=ea(),s=Ti(),c=Oi(),l=ta(),u=ra(),d=pt(),f=ia(),p=yt(),m=aa(),h=la(),g=ji(),_=We(),v=$e(),y=da(),b=le(),x=B(),S=ft(),C=zi(),w=1,T=2,E=4,D=`[object Arguments]`,O=`[object Array]`,k=`[object Boolean]`,A=`[object Date]`,j=`[object Error]`,M=`[object Function]`,N=`[object GeneratorFunction]`,P=`[object Map]`,ee=`[object Number]`,F=`[object Object]`,I=`[object RegExp]`,te=`[object Set]`,ne=`[object String]`,re=`[object Symbol]`,ie=`[object WeakMap]`,ae=`[object ArrayBuffer]`,oe=`[object DataView]`,se=`[object Float32Array]`,ce=`[object Float64Array]`,ue=`[object Int8Array]`,de=`[object Int16Array]`,fe=`[object Int32Array]`,pe=`[object Uint8Array]`,L=`[object Uint8ClampedArray]`,me=`[object Uint16Array]`,he=`[object Uint32Array]`,ge={};ge[D]=ge[O]=ge[ae]=ge[oe]=ge[k]=ge[A]=ge[se]=ge[ce]=ge[ue]=ge[de]=ge[fe]=ge[P]=ge[ee]=ge[F]=ge[I]=ge[te]=ge[ne]=ge[re]=ge[pe]=ge[L]=ge[me]=ge[he]=!0,ge[j]=ge[M]=ge[ie]=!1;function _e(e,t,O,k,A,j){var P,ee=t&w,I=t&T,te=t&E;if(O&&(P=A?O(e,k,A,j):O(e)),P!==void 0)return P;if(!b(e))return e;var ne=_(e);if(ne){if(P=m(e),!ee)return c(e,P)}else{var re=p(e),ie=re==M||re==N;if(v(e))return s(e,ee);if(re==F||re==D||ie&&!A){if(P=I||ie?{}:g(e),!ee)return I?u(e,o(P,e)):l(e,a(P,e))}else{if(!ge[re])return A?e:{};P=h(e,re,ee)}}j||=new n;var ae=j.get(e);if(ae)return ae;j.set(e,P),x(e)?e.forEach(function(n){P.add(_e(n,t,O,n,e,j))}):y(e)&&e.forEach(function(n,r){P.set(r,_e(n,t,O,r,e,j))});var oe=ne?void 0:(te?I?f:d:I?C:S)(e);return r(oe||e,function(n,r){oe&&(r=n,n=e[r]),i(P,r,_e(n,t,O,r,e,j))}),P}t.exports=_e})),pa=s(((e,t)=>{var n=fa(),r=1,i=4;function a(e){return n(e,r|i)}t.exports=a})),ma=s((e=>{e.aliasToReal={each:`forEach`,eachRight:`forEachRight`,entries:`toPairs`,entriesIn:`toPairsIn`,extend:`assignIn`,extendAll:`assignInAll`,extendAllWith:`assignInAllWith`,extendWith:`assignInWith`,first:`head`,conforms:`conformsTo`,matches:`isMatch`,property:`get`,__:`placeholder`,F:`stubFalse`,T:`stubTrue`,all:`every`,allPass:`overEvery`,always:`constant`,any:`some`,anyPass:`overSome`,apply:`spread`,assoc:`set`,assocPath:`set`,complement:`negate`,compose:`flowRight`,contains:`includes`,dissoc:`unset`,dissocPath:`unset`,dropLast:`dropRight`,dropLastWhile:`dropRightWhile`,equals:`isEqual`,identical:`eq`,indexBy:`keyBy`,init:`initial`,invertObj:`invert`,juxt:`over`,omitAll:`omit`,nAry:`ary`,path:`get`,pathEq:`matchesProperty`,pathOr:`getOr`,paths:`at`,pickAll:`pick`,pipe:`flow`,pluck:`map`,prop:`get`,propEq:`matchesProperty`,propOr:`getOr`,props:`at`,symmetricDifference:`xor`,symmetricDifferenceBy:`xorBy`,symmetricDifferenceWith:`xorWith`,takeLast:`takeRight`,takeLastWhile:`takeRightWhile`,unapply:`rest`,unnest:`flatten`,useWith:`overArgs`,where:`conformsTo`,whereEq:`isMatch`,zipObj:`zipObject`},e.aryMethod={1:`assignAll.assignInAll.attempt.castArray.ceil.create.curry.curryRight.defaultsAll.defaultsDeepAll.floor.flow.flowRight.fromPairs.invert.iteratee.memoize.method.mergeAll.methodOf.mixin.nthArg.over.overEvery.overSome.rest.reverse.round.runInContext.spread.template.trim.trimEnd.trimStart.uniqueId.words.zipAll`.split(`.`),2:`add.after.ary.assign.assignAllWith.assignIn.assignInAllWith.at.before.bind.bindAll.bindKey.chunk.cloneDeepWith.cloneWith.concat.conformsTo.countBy.curryN.curryRightN.debounce.defaults.defaultsDeep.defaultTo.delay.difference.divide.drop.dropRight.dropRightWhile.dropWhile.endsWith.eq.every.filter.find.findIndex.findKey.findLast.findLastIndex.findLastKey.flatMap.flatMapDeep.flattenDepth.forEach.forEachRight.forIn.forInRight.forOwn.forOwnRight.get.groupBy.gt.gte.has.hasIn.includes.indexOf.intersection.invertBy.invoke.invokeMap.isEqual.isMatch.join.keyBy.lastIndexOf.lt.lte.map.mapKeys.mapValues.matchesProperty.maxBy.meanBy.merge.mergeAllWith.minBy.multiply.nth.omit.omitBy.overArgs.pad.padEnd.padStart.parseInt.partial.partialRight.partition.pick.pickBy.propertyOf.pull.pullAll.pullAt.random.range.rangeRight.rearg.reject.remove.repeat.restFrom.result.sampleSize.some.sortBy.sortedIndex.sortedIndexOf.sortedLastIndex.sortedLastIndexOf.sortedUniqBy.split.spreadFrom.startsWith.subtract.sumBy.take.takeRight.takeRightWhile.takeWhile.tap.throttle.thru.times.trimChars.trimCharsEnd.trimCharsStart.truncate.union.uniqBy.uniqWith.unset.unzipWith.without.wrap.xor.zip.zipObject.zipObjectDeep`.split(`.`),3:`assignInWith.assignWith.clamp.differenceBy.differenceWith.findFrom.findIndexFrom.findLastFrom.findLastIndexFrom.getOr.includesFrom.indexOfFrom.inRange.intersectionBy.intersectionWith.invokeArgs.invokeArgsMap.isEqualWith.isMatchWith.flatMapDepth.lastIndexOfFrom.mergeWith.orderBy.padChars.padCharsEnd.padCharsStart.pullAllBy.pullAllWith.rangeStep.rangeStepRight.reduce.reduceRight.replace.set.slice.sortedIndexBy.sortedLastIndexBy.transform.unionBy.unionWith.update.xorBy.xorWith.zipWith`.split(`.`),4:[`fill`,`setWith`,`updateWith`]},e.aryRearg={2:[1,0],3:[2,0,1],4:[3,2,0,1]},e.iterateeAry={dropRightWhile:1,dropWhile:1,every:1,filter:1,find:1,findFrom:1,findIndex:1,findIndexFrom:1,findKey:1,findLast:1,findLastFrom:1,findLastIndex:1,findLastIndexFrom:1,findLastKey:1,flatMap:1,flatMapDeep:1,flatMapDepth:1,forEach:1,forEachRight:1,forIn:1,forInRight:1,forOwn:1,forOwnRight:1,map:1,mapKeys:1,mapValues:1,partition:1,reduce:2,reduceRight:2,reject:1,remove:1,some:1,takeRightWhile:1,takeWhile:1,times:1,transform:2},e.iterateeRearg={mapKeys:[1],reduceRight:[1,0]},e.methodRearg={assignInAllWith:[1,0],assignInWith:[1,2,0],assignAllWith:[1,0],assignWith:[1,2,0],differenceBy:[1,2,0],differenceWith:[1,2,0],getOr:[2,1,0],intersectionBy:[1,2,0],intersectionWith:[1,2,0],isEqualWith:[1,2,0],isMatchWith:[2,1,0],mergeAllWith:[1,0],mergeWith:[1,2,0],padChars:[2,1,0],padCharsEnd:[2,1,0],padCharsStart:[2,1,0],pullAllBy:[2,1,0],pullAllWith:[2,1,0],rangeStep:[1,2,0],rangeStepRight:[1,2,0],setWith:[3,1,2,0],sortedIndexBy:[2,1,0],sortedLastIndexBy:[2,1,0],unionBy:[1,2,0],unionWith:[1,2,0],updateWith:[3,1,2,0],xorBy:[1,2,0],xorWith:[1,2,0],zipWith:[1,2,0]},e.methodSpread={assignAll:{start:0},assignAllWith:{start:0},assignInAll:{start:0},assignInAllWith:{start:0},defaultsAll:{start:0},defaultsDeepAll:{start:0},invokeArgs:{start:2},invokeArgsMap:{start:2},mergeAll:{start:0},mergeAllWith:{start:0},partial:{start:1},partialRight:{start:1},without:{start:1},zipAll:{start:0}},e.mutate={array:{fill:!0,pull:!0,pullAll:!0,pullAllBy:!0,pullAllWith:!0,pullAt:!0,remove:!0,reverse:!0},object:{assign:!0,assignAll:!0,assignAllWith:!0,assignIn:!0,assignInAll:!0,assignInAllWith:!0,assignInWith:!0,assignWith:!0,defaults:!0,defaultsAll:!0,defaultsDeep:!0,defaultsDeepAll:!0,merge:!0,mergeAll:!0,mergeAllWith:!0,mergeWith:!0},set:{set:!0,setWith:!0,unset:!0,update:!0,updateWith:!0}},e.realToAlias=function(){var t=Object.prototype.hasOwnProperty,n=e.aliasToReal,r={};for(var i in n){var a=n[i];t.call(r,a)?r[a].push(i):r[a]=[i]}return r}(),e.remap={assignAll:`assign`,assignAllWith:`assignWith`,assignInAll:`assignIn`,assignInAllWith:`assignInWith`,curryN:`curry`,curryRightN:`curryRight`,defaultsAll:`defaults`,defaultsDeepAll:`defaultsDeep`,findFrom:`find`,findIndexFrom:`findIndex`,findLastFrom:`findLast`,findLastIndexFrom:`findLastIndex`,getOr:`get`,includesFrom:`includes`,indexOfFrom:`indexOf`,invokeArgs:`invoke`,invokeArgsMap:`invokeMap`,lastIndexOfFrom:`lastIndexOf`,mergeAll:`merge`,mergeAllWith:`mergeWith`,padChars:`pad`,padCharsEnd:`padEnd`,padCharsStart:`padStart`,propertyOf:`get`,rangeStep:`range`,rangeStepRight:`rangeRight`,restFrom:`rest`,spreadFrom:`spread`,trimChars:`trim`,trimCharsEnd:`trimEnd`,trimCharsStart:`trimStart`,zipAll:`zip`},e.skipFixed={castArray:!0,flow:!0,flowRight:!0,iteratee:!0,mixin:!0,rearg:!0,runInContext:!0},e.skipRearg={add:!0,assign:!0,assignIn:!0,bind:!0,bindKey:!0,concat:!0,difference:!0,divide:!0,eq:!0,gt:!0,gte:!0,isEqual:!0,lt:!0,lte:!0,matchesProperty:!0,merge:!0,multiply:!0,overArgs:!0,partial:!0,partialRight:!0,propertyOf:!0,random:!0,range:!0,rangeRight:!0,subtract:!0,zip:!0,zipObject:!0,zipObjectDeep:!0}})),ha=s(((e,t)=>{t.exports={}})),ga=s(((e,t)=>{var n=ma(),r=ha(),i=Array.prototype.push;function a(e,t){return t==2?function(t,n){return e.apply(void 0,arguments)}:function(t){return e.apply(void 0,arguments)}}function o(e,t){return t==2?function(t,n){return e(t,n)}:function(t){return e(t)}}function s(e){for(var t=e?e.length:0,n=Array(t);t--;)n[t]=e[t];return n}function c(e){return function(t){return e({},t)}}function l(e,t){return function(){for(var n=arguments.length,r=n-1,a=Array(n);n--;)a[n]=arguments[n];var o=a[t],s=a.slice(0,t);return o&&i.apply(s,o),t!=r&&i.apply(s,a.slice(t+1)),e.apply(this,s)}}function u(e,t){return function(){var n=arguments.length;if(n){for(var r=Array(n);n--;)r[n]=arguments[n];var i=r[0]=t.apply(void 0,r);return e.apply(void 0,r),i}}}function d(e,t,i,f){var p=typeof t==`function`,m=t===Object(t);if(m&&(f=i,i=t,t=void 0),i==null)throw TypeError();f||={};var h={cap:`cap`in f?f.cap:!0,curry:`curry`in f?f.curry:!0,fixed:`fixed`in f?f.fixed:!0,immutable:`immutable`in f?f.immutable:!0,rearg:`rearg`in f?f.rearg:!0},g=p?i:r,_=`curry`in f&&f.curry,v=`fixed`in f&&f.fixed,y=`rearg`in f&&f.rearg,b=p?i.runInContext():void 0,x=p?i:{ary:e.ary,assign:e.assign,clone:e.clone,curry:e.curry,forEach:e.forEach,isArray:e.isArray,isError:e.isError,isFunction:e.isFunction,isWeakMap:e.isWeakMap,iteratee:e.iteratee,keys:e.keys,rearg:e.rearg,toInteger:e.toInteger,toPath:e.toPath},S=x.ary,C=x.assign,w=x.clone,T=x.curry,E=x.forEach,D=x.isArray,O=x.isError,k=x.isFunction,A=x.isWeakMap,j=x.keys,M=x.rearg,N=x.toInteger,P=x.toPath,ee=j(n.aryMethod),F={castArray:function(e){return function(){var t=arguments[0];return D(t)?e(s(t)):e.apply(void 0,arguments)}},iteratee:function(e){return function(){var t=arguments[0],n=arguments[1],r=e(t,n),i=r.length;return h.cap&&typeof n==`number`?(n=n>2?n-2:1,i&&i<=n?r:o(r,n)):r}},mixin:function(e){return function(t){var n=this;if(!k(n))return e(n,Object(t));var r=[];return E(j(t),function(e){k(t[e])&&r.push([e,n.prototype[e]])}),e(n,Object(t)),E(r,function(e){var t=e[1];k(t)?n.prototype[e[0]]=t:delete n.prototype[e[0]]}),n}},nthArg:function(e){return function(t){var n=t<0?1:N(t)+1;return T(e(t),n)}},rearg:function(e){return function(t,n){var r=n?n.length:0;return T(e(t,n),r)}},runInContext:function(t){return function(n){return d(e,t(n),f)}}};function I(e,t){if(h.cap){var r=n.iterateeRearg[e];if(r)return ce(t,r);var i=!p&&n.iterateeAry[e];if(i)return se(t,i)}return t}function te(e,t,n){return _||h.curry&&n>1?T(t,n):t}function ne(e,t,r){if(h.fixed&&(v||!n.skipFixed[e])){var i=n.methodSpread[e],a=i&&i.start;return a===void 0?S(t,r):l(t,a)}return t}function re(e,t,r){return h.rearg&&r>1&&(y||!n.skipRearg[e])?M(t,n.methodRearg[e]||n.aryRearg[r]):t}function ie(e,t){t=P(t);for(var n=-1,r=t.length,i=r-1,a=w(Object(e)),o=a;o!=null&&++n{var n=vt();t.exports=n&&new n})),va=s(((e,t)=>{var n=Ht(),r=_a();t.exports=r?function(e,t){return r.set(e,t),e}:n})),ya=s(((e,t)=>{var n=ki(),r=le();function i(e){return function(){var t=arguments;switch(t.length){case 0:return new e;case 1:return new e(t[0]);case 2:return new e(t[0],t[1]);case 3:return new e(t[0],t[1],t[2]);case 4:return new e(t[0],t[1],t[2],t[3]);case 5:return new e(t[0],t[1],t[2],t[3],t[4]);case 6:return new e(t[0],t[1],t[2],t[3],t[4],t[5]);case 7:return new e(t[0],t[1],t[2],t[3],t[4],t[5],t[6])}var i=n(e.prototype),a=e.apply(i,t);return r(a)?a:i}}t.exports=i})),ba=s(((e,t)=>{var n=ya(),r=T(),i=1;function a(e,t,a){var o=t&i,s=n(e);function c(){return(this&&this!==r&&this instanceof c?s:e).apply(o?a:this,arguments)}return c}t.exports=a})),xa=s(((e,t)=>{var n=Math.max;function r(e,t,r,i){for(var a=-1,o=e.length,s=r.length,c=-1,l=t.length,u=n(o-s,0),d=Array(l+u),f=!i;++c{var n=Math.max;function r(e,t,r,i){for(var a=-1,o=e.length,s=-1,c=r.length,l=-1,u=t.length,d=n(o-c,0),f=Array(d+u),p=!i;++a{function n(e,t){for(var n=e.length,r=0;n--;)e[n]===t&&++r;return r}t.exports=n})),wa=s(((e,t)=>{function n(){}t.exports=n})),Ta=s(((e,t)=>{var n=ki(),r=wa(),i=4294967295;function a(e){this.__wrapped__=e,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=i,this.__views__=[]}a.prototype=n(r.prototype),a.prototype.constructor=a,t.exports=a})),Ea=s(((e,t)=>{function n(){}t.exports=n})),Da=s(((e,t)=>{var n=_a(),r=Ea();t.exports=n?function(e){return n.get(e)}:r})),Oa=s(((e,t)=>{t.exports={}})),ka=s(((e,t)=>{var n=Oa(),r=Object.prototype.hasOwnProperty;function i(e){for(var t=e.name+``,i=n[t],a=r.call(n,t)?i.length:0;a--;){var o=i[a],s=o.func;if(s==null||s==e)return o.name}return t}t.exports=i})),Aa=s(((e,t)=>{var n=ki(),r=wa();function i(e,t){this.__wrapped__=e,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=void 0}i.prototype=n(r.prototype),i.prototype.constructor=i,t.exports=i})),ja=s(((e,t)=>{var n=Ta(),r=Aa(),i=Oi();function a(e){if(e instanceof n)return e.clone();var t=new r(e.__wrapped__,e.__chain__);return t.__actions__=i(e.__actions__),t.__index__=e.__index__,t.__values__=e.__values__,t}t.exports=a})),Ma=s(((e,t)=>{var n=Ta(),r=Aa(),i=wa(),a=We(),o=A(),s=ja(),c=Object.prototype.hasOwnProperty;function l(e){if(o(e)&&!a(e)&&!(e instanceof n)){if(e instanceof r)return e;if(c.call(e,`__wrapped__`))return s(e)}return new r(e)}l.prototype=i.prototype,l.prototype.constructor=l,t.exports=l})),Na=s(((e,t)=>{var n=Ta(),r=Da(),i=ka(),a=Ma();function o(e){var t=i(e),o=a[t];if(typeof o!=`function`||!(t in n.prototype))return!1;if(e===o)return!0;var s=r(o);return!!s&&e===s[0]}t.exports=o})),Pa=s(((e,t)=>{var n=va();t.exports=qi()(n)})),Fa=s(((e,t)=>{var n=/\{\n\/\* \[wrapped with (.+)\] \*/,r=/,? & /;function i(e){var t=e.match(n);return t?t[1].split(r):[]}t.exports=i})),Ia=s(((e,t)=>{var n=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/;function r(e,t){var r=t.length;if(!r)return e;var i=r-1;return t[i]=(r>1?`& `:``)+t[i],t=t.join(r>2?`, `:` `),e.replace(n,`{ /* [wrapped with `+t+`] */ `)}t.exports=r})),La=s(((e,t)=>{var n=jn();function r(e,t){return!!(e!=null&&e.length)&&n(e,t,0)>-1}t.exports=r})),Ra=s(((e,t)=>{var n=Qi(),r=La(),i=[[`ary`,128],[`bind`,1],[`bindKey`,2],[`curry`,8],[`curryRight`,16],[`flip`,512],[`partial`,32],[`partialRight`,64],[`rearg`,256]];function a(e,t){return n(i,function(n){var i=`_.`+n[0];t&n[1]&&!r(e,i)&&e.push(i)}),e.sort()}t.exports=a})),za=s(((e,t)=>{var n=Fa(),r=Ia(),i=Ji(),a=Ra();function o(e,t,o){var s=t+``;return i(e,r(s,a(n(s),o)))}t.exports=o})),Ba=s(((e,t)=>{var n=Na(),r=Pa(),i=za(),a=1,o=2,s=4,c=8,l=32,u=64;function d(e,t,d,f,p,m,h,g,_,v){var y=t&c,b=y?h:void 0,x=y?void 0:h,S=y?m:void 0,C=y?void 0:m;t|=y?l:u,t&=~(y?u:l),t&s||(t&=~(a|o));var w=[e,t,p,S,b,C,x,g,_,v],T=d.apply(void 0,w);return n(e)&&r(T,w),T.placeholder=f,i(T,e,t)}t.exports=d})),Va=s(((e,t)=>{function n(e){return e.placeholder}t.exports=n})),Ha=s(((e,t)=>{var n=Oi(),r=et(),i=Math.min;function a(e,t){for(var a=e.length,o=i(t.length,a),s=n(e);o--;){var c=t[o];e[o]=r(c,a)?s[c]:void 0}return e}t.exports=a})),Ua=s(((e,t)=>{var n=`__lodash_placeholder__`;function r(e,t){for(var r=-1,i=e.length,a=0,o=[];++r{var n=xa(),r=Sa(),i=Ca(),a=ya(),o=Ba(),s=Va(),c=Ha(),l=Ua(),u=T(),d=1,f=2,p=8,m=16,h=128,g=512;function _(e,t,v,y,b,x,S,C,w,T){var E=t&h,D=t&d,O=t&f,k=t&(p|m),A=t&g,j=O?void 0:a(e);function M(){for(var d=arguments.length,f=Array(d),p=d;p--;)f[p]=arguments[p];if(k)var m=s(M),h=i(f,m);if(y&&(f=n(f,y,b,k)),x&&(f=r(f,x,S,k)),d-=h,k&&d1&&f.reverse(),E&&w{var n=Ui(),r=ya(),i=Wa(),a=Ba(),o=Va(),s=Ua(),c=T();function l(e,t,l){var u=r(e);function d(){for(var r=arguments.length,f=Array(r),p=r,m=o(d);p--;)f[p]=arguments[p];var h=r<3&&f[0]!==m&&f[r-1]!==m?[]:s(f,m);return r-=h.length,r{var n=Ui(),r=ya(),i=T(),a=1;function o(e,t,o,s){var c=t&a,l=r(e);function u(){for(var t=-1,r=arguments.length,a=-1,d=s.length,f=Array(d+r),p=this&&this!==i&&this instanceof u?l:e;++a{var n=xa(),r=Sa(),i=Ua(),a=`__lodash_placeholder__`,o=1,s=2,c=4,l=8,u=128,d=256,f=Math.min;function p(e,t){var p=e[1],m=t[1],h=p|m,g=h<(o|s|u),_=m==u&&p==l||m==u&&p==d&&e[7].length<=t[8]||m==(u|d)&&t[7].length<=t[8]&&p==l;if(!(g||_))return e;m&o&&(e[2]=t[2],h|=p&o?0:c);var v=t[3];if(v){var y=e[3];e[3]=y?n(y,v,t[4]):v,e[4]=y?i(e[3],a):t[4]}return v=t[5],v&&(y=e[5],e[5]=y?r(y,v,t[6]):v,e[6]=y?i(e[5],a):t[6]),v=t[7],v&&(e[7]=v),m&u&&(e[8]=e[8]==null?t[8]:f(e[8],t[8])),e[9]??=t[9],e[0]=t[0],e[1]=h,e}t.exports=p})),Ja=s(((e,t)=>{var n=va(),r=ba(),i=Ga(),a=Wa(),o=Ka(),s=Da(),c=qa(),l=Pa(),u=za(),d=En(),f=`Expected a function`,p=1,m=2,h=8,g=16,_=32,v=64,y=Math.max;function b(e,t,b,x,S,C,w,T){var E=t&m;if(!E&&typeof e!=`function`)throw TypeError(f);var D=x?x.length:0;if(D||(t&=~(_|v),x=S=void 0),w=w===void 0?w:y(d(w),0),T=T===void 0?T:d(T),D-=S?S.length:0,t&v){var O=x,k=S;x=S=void 0}var A=E?void 0:s(e),j=[e,t,b,x,S,O,k,C,w,T];if(A&&c(j,A),e=j[0],t=j[1],b=j[2],x=j[3],S=j[4],T=j[9]=j[9]===void 0?E?0:e.length:y(j[9]-D,0),!T&&t&(h|g)&&(t&=~(h|g)),!t||t==p)var M=r(e,t,b);else M=t==h||t==g?i(e,t,T):(t==_||t==(p|_))&&!S.length?o(e,t,b,x):a.apply(void 0,j);return u((A?n:l)(M,j),e,t)}t.exports=b})),Ya=s(((e,t)=>{var n=Ja(),r=128;function i(e,t,i){return t=i?void 0:t,t=e&&t==null?e.length:t,n(e,r,void 0,void 0,void 0,void 0,t)}t.exports=i})),Xa=s(((e,t)=>{var n=fa(),r=4;function i(e){return n(e,r)}t.exports=i})),Za=s(((e,t)=>{var n=Ja(),r=8;function i(e,t,a){t=a?void 0:t;var o=n(e,r,void 0,void 0,void 0,void 0,void 0,t);return o.placeholder=i.placeholder,o}i.placeholder={},t.exports=i})),Qa=s(((e,t)=>{var n=k(),r=A(),i=Ni(),a=`[object DOMException]`,o=`[object Error]`;function s(e){if(!r(e))return!1;var t=n(e);return t==o||t==a||typeof e.message==`string`&&typeof e.name==`string`&&!i(e)}t.exports=s})),$a=s(((e,t)=>{var n=yt(),r=A(),i=`[object WeakMap]`;function a(e){return r(e)&&n(e)==i}t.exports=a})),eo=s(((e,t)=>{var n=fa(),r=Kt(),i=1;function a(e){return r(typeof e==`function`?e:n(e,i))}t.exports=a})),to=s(((e,t)=>{var n=E(),r=Ze(),i=We(),a=n?n.isConcatSpreadable:void 0;function o(e){return i(e)||r(e)||!!(a&&e&&e[a])}t.exports=o})),no=s(((e,t)=>{var n=Ue(),r=to();function i(e,t,a,o,s){var c=-1,l=e.length;for(a||=r,s||=[];++c0&&a(u)?t>1?i(u,t-1,a,o,s):n(s,u):o||(s[s.length]=u)}return s}t.exports=i})),ro=s(((e,t)=>{var n=no();function r(e){return e!=null&&e.length?n(e,1):[]}t.exports=r})),io=s(((e,t)=>{var n=ro(),r=Wi(),i=Ji();function a(e){return i(r(e,void 0,n),e+``)}t.exports=a})),ao=s(((e,t)=>{var n=Ja(),r=io(),i=256;t.exports=r(function(e,t){return n(e,i,void 0,void 0,void 0,t)})})),oo=s(((e,t)=>{var n=jt(),r=Oi(),i=We(),a=j(),o=At(),s=Ft(),c=Nt();function l(e){return i(e)?n(e,s):a(e)?[e]:r(o(c(e)))}t.exports=l})),so=s(((e,t)=>{t.exports={ary:Ya(),assign:$i(),clone:Xa(),curry:Za(),forEach:Qi(),isArray:We(),isError:Qa(),isFunction:ue(),isWeakMap:$a(),iteratee:eo(),keys:ut(),rearg:ao(),toInteger:En(),toPath:oo()}})),co=s(((e,t)=>{var n=ga(),r=so();function i(e,t,i){return n(r,e,t,i)}t.exports=i})),lo=s(((e,t)=>{var n=Fi(),r=Pt(),i=et(),a=le(),o=Ft();function s(e,t,s,c){if(!a(e))return e;t=r(t,e);for(var l=-1,u=t.length,d=u-1,f=e;f!=null&&++l{var n=lo();function r(e,t,r){return e==null?e:n(e,t,r)}t.exports=r})),fo=s(((e,t)=>{var n=co()(`set`,uo());n.placeholder=ha(),t.exports=n})),V=s(((e,t)=>{function n(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}t.exports=n})),po=s(((e,t)=>{var n=It(),r=an();function i(e,t){return t.length<2?e:n(e,r(t,0,-1))}t.exports=i})),mo=s(((e,t)=>{var n=Pt(),r=V(),i=po(),a=Ft(),o=Object.prototype.hasOwnProperty;function s(e,t){t=n(t,e);var s=-1,c=t.length;if(!c)return!0;for(;++s{var n=mo();function r(e,t){return e==null?!0:n(e,t)}t.exports=r})),go=s(((e,t)=>{var n=co()(`unset`,ho());n.placeholder=ha(),t.exports=n})),_o=s(((e,t)=>{var n=mo(),r=et(),i=Array.prototype.splice;function a(e,t){for(var a=e?t.length:0,o=a-1;a--;){var s=t[a];if(a==o||s!==c){var c=s;r(s)?i.call(e,s,1):n(e,s)}}return e}t.exports=a})),vo=s(((e,t)=>{var n=Kt(),r=_o();function i(e,t){var i=[];if(!(e&&e.length))return i;var a=-1,o=[],s=e.length;for(t=n(t,3);++a{function n(e,t,n){return e===e&&(n!==void 0&&(e=e<=n?e:n),t!==void 0&&(e=e>=t?e:t)),e}t.exports=n})),bo=s(((e,t)=>{var n=yo(),r=Mt(),i=En(),a=Nt();function o(e,t,o){e=a(e),t=r(t);var s=e.length;o=o===void 0?s:n(i(o),0,s);var c=o;return o-=t.length,o>=0&&e.slice(o,c)==t}t.exports=o})),xo=s(((e,t)=>{function n(e,t,n,r,i){return i(e,function(e,i,a){n=r?(r=!1,e):t(n,e,i,a)}),n}t.exports=n})),So=s(((e,t)=>{var n=Yt(),r=vi(),i=Kt(),a=xo(),o=We();function s(e,t,s){var c=o(e)?n:a,l=arguments.length<3;return c(e,i(t,4),s,l,r)}t.exports=s})),Co=s(((e,t)=>{var n=jt();function r(e,t){return n(t,function(t){return[t,e[t]]})}t.exports=r})),wo=s(((e,t)=>{function n(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=[e,e]}),n}t.exports=n})),To=s(((e,t)=>{var n=Co(),r=yt(),i=Be(),a=wo(),o=`[object Map]`,s=`[object Set]`;function c(e){return function(t){var c=r(t);return c==o?i(t):c==s?a(t):n(t,e(t))}}t.exports=c})),Eo=s(((e,t)=>{t.exports=To()(ft())})),Do=s(((e,t)=>{function n(e){return e===void 0}t.exports=n})),H=u(m()),Oo=C(),U=u(Jt()),ko=u(pn()),Ao=u(ft()),jo=u(xn()),Mo=u(Lt()),No=u(Cn()),Po=u(On()),Fo=u(We()),Io=u(Fn()),Lo=u(ui()),Ro=u(pi()),zo=u(bi()),Bo=u(xi()),Vo=u(Zi()),Ho=u(pa()),Uo=u(fo()),Wo=u(go()),Go=u(ue()),Ko=u(qt());vo();var qo=u(bo()),Jo=u(V()),Yo=u(So()),Xo=u(Eo()),Zo=u(Do()),Qo=`additionalProperties`,$o=`required`,es=(e,t)=>{let n={};return e.filter(e=>{let r=t(e);return Object.prototype.hasOwnProperty.call(n,r)?!1:(n[r]=!0,!0)})},ts=class{constructor(e){this.findOption=e,this.schemaObject=e=>{let t=this.properties(e),n={type:`object`,properties:t,additionalProperties:this.findOption(t)(Qo)},r=this.findOption(t)($o);return r.length>0&&(n.required=r),n},this.properties=e=>Object.keys(e).reduce((t,n)=>(t[n]=this.property(e[n]),t),{}),this.property=e=>{switch(typeof e){case`string`:return{type:`string`};case`boolean`:return{type:`boolean`};case`number`:return Number.isInteger(e)?{type:`integer`}:{type:`number`};case`object`:return e==null?{type:`null`}:this.schemaObjectOrArray(e);default:return{}}},this.schemaObjectOrArray=e=>e instanceof Array?this.schemaArray(e):this.schemaObject(e),this.schemaArray=e=>{if(e.length>0){let t=es(e.map(this.property),e=>JSON.stringify(e));return t.length===1?{type:`array`,items:t[0]}:{type:`array`,items:{oneOf:t}}}else return{type:`array`,items:{}}}}},ns=(e,t={})=>new ts(e=>n=>{switch(n){case Qo:return Object.prototype.hasOwnProperty.call(t,Qo)?t[Qo]:!0;case $o:return Object.prototype.hasOwnProperty.call(t,$o)?t[$o](e):Object.keys(e);default:return}}).schemaObject(e),rs=new Set,is=(e,t)=>t<=1?e:e+t.toString(),as=(e,t)=>{let n=is(e,t);return!rs.has(n)},os=e=>{e===void 0&&(e=`undefined`);let t=0;for(;!as(e,t);)t++;let n=is(e,t);return rs.add(n),n},ss=e=>rs.delete(e),cs=(e,t)=>{let n=e;return!(0,U.default)(e)&&!(0,U.default)(t)&&!t.startsWith(`[`)&&(n=e+`.`),(0,U.default)(n)?t:(0,U.default)(t)?n:`${n}${t}`},ls=e=>{let t=e.replace(/(anyOf|allOf|oneOf)\/[\d]+\//g,``).replace(/(then|else)\//g,``).split(`/`).map(ds);return(0,jo.default)(t[0]===`#`||t[0]===``?2:1,t.length,2).map(e=>t[e])},us=e=>e?.replace(/~/g,`~0`).replace(/\//g,`~1`),ds=e=>e?.replace(/~1/g,`/`).replace(/~0/,`~`),fs=(e,t)=>{if(t&&typeof t.title==`string`)return t.title;if(typeof e.scope==`string`){let t=e.scope;return(0,ko.default)(ds(t.substr(t.lastIndexOf(`/`)+1)))}return``},ps=(e,t)=>{let n=e.label;return typeof n==`boolean`?ms(fs(e,t),n):typeof n==`string`?ms(n,!0):typeof n==`object`?ms(typeof n.text==`string`?n.text:fs(e,t),typeof n.show==`boolean`?n.show:!0):ms(fs(e,t),!0)},ms=(e,t)=>({text:e,show:t}),hs=(e,t)=>(0,U.default)(t)?e:t.split(`.`).reduce((e,t)=>{if(!(!e||!Object.prototype.hasOwnProperty.call(e,t)))return e[t]},e),gs=e=>e===`#`||e===void 0||e===``,_s=(e,t,n)=>vs(e,t,{rootSchema:n,resolutionMap:new Map}),vs=(e,t,n)=>{let r;if(e&&typeof e.$ref==`string`){let i=ys(n.rootSchema,e.$ref,n);i!==void 0&&(r=ys(i,t,n))}return r===void 0&&(r=ys(e,t,n)),r},ys=(e,t,n)=>{let r=n.resolutionMap.get(e);if(r||(r=new Set,n.resolutionMap.set(e,r)),r.has(t))return;r.add(t);let i=bs(e,t?.split(`/`).map(ds),n);return r.delete(t),i},bs=(e,t,n)=>{if(!t||t.length===0)return e;if((0,U.default)(e))return;let r=xs(e,t,n);if(r!==void 0)return r;let i=[].concat(e.oneOf??[],e.allOf??[],e.anyOf??[],e.then??[],e.else??[]);for(let e of i){let r=e;e&&typeof e.$ref==`string`&&(r=vs(n.rootSchema,e.$ref,n));let i=bs(r,t,n);if(i)return i}},xs=(e,t,n)=>{if(!t||t.length===0)return e;if((0,U.default)(e))return;let r=Ss(e,t);return r.schema&&typeof r.schema.$ref==`string`&&(r.schema=vs(n.rootSchema,r.schema.$ref,n)),bs(r.schema,r.remainingPathSegments,n)},Ss=(e,t)=>{if(!t||t.length===0)return{schema:e,remainingPathSegments:[]};if((0,U.default)(e))return{schema:void 0,remainingPathSegments:t};let[n,...r]=t;return gs(n)?Ss(e,r):{schema:(0,Mo.default)(e,n),remainingPathSegments:r,resolvedSegment:n}},Cs;(function(e){e.HIDE=`HIDE`,e.SHOW=`SHOW`,e.ENABLE=`ENABLE`,e.DISABLE=`DISABLE`})(Cs||={});var ws=(e,t)=>{if(!ks(e))return t??``;let n=ls(e.scope);return(0,U.default)(n)?t??``:cs(t,n.join(`.`))},Ts=e=>typeof e==`object`&&!!e&&typeof e.i18n==`string`,Es=e=>e.type===`Group`,Ds=e=>e.elements!==void 0,Os=e=>!!e&&typeof e==`object`,ks=e=>Os(e)&&typeof e.scope==`string`,As=e=>!!e&&typeof e==`object`,js=e=>e.type===`OR`,Ms=e=>e.type===`AND`,Ns=e=>e.type===`LEAF`,Ps=e=>(0,No.default)(e,`schema`),Fs=e=>(0,No.default)(e,`validate`)&&typeof e.validate==`function`,Is=(e,t)=>ws(e,t),Ls=(e,t,n,r,i,a)=>{if(Ms(n))return n.conditions.reduce((n,o)=>n&&Ls(e,t,o,r,i,a),!0);if(js(n))return n.conditions.reduce((n,o)=>n||Ls(e,t,o,r,i,a),!1);if(Ns(n))return hs(e,Is(n,r))===n.expectedValue;if(Ps(n)){let t=hs(e,Is(n,r));return n.failWhenUndefined&&t===void 0?!1:i.validate(n.schema,t)}else if(Fs(n)){let i={data:hs(e,Is(n,r)),fullData:e,path:r,uischemaElement:t,config:a};return n.validate(i)}else return!0},Rs=(e,t,n,r,i)=>{let a=e.rule.condition;return Ls(t,e,a,n,r,i)},zs=(e,t,n=void 0,r,i)=>{let a=Rs(e,t,n,r,i);switch(e.rule.effect){case Cs.HIDE:return!a;case Cs.SHOW:return a;default:return!0}},Bs=(e,t,n=void 0,r,i)=>{let a=Rs(e,t,n,r,i);switch(e.rule.effect){case Cs.DISABLE:return!a;case Cs.ENABLE:return a;default:return!0}},Vs=e=>!!(e.rule&&(e.rule.effect===Cs.SHOW||e.rule.effect===Cs.HIDE)),Hs=e=>!!(e.rule&&(e.rule.effect===Cs.ENABLE||e.rule.effect===Cs.DISABLE)),Us=(e,t,n=void 0,r,i)=>e.rule?zs(e,t,n,r,i):!0,Ws=(e,t,n=void 0,r,i)=>e.rule?Bs(e,t,n,r,i):!0,Gs=e=>!!e&&Object.prototype.hasOwnProperty.call(e,`oneOf`)&&e.oneOf&&e.oneOf.every(e=>e.const!==void 0),Ks=e=>!!e&&typeof e==`object`&&(Object.prototype.hasOwnProperty.call(e,`enum`)||Object.prototype.hasOwnProperty.call(e,`const`)),qs=(e,t)=>{let n=e.toISOString();return t===`date-time`?n:t===`date`?n.split(`T`)[0]:t===`time`?n.split(`T`)[1].split(`.`)[0]:n},Js=e=>e.replace(`#`,`root`).replace(RegExp(`/`,`g`),`_`),Ys=(e,t)=>(0,Io.default)(Xs(e),t),Xs=e=>{if((0,U.default)(e))return[];if(!(0,U.default)(e.type)&&typeof e.type==`string`)return[e.type];if((0,Fo.default)(e.type))return e.type;if(!(0,U.default)(e.properties)||!(0,U.default)(e.additionalProperties))return[`object`];if(!(0,U.default)(e.items))return[`array`];if(!(0,U.default)(e.enum)){let t=new Set;return e.enum.forEach(e=>{typeof e==`string`?t.add(`string`):Xs(e).forEach(e=>t.add(e))}),Array.from(t)}if(!(0,U.default)(e.allOf)){let t=(0,Po.default)(e.allOf,e=>Xs(e).length!==0);if(t)return Xs(t)}return[]},Zs={schema:_s,data:hs},Qs={compose:cs,fromScoped:e=>ls(e.scope).join(`.`)},$s=e=>{let t=new Lo.default({allErrors:!0,verbose:!0,strict:!1,addUsedSchema:!1,...e});return(0,Ro.default)(t),t},ec=(e,t)=>e===void 0||e(t)?[]:e.errors,tc=e=>{switch(e.keyword){case`required`:case`dependencies`:return e.params.missingProperty;case`additionalProperties`:return e.params.additionalProperty;default:return}},nc=e=>{let t=e.dataPath||e.instancePath||``;t=t.replace(/\//g,`.`);let n=tc(e);return n!==void 0&&!t.endsWith(n)&&(t=`${t}.${n}`),t=t.replace(/^./,``),t=ds(t),t},rc=(e,t,n)=>r=>{let i=(0,zo.default)(r,e=>e.keyword===`oneOf`||e.keyword===`anyOf`).map(e=>nc(e));return(0,zo.default)(r,r=>{if(ac.indexOf(r.keyword)!==-1&&!Gs(r.parentSchema))return!1;let a=n(nc(r)),o=r.parentSchema;return a&&!ic(o)&&!Gs(o)&&i.findIndex(t=>e.startsWith(t))!==-1&&(a&&=(0,Bo.default)(o,t)),a})},ic=e=>e?.type===`object`||!!e?.properties,ac=[`additionalProperties`,`allOf`,`anyOf`,`oneOf`],oc=e=>e==null?``:e.join(` -`),sc={createLabelDescriptionFrom:ps,convertToValidClassName:Js},cc=e=>({type:e,elements:[]}),lc=e=>({type:`Control`,scope:e}),uc=(e,t)=>{if(!(0,U.default)(e)&&!Ds(e)){let n=cc(t);return n.elements.push(e),n}return e},dc=(e,t)=>{if(!(0,U.default)(t)){let n=(0,ko.default)(t);if(Es(e))e.label=n;else{let t={type:`Label`,text:n};e.elements.push(t)}}},fc=e=>!(0,U.default)(e)&&(!(0,U.default)(e.oneOf)||!(0,U.default)(e.anyOf)||!(0,U.default)(e.allOf)),pc=(e,t,n,r,i,a)=>{if(!(0,U.default)(e)&&e.$ref!==void 0)return pc(_s(a,e.$ref,a),t,n,r,i,a);if(fc(e)){let e=lc(n);return t.push(e),e}let o=Xs(e);if(o.length===0)return null;if(o.length>1){let e=lc(n);return t.push(e),e}if(n===`#`&&o[0]===`object`){let o=cc(i);if(t.push(o),e.properties&&(0,Ao.default)(e.properties).length>1&&dc(o,r),!(0,U.default)(e.properties)){let t=n+`/properties`;Object.keys(e.properties).map(n=>{let r=e.properties[n],s=`${t}/${us(n)}`;r.$ref!==void 0&&(r=_s(a,r.$ref,a)),pc(r,o.elements,s,n,i,a)})}return o}switch(o[0]){case`object`:case`array`:case`string`:case`number`:case`integer`:case`null`:case`boolean`:{let e=lc(n);return t.push(e),e}default:throw Error(`Unknown type: `+JSON.stringify(e))}},mc=(e,t=`VerticalLayout`,n=`#`,r=e)=>uc(pc(e,[],n,``,t,r),t),hc={jsonSchema:ns,uiSchema:mc,controlElement:lc},gc=`jsonforms/INIT`,_c=`jsonforms/UPDATE_CORE`,vc=`jsonforms/SET_AJV`,yc=`jsonforms/UPDATE`,bc=`jsonforms/UPDATE_ERRORS`,xc=`jsonforms/VALIDATE`,Sc=`jsonforms/ADD_RENDERER`,Cc=`jsonforms/REMOVE_RENDERER`,wc=`jsonforms/ADD_CELL`,Tc=`jsonforms/REMOVE_CELL`,Ec=`jsonforms/SET_CONFIG`,Dc=`jsonforms/ADD_UI_SCHEMA`,Oc=`jsonforms/REMOVE_UI_SCHEMA`,kc=`jsonforms/SET_SCHEMA`,Ac=`jsonforms/SET_UISCHEMA`,jc=`jsonforms/SET_VALIDATION_MODE`,Mc=`jsonforms/SET_LOCALE`,Nc=`jsonforms/SET_TRANSLATOR`,Pc=`jsonforms/UPDATE_I18N`,Fc=`jsonforms/ADD_DEFAULT_DATA`,Ic=`jsonforms/REMOVE_DEFAULT_DATA`,Lc=e=>{if(!(`type`in e)||typeof e.type!=`string`)return!1;switch(e.type){case`ADD`:return`values`in e&&Array.isArray(e.values)&&e.values.length>0;case`REMOVE`:return`indices`in e&&Array.isArray(e.indices)&&e.indices.length>0&&e.indices.every(e=>typeof e==`number`);case`MOVE`:return`moves`in e&&Array.isArray(e.moves)&&e.moves.length>0&&e.moves.every(e=>typeof e==`object`&&!!e&&`from`in e&&`to`in e&&typeof e.from==`number`&&typeof e.to==`number`);default:return!1}},Rc=(e,t=ns(e),n,r)=>({type:gc,data:e,schema:t,uischema:typeof n==`object`?n:mc(t),options:r}),zc=(e,t,n,r)=>({type:_c,data:e,schema:t,uischema:n,options:r}),Bc=(e,t)=>({type:Fc,schemaPath:e,data:t}),Vc=e=>({type:Ic,schemaPath:e}),Hc=e=>({type:vc,ajv:e}),Uc=(e,t,n)=>({type:yc,path:e,updater:t,context:n}),Wc=Object.freeze({__proto__:null,INIT:gc,UPDATE_CORE:_c,SET_AJV:vc,UPDATE_DATA:yc,UPDATE_ERRORS:bc,VALIDATE:xc,ADD_RENDERER:Sc,REMOVE_RENDERER:Cc,ADD_CELL:wc,REMOVE_CELL:Tc,SET_CONFIG:Ec,ADD_UI_SCHEMA:Dc,REMOVE_UI_SCHEMA:Oc,SET_SCHEMA:kc,SET_UISCHEMA:Ac,SET_VALIDATION_MODE:jc,SET_LOCALE:Mc,SET_TRANSLATOR:Nc,UPDATE_I18N:Pc,ADD_DEFAULT_DATA:Fc,REMOVE_DEFAULT_DATA:Ic,isUpdateArrayContext:Lc,init:Rc,updateCore:zc,registerDefaultData:Bc,unregisterDefaultData:Vc,setAjv:Hc,update:Uc,updateErrors:e=>({type:bc,errors:e}),registerRenderer:(e,t)=>({type:Sc,tester:e,renderer:t}),registerCell:(e,t)=>({type:wc,tester:e,cell:t}),unregisterCell:(e,t)=>({type:Tc,tester:e,cell:t}),unregisterRenderer:(e,t)=>({type:Cc,tester:e,renderer:t}),setConfig:e=>({type:Ec,config:e}),setValidationMode:e=>({type:jc,validationMode:e}),registerUISchema:(e,t)=>({type:Dc,tester:e,uischema:t}),unregisterUISchema:e=>({type:Oc,tester:e}),setLocale:e=>({type:Mc,locale:e}),setSchema:e=>({type:kc,schema:e}),setTranslator:(e,t)=>({type:Nc,translator:e,errorTranslator:t}),updateI18n:(e,t,n)=>({type:Pc,locale:e,translator:t,errorTranslator:n}),setUISchema:e=>({type:Ac,uischema:e})}),Gc={restrict:!1,trim:!1,showUnfocusedDescription:!1,hideRequiredAsterisk:!1},Kc=(e={})=>(0,Vo.default)({},Gc,e),qc=(e=Kc(),t)=>{switch(t.type){case Ec:return Kc(t.config);default:return e}},Jc={data:{},schema:{},uischema:void 0,errors:[],validator:void 0,ajv:void 0,validationMode:`ValidateAndShow`,additionalErrors:[]},Yc=(e,t)=>t&&Xc(t.options)?t.options.validationMode:e.validationMode,Xc=e=>e?e.validationMode!==void 0:!1,Zc=e=>e?e.additionalErrors!==void 0:!1,Qc=(e,t)=>t&&Zc(t.options)?t.options.additionalErrors:e.additionalErrors,$c=(e,t)=>{if(t){if(el(t.options))return t.options.ajv;if(t.options!==void 0&&(0,Go.default)(t.options.compile))return t.options}return e.ajv?e.ajv:$s()},el=e=>e?e.ajv!==void 0:!1,tl=(e=Jc,t)=>{switch(t.type){case gc:{let n=$c(e,t),r=Yc(e,t),i=r===`NoValidation`?void 0:n.compile(t.schema),a=ec(i,t.data),o=Qc(e,t);return{...e,data:t.data,schema:t.schema,uischema:t.uischema,additionalErrors:o,errors:a,validator:i,ajv:n,validationMode:r}}case _c:{let n=$c(e,t),r=Yc(e,t),i=e.validator,a=e.errors;e.schema!==t.schema||e.validationMode!==r||e.ajv!==n?(i=r===`NoValidation`?void 0:n.compile(t.schema),a=ec(i,t.data)):e.data!==t.data&&(a=ec(i,t.data));let o=Qc(e,t);return e.data!==t.data||e.schema!==t.schema||e.uischema!==t.uischema||e.ajv!==n||e.errors!==a||e.validator!==i||e.validationMode!==r||e.additionalErrors!==o?{...e,data:t.data,schema:t.schema,uischema:t.uischema,ajv:n,errors:(0,Bo.default)(a,e.errors)?e.errors:a,validator:i,validationMode:r,additionalErrors:o}:e}case vc:{let n=t.ajv,r=e.validationMode===`NoValidation`?void 0:n.compile(e.schema),i=ec(r,e.data);return{...e,validator:r,errors:i}}case kc:{let n=t.schema&&e.ajv&&e.validationMode!==`NoValidation`?e.ajv.compile(t.schema):e.validator,r=ec(n,e.data);return{...e,validator:n,schema:t.schema,errors:r}}case Ac:return{...e,uischema:t.uischema};case yc:if(t.path===void 0||t.path===null)return e;if(t.path===``){let n=t.updater((0,Ho.default)(e.data)),r=ec(e.validator,n);return{...e,data:n,errors:r}}else{let n=(0,Mo.default)(e.data,t.path),r=t.updater((0,Ho.default)(n)),i;i=r===void 0?(0,Wo.default)(t.path,e.data===void 0?{}:e.data):(0,Uo.default)(t.path,r,e.data===void 0?{}:e.data);let a=ec(e.validator,i);return{...e,data:i,errors:a}}case bc:return{...e,errors:t.errors};case jc:if(e.validationMode===t.validationMode)return e;if(t.validationMode===`NoValidation`){let n=ec(void 0,e.data);return{...e,errors:n,validationMode:t.validationMode}}if(e.validationMode===`NoValidation`){let n=e.ajv.compile(e.schema),r=ec(n,e.data);return{...e,validator:n,errors:r,validationMode:t.validationMode}}return{...e,validationMode:t.validationMode};default:return e}},nl;(function(e){e.addTooltip=`addTooltip`,e.addAriaLabel=`addAriaLabel`,e.removeTooltip=`removeTooltip`,e.upAriaLabel=`upAriaLabel`,e.downAriaLabel=`downAriaLabel`,e.noSelection=`noSelection`,e.removeAriaLabel=`removeAriaLabel`,e.noDataMessage=`noDataMessage`,e.deleteDialogTitle=`deleteDialogTitle`,e.deleteDialogMessage=`deleteDialogMessage`,e.deleteDialogAccept=`deleteDialogAccept`,e.deleteDialogDecline=`deleteDialogDecline`,e.up=`up`,e.down=`down`})(nl||={});var rl=[{key:nl.addTooltip,default:e=>e?`Add to ${e}`:`Add`},{key:nl.addAriaLabel,default:e=>e?`Add to ${e} button`:`Add button`},{key:nl.removeTooltip,default:()=>`Delete`},{key:nl.removeAriaLabel,default:()=>`Delete button`},{key:nl.upAriaLabel,default:()=>`Move item up`},{key:nl.up,default:()=>`Up`},{key:nl.down,default:()=>`Down`},{key:nl.downAriaLabel,default:()=>`Move item down`},{key:nl.noDataMessage,default:()=>`No data`},{key:nl.noSelection,default:()=>`No selection`},{key:nl.deleteDialogTitle,default:()=>`Confirm Deletion`},{key:nl.deleteDialogMessage,default:()=>`Are you sure you want to delete the selected entry?`},{key:nl.deleteDialogAccept,default:()=>`Yes`},{key:nl.deleteDialogDecline,default:()=>`No`}],il;(function(e){e.clearDialogTitle=`clearDialogTitle`,e.clearDialogMessage=`clearDialogMessage`,e.clearDialogAccept=`clearDialogAccept`,e.clearDialogDecline=`clearDialogDecline`})(il||={}),il.clearDialogTitle,il.clearDialogMessage,il.clearDialogAccept,il.clearDialogDecline;var al=(e,t)=>Ts(t)?t.i18n:e?.i18n??void 0,ol=e=>e?.split(`.`).filter(e=>!/^\d+$/.test(e)).join(`.`)||`root`,sl=(e,t,n)=>al(e,t)??ol(n),cl=(e,t,n,r)=>`${sl(e,t,n)}.${r}`,ll=(e,t)=>`${e}.${t}`,ul=(e,t)=>t,dl=(e,t,n)=>{let r=t(cl(e.parentSchema,n,nc(e),`error.${e.keyword}`),void 0,{error:e});if(r!==void 0)return r;let i=t(`error.${e.keyword}`,void 0,{error:e});if(i!==void 0)return i;let a=t(e.message,void 0,{error:e});return a===void 0?e.keyword===`required`&&e.message?.startsWith(`must have required property`)?t(`is a required property`,`is a required property`,{error:e}):e.message:a},fl=(e,t,n,r,i,a)=>{if(e.length>0&&n){let t=n(cl(r,i,a,`error.custom`),void 0,{schema:r,uischema:i,path:a,errors:e});if(t!==void 0)return t}return oc(e.map(e=>t(e,n,i)))},pl=(e,t)=>{if(e.label===!1||(e.label===void 0||e.label===null||e.label===!0)&&!Ts(e))return;let n=typeof e.label==`string`?e.label:JSON.stringify(e.label),r=al(void 0,e);return t(typeof r==`string`?`${r}.label`:n,n,{uischema:e})},ml=(e,t,n,r)=>{let i={};return t.forEach(t=>{let a=ll(n,t.key);i[t.key]=e(a,t.default(r))}),i},hl=e=>e===void 0?ul:e.translate,gl=e=>e===void 0?dl:e.translateError,_l=()=>e=>hl((0,Mo.default)(e,`jsonforms.i18n`)),vl=()=>e=>gl((0,Mo.default)(e,`jsonforms.i18n`)),yl={locale:`en`,translate:ul,translateError:dl},bl=(e=yl,t)=>{switch(t.type){case Pc:{let n=t.locale??yl.locale,r=t.translator??yl.translate,i=t.errorTranslator??yl.translateError;return n!==e.locale||r!==e.translate||i!==e.translateError?{...e,locale:n,translate:r,translateError:i}:e}case Nc:return{...e,translate:t.translator??ul,translateError:t.errorTranslator??dl};case Mc:return{...e,locale:t.locale??navigator.languages[0]};default:return e}},xl=e=>!(0,U.default)(e)&&e.scope!==void 0,Sl=e=>(t,n,r)=>{if((0,U.default)(t)||!xl(t)||(0,U.default)(n))return!1;let i=t.scope;if((0,U.default)(i))return!1;let a=n;return Ys(n,`object`)&&(a=_s(n,i,r?.rootSchema)),a===void 0?!1:e(a,r?.rootSchema)},Cl=(e,t)=>(n,r,i)=>{if((0,U.default)(n)||!xl(n))return!1;let a=n.scope,o=r;return Ys(r,`object`)&&(o=_s(r,a,i?.rootSchema)),o=(0,Mo.default)(o,e),o===void 0?!1:t(o,i?.rootSchema)},wl=e=>Sl(t=>!(0,U.default)(t)&&Ys(t,e)),Tl=e=>Sl(t=>!(0,U.default)(t)&&t.format===e&&Ys(t,`string`)),El=e=>t=>!(0,U.default)(t)&&t.type===e,Dl=(e,t)=>n=>{if((0,U.default)(n))return!1;let r=n.options;return!(0,U.default)(r)&&r[e]===t},Ol=e=>t=>{if((0,U.default)(t))return!1;let n=t.options;return!(0,U.default)(n)&&!(0,Zo.default)(n[e])},kl=e=>t=>(0,U.default)(e)||!xl(t)?!1:(0,qo.default)(t.scope,e),Al=e=>t=>{if((0,U.default)(e)||!xl(t))return!1;let n=t.scope;return!(0,U.default)(n)&&(0,Jo.default)(n.split(`/`))===e},jl=(...e)=>(t,n,r)=>e.reduce((e,i)=>e&&i(t,n,r),!0),Ml=(...e)=>(t,n,r)=>e.reduce((e,i)=>e||i(t,n,r),!1),Nl=(e,t)=>(n,r,i)=>t(n,r,i)?e:-1,Pl=(e,t)=>(n,r,i)=>{let a=t(n,r,i);return a===-1?-1:a+e},Fl=jl(El(`Control`),wl(`boolean`)),Il=jl(El(`Control`),wl(`object`)),Ll=jl(El(`Control`),Sl(e=>Object.prototype.hasOwnProperty.call(e,`allOf`))),Rl=jl(El(`Control`),Sl(e=>Object.prototype.hasOwnProperty.call(e,`anyOf`))),zl=jl(El(`Control`),Sl(e=>Object.prototype.hasOwnProperty.call(e,`oneOf`))),Bl=jl(El(`Control`),Sl(e=>Ks(e))),Vl=jl(El(`Control`),Sl(e=>Gs(e))),Hl=jl(El(`Control`),wl(`integer`)),W=jl(El(`Control`),wl(`number`)),Ul=jl(El(`Control`),wl(`string`)),Wl=jl(El(`Control`),Dl(`multi`,!0)),Gl=jl(El(`Control`),Ml(Tl(`date`),Dl(`format`,`date`))),Kl=jl(El(`Control`),Ml(Tl(`time`),Dl(`format`,`time`))),ql=jl(El(`Control`),Ml(Tl(`date-time`),Dl(`format`,`date-time`))),Jl=jl(Sl((e,t)=>Ys(e,`array`)&&!Array.isArray(_s(e,`items`,t))),Cl(`items`,(e,t)=>Ys(e.$ref?_s(t,e.$ref,t):e,`object`))),Yl=jl(El(`Control`),Jl),Xl=(e,t,n)=>{if((0,Fo.default)(e))return(0,Yo.default)(e,(e,r)=>e||Xl(r,t,n),!1);if(t(e))return!0;if(e.$ref){let r=_s(n,e.$ref,n);if(r&&!r.$ref)return Xl(r,t,n)}return e.items?Xl(e.items,t,n):e.properties?(0,Yo.default)((0,Xo.default)(e.properties),(e,[r,i])=>e||Xl(i,t,n),!1):!1},Zl=(e,t,n)=>{if(!El(`Control`)(e,t,n))return!1;let r=e.scope,i=_s(t,r,n?.rootSchema??t),a=0;if(i!==void 0&&i.items!==void 0){if(Xl(i.items,e=>e===t||e.$ref!==void 0?!1:!!(e.anyOf||e.allOf||e.oneOf&&!Gs(e)||Ys(e,`object`)&&(a++,a===2)||Ys(e,`array`)),n?.rootSchema))return!0;if(e.options&&e.options.detail){if(typeof e.options.detail==`string`)return e.options.detail.toUpperCase()!==`DEFAULT`;if(typeof e.options.detail==`object`&&e.options.detail.type)return!0}}return!1},Ql=Yl,$l=jl(El(`Control`),Sl((e,t)=>Xs(e).length!==0&&!Array.isArray(_s(e,`items`,t))),Cl(`items`,(e,t)=>{let n=Xs(e.$ref?_s(t,e.$ref,t):e);return n.length===1&&(0,Io.default)([`integer`,`number`,`boolean`,`string`],n[0])})),eu=jl(El(`Control`),Ml(wl(`number`),wl(`integer`)),Sl(e=>Object.prototype.hasOwnProperty.call(e,`maximum`)&&Object.prototype.hasOwnProperty.call(e,`minimum`)&&Object.prototype.hasOwnProperty.call(e,`default`)),Dl(`slider`,!0)),tu=jl(El(`Control`),wl(`integer`),Dl(`format`,!0)),G=e=>e.type===`Categorization`,nu=e=>e.type===`Category`,ru=e=>(0,U.default)(e.elements)?!1:e.elements.map(e=>G(e)?ru(e):nu(e)).reduce((e,t)=>e&&t,!0),iu=Object.freeze({__proto__:null,NOT_APPLICABLE:-1,isControl:xl,schemaMatches:Sl,schemaSubPathMatches:Cl,schemaTypeIs:wl,formatIs:Tl,uiTypeIs:El,optionIs:Dl,hasOption:Ol,scopeEndsWith:kl,scopeEndIs:Al,and:jl,or:Ml,rankWith:Nl,withIncreasedRank:Pl,isBooleanControl:Fl,isObjectControl:Il,isAllOfControl:Ll,isAnyOfControl:Rl,isOneOfControl:zl,isEnumControl:Bl,isOneOfEnumControl:Vl,isIntegerControl:Hl,isNumberControl:W,isStringControl:Ul,isMultiLineControl:Wl,isDateControl:Gl,isTimeControl:Kl,isDateTimeControl:ql,isObjectArray:Jl,isObjectArrayControl:Yl,isObjectArrayWithNesting:Zl,isArrayObjectControl:Ql,isPrimitiveArrayControl:$l,isRangeControl:eu,isNumberFormatControl:tu,isCategorization:G,isCategory:nu,hasCategory:ru,categorizationHasCategory:e=>ru(e),not:e=>(t,n,r)=>!e(t,n,r)}),au=e=>(t,n,r)=>{let i=(0,Ko.default)(e,e=>e.tester(t,n,r));if(i!==void 0&&i.tester(t,n,r)!==-1)return i.uischema},ou=(e,t,n,r,i=`VerticalLayout`,a,o)=>{if(a&&a.options&&a.options.detail){if(typeof a.options.detail==`string`){if(a.options.detail.toUpperCase()===`GENERATE`)return typeof i==`function`?i():hc.uiSchema(t,i,void 0,o)}else if(typeof a.options.detail==`object`&&a.options.detail.type&&typeof a.options.detail.type==`string`)return a.options.detail}let s=au(e)(t,n,r);return s===void 0?typeof i==`function`?i():hc.uiSchema(t,i,`#`,o):s},su=(e,t,n)=>n(e,t),cu=(e,t,n)=>r=>{let i=r.errors??[],a=r.additionalErrors??[];return rc(e,t,n)(r.validationMode===`ValidateAndHide`?a:[...i,...a])},lu=(e,t)=>cu(e,t,t=>t===e),uu=(e,t)=>cu(e,t,t=>t.startsWith(e+`.`)),du=(e,t)=>n=>lu(e,t)(n.jsonforms.core),fu=(e,t)=>n=>uu(e,t)(n.jsonforms.core),pu=e=>yu((0,Mo.default)(e,`jsonforms.core`)),mu=e=>bu((0,Mo.default)(e,`jsonforms.core`)),hu=e=>xu((0,Mo.default)(e,`jsonforms.core`)),gu=e=>Su((0,Mo.default)(e,`jsonforms.core`)),_u=e=>(0,Mo.default)(e,`jsonforms.renderers`),vu=e=>(0,Mo.default)(e,`jsonforms.cells`),yu=e=>(0,Mo.default)(e,`data`),bu=e=>(0,Mo.default)(e,`schema`),xu=e=>(0,Mo.default)(e,`uischema`),Su=e=>(0,Mo.default)(e,`ajv`),Cu=e=>e.jsonforms.config,wu=(e,t,n,r,i,a)=>e?.jsonforms?.readonly?!1:n&&Hs(n)?Ws(n,i,t?.path,gu(e),a):typeof n?.options?.readonly==`boolean`?!n.options.readonly:typeof n?.options?.readOnly==`boolean`?!n.options.readOnly:typeof a?.readonly==`boolean`?!a.readonly:typeof a?.readOnly==`boolean`?!a.readOnly:r?.readOnly===!0?!1:typeof t?.enabled==`boolean`?t.enabled:!0,Tu=(e,t,n)=>{let r=t+n;if(r<0||r>=e.length)return;let i=[t,r].sort((e,t)=>e-t);e.splice(i[0],2,e[i[1]],e[i[0]])},Eu=(e,t)=>{Tu(e,t,-1)},Du=(e,t)=>{Tu(e,t,1)},Ou=(e,t,n)=>{let r=t.split(`/`),i=ds(r[r.length-1]),a=r.slice(0,r.length-2).join(`/`),o=Zs.schema(e,a,n);return o!==void 0&&o.required!==void 0&&o.required.indexOf(i)!==-1},ku=(e,t,n)=>`${e??``}${t&&!n?`*`:``}`,Au=(e,t)=>{let n=ju(e,t);return n===void 0?{}:n},ju=(e,t)=>{let n=typeof e.$ref==`string`?Zs.schema(t,e.$ref,t):e;if(n.default!==void 0)return Nu(n,t);if(Ys(n,`string`))return n.format===`date-time`||n.format===`date`||n.format===`time`?qs(new Date,n.format):``;if(Ys(n,`integer`)||Ys(n,`number`))return 0;if(Ys(n,`boolean`))return!1;if(Ys(n,`array`))return[];if(Ys(n,`object`))return Nu(n,t);if(Ys(n,`null`))return null;for(let n of[`oneOf`,`anyOf`,`allOf`])if(e[n]&&Array.isArray(e[n])){let r=Mu(e[n],t);if(r!==void 0)return r}},Mu=(e,t)=>{if(e.length>0)for(let n of e){let e=ju(n,t);if(e!==void 0)return e}},Nu=(e,t)=>{if(Ys(e,`object`)&&e.default===void 0){let n={};for(let r in e.properties){let i=e.properties[r],a=i.$ref?Zs.schema(t,i.$ref,t):i;a&&a.default!==void 0&&(n[r]=(0,Ho.default)(a.default))}return e.allOf&&Array.isArray(e.allOf)&&e.allOf.forEach(e=>{if(e&&e.properties)for(let r in e.properties){let i=e.properties[r],a=i.$ref?Zs.schema(t,i.$ref,t):i;a&&a.default!==void 0&&(n[r]=(0,Ho.default)(a.default))}}),n}return(0,Ho.default)(e.default)},Pu=(e,t,n,r)=>t===void 0||t!==void 0&&!e||!r&&!n,Fu=(e,t,n)=>{let r=typeof e==`string`?e:JSON.stringify(e);return t&&(r=t(n?`${n}.${r}`:r,r)),{label:r,value:e}},Iu=(e,t,n)=>{let r=e.title??(typeof e.const==`string`?e.const:JSON.stringify(e.const));return t&&(r=e.i18n?t(e.i18n,r):t(n?`${n}.${r}`:r,r)),{label:r,value:e.const}},Lu=(e,t)=>{let{uischema:n}=t,r=pu(e),i=ws(n,t.path),a=Cu(e),o=t.visible===void 0||Vs(n)?Us(n,r,t.path,gu(e),a):t.visible,s=n,c=t.id,l=mu(e),u=s.scope!==void 0&&Ou(t.schema,s.scope,l),d=Zs.schema(t.schema||l,s.scope,l),f=du(i,d)(e),p=d===void 0?``:d.description,m=Zs.data(r,i),h=ps(n,d),g=h.show?h.text:``,_=wu(e,t,n,d||l,r,a),v=d??l,y=_l()(e),b=vl()(e),x=sl(v,n,i),S=y(cl(v,n,i,`label`),g,{schema:v,uischema:n,path:i,errors:f});return{data:m,description:y(cl(v,n,i,`description`),p,{schema:v,uischema:n,path:i,errors:f}),errors:fl(f,b,y,v,n,i),label:S,visible:o,enabled:_,id:c,path:i,required:u,uischema:n,schema:v,config:Cu(e),cells:t.cells||e.jsonforms.cells,rootSchema:l,i18nKeyPrefix:x}},Ru=e=>({handleChange(t,n){e(Uc(t,()=>n))}}),zu=(e,t)=>{let n=Lu(e,t),r=t.options||n.schema.enum?.map(t=>Fu(t,_l()(e),sl(n.schema,n.uischema,n.path)))||n.schema.const&&[Fu(n.schema.const,_l()(e),sl(n.schema,n.uischema,n.path))];return{...n,options:r}},Bu=(e,t)=>{let n=Lu(e,t),r=t.options||n.schema.oneOf?.map(t=>Iu(t,_l()(e),sl(n.schema,n.uischema,n.path)));return{...n,options:r}},Vu=(e,t)=>{let{...n}=Lu(e,t);return{...n,uischemas:e.jsonforms.uischemas}},Hu=(e,t)=>{let{path:n,schema:r,uischema:i,label:a,...o}=Vu(e,t),s=Zs.schema(r,`items`,o.rootSchema),c=fu(n,s)(e);return{...o,label:a,path:n,uischema:i,schema:s,arraySchema:r,childErrors:c,renderers:t.renderers||_u(e),cells:t.cells||vu(e)}},Uu=e=>({addItem:(t,n)=>()=>{e(Uc(t,e=>e==null?[n]:(e.push(n),e),{type:`ADD`,values:[n]}))},removeItems:(t,n)=>()=>{e(Uc(t,e=>(n.sort((e,t)=>e-t).reverse().forEach(t=>e.splice(t,1)),e),{type:`REMOVE`,indices:n}))},moveUp:(t,n)=>()=>{e(Uc(t,e=>(Eu(e,n),e),{type:`MOVE`,moves:[{from:n,to:n-1}]}))},moveDown:(t,n)=>()=>{e(Uc(t,e=>(Du(e,n),e),{type:`MOVE`,moves:[{from:n,to:n+1}]}))}}),Wu={visible:!0,enabled:!0,path:``,direction:`column`},Gu=e=>e.type===`HorizontalLayout`?`row`:e.type===`VerticalLayout`?`column`:Wu.direction,Ku=(e,t)=>{let n=pu(e),{uischema:r}=t,i=t.visible===void 0||Vs(r)?Us(t.uischema,n,t.path,gu(e),Cu(e)):t.visible,a=Zs.data(n,t.path),o=Cu(e),s=wu(e,t,r,void 0,n,o),c=_l()(e),l=As(r)?pl(r,c):void 0;return{...Wu,renderers:t.renderers||_u(e),cells:t.cells||vu(e),visible:i,enabled:s,path:t.path,data:a,uischema:t.uischema,schema:t.schema,direction:t.direction??Gu(r),config:o,label:l}},qu=(e,t)=>({renderers:t.renderers||(0,Mo.default)(e.jsonforms,`renderers`),cells:t.cells||(0,Mo.default)(e.jsonforms,`cells`),schema:t.schema||mu(e),rootSchema:mu(e),uischema:t.uischema||hu(e),path:t.path,enabled:t.enabled,config:Cu(e)});({...Wu});var Ju=(e,t)=>{let{uischema:n}=t,r=t.visible===void 0||Vs(n)?Us(t.uischema,pu(e),t.path,gu(e),Cu(e)):t.visible,i=n.text,a=_l()(e),o=al(void 0,n);return{text:a(o?`${o}.text`:i??``,i,{uischema:n}),visible:r,config:Cu(e),renderers:t.renderers||_u(e),cells:t.cells||vu(e),uischema:n}},Yu=(e,t)=>{let{id:n,schema:r,path:i,uischema:a,renderers:o,cells:s}=t,c=pu(e),l=Cu(e),u=t.visible===void 0?Us(a,c,void 0,gu(e),l):t.visible,d=mu(e),f;f=e.jsonforms.readonly===!0?!1:typeof t.enabled==`boolean`?t.enabled:wu(e,t,a,r||d,c,l);let p=_l()(e),m=vl()(e),h=fl(du(i,r)(e),m,p,r,a,i),g=(0,U.default)(h);return{data:Zs.data(c,i),visible:u,enabled:f,id:n,path:i,errors:h,isValid:g,schema:r,uischema:a,config:Cu(e),rootSchema:d,renderers:o,cells:s}},Xu=(e,t)=>{let n=Yu(e,t),{renderers:r,cells:i,...a}=t;return{...n,...a,cells:i||e.jsonforms.cells||[]}},Zu=(e,t)=>{let n=Yu(e,t),r=t.options||n.schema.enum?.map(t=>Fu(t,_l()(e),sl(n.schema,n.uischema,n.path)))||n.schema.const&&[Fu(n.schema.const,_l()(e),sl(n.schema,n.uischema,n.path))];return{...n,options:r}},Qu=(e,t)=>{let n=Yu(e,t),r=t.options||n.schema.oneOf?.map(t=>Iu(t,_l()(e),sl(n.schema,n.uischema,n.path)));return{...n,options:r}},$u=s(((e,t)=>{var n=T();t.exports=function(){return n.Date.now()}})),ed=u(s(((e,t)=>{var n=le(),r=$u(),i=vn(),a=`Expected a function`,o=Math.max,s=Math.min;function c(e,t,c){var l,u,d,f,p,m,h=0,g=!1,_=!1,v=!0;if(typeof e!=`function`)throw TypeError(a);t=i(t)||0,n(c)&&(g=!!c.leading,_=`maxWait`in c,d=_?o(i(c.maxWait)||0,t):d,v=`trailing`in c?!!c.trailing:v);function y(t){var n=l,r=u;return l=u=void 0,h=t,f=e.apply(r,n),f}function b(e){return h=e,p=setTimeout(C,t),g?y(e):f}function x(e){var n=e-m,r=e-h,i=t-n;return _?s(i,d-r):i}function S(e){var n=e-m,r=e-h;return m===void 0||n>=t||n<0||_&&r>=d}function C(){var e=r();if(S(e))return w(e);p=setTimeout(C,x(e))}function w(e){return p=void 0,v&&l?y(e):(l=u=void 0,f)}function T(){p!==void 0&&clearTimeout(p),h=0,l=m=u=p=void 0}function E(){return p===void 0?f:w(r())}function D(){var e=r(),n=S(e);if(l=arguments,u=this,m=e,n){if(p===void 0)return b(m);if(_)return clearTimeout(p),p=setTimeout(C,t),y(m)}return p===void 0&&(p=setTimeout(C,t)),f}return D.cancel=T,D.flush=E,D}t.exports=c}))()),td=class extends H.Component{constructor(e){super(e)}},nd=class extends td{constructor(e){super(e),this.handleChange=e=>{this.setState({value:e}),this.updateData(e)},this.onFocus=()=>{this.setState({isFocused:!0})},this.onBlur=()=>{this.setState({isFocused:!1})},this.updateData=e=>{this.props.handleChange(this.props.path,e)},this.state={value:e.data?e.data:``,isFocused:!1}}},rd=class extends H.Component{render(){return H.createElement(`div`,{style:{color:`red`}},`No applicable `,this.props.type,` found.`)}},id=H.createContext({core:{data:{},schema:{},uischema:void 0,errors:[],additionalErrors:[],validator:void 0,ajv:void 0},renderers:[]}),ad=(e,t)=>{let n=(0,H.useRef)(!0);(0,H.useEffect)(()=>{if(n.current){n.current=!1;return}e()},t)},od=({children:e,initState:t,onChange:n,middleware:r})=>{let{data:i,schema:a,uischema:o,ajv:s,validationMode:c,additionalErrors:l}=t.core,u=(0,H.useRef)(r??su);u.current=r??su;let[d,f]=(0,H.useState)(()=>u.current(t.core,Wc.init(i,a,o,{ajv:s,validationMode:c,additionalErrors:l}),tl));(0,H.useEffect)(()=>f(e=>u.current(e,Wc.updateCore(i,a,o,{ajv:s,validationMode:c,additionalErrors:l}),tl)),[i,a,o,s,c,l]);let[p,m]=(0,H.useReducer)(qc,void 0,()=>qc(void 0,Wc.setConfig(t.config)));ad(()=>{m(Wc.setConfig(t.config))},[t.config]);let[h,g]=(0,H.useReducer)(bl,void 0,()=>bl(t.i18n,Wc.updateI18n(t.i18n?.locale,t.i18n?.translate,t.i18n?.translateError)));(0,H.useEffect)(()=>{g(Wc.updateI18n(t.i18n?.locale,t.i18n?.translate,t.i18n?.translateError))},[t.i18n?.locale,t.i18n?.translate,t.i18n?.translateError]);let _=(0,H.useCallback)(e=>{f(t=>u.current(t,e,tl))},[]),v=(0,H.useMemo)(()=>({core:d,renderers:t.renderers,cells:t.cells,config:p,uischemas:t.uischemas,readonly:t.readonly,i18n:h,dispatch:_}),[d,t.renderers,t.cells,p,t.uischemas,t.readonly,h]),y=(0,H.useRef)(n);(0,H.useEffect)(()=>{y.current=n},[n]);let b=(0,H.useCallback)((0,ed.default)((...e)=>y.current?.(...e),10),[]);return(0,H.useEffect)(()=>{b({data:d.data,errors:d.errors})},[d.data,d.errors]),H.createElement(id.Provider,{value:v},e)},sd=()=>(0,H.useContext)(id),cd=(e,t)=>Hu({jsonforms:{...e}},t),ld=(e,t)=>Ku({jsonforms:{...e}},t),ud=(e,t)=>Lu({jsonforms:{...e}},t),dd=(e,t)=>{let n=zu({jsonforms:{...e}},t),r=(0,H.useMemo)(()=>n.options,[t.options,n.schema,e.i18n?.translate]);return{...n,options:r}},fd=(e,t)=>{let n=Bu({jsonforms:{...e}},t),r=(0,H.useMemo)(()=>n.options,[t.options,n.schema,e.i18n?.translate]);return{...n,options:r}},pd=e=>(0,H.useMemo)(()=>Ru(e),[e]),md=(e,t)=>qu({jsonforms:{...e}},t),hd=e=>({...pd(e),...(0,H.useMemo)(()=>Uu(e),[e])}),gd=(e,t)=>Yu({jsonforms:{...e}},t),_d=(e,t)=>{let n=Zu({jsonforms:{...e}},t),r=(0,H.useMemo)(()=>n.options,[t.options,n.schema,e.i18n?.translate]);return{...n,options:r}},vd=(e,t)=>{let n=Qu({jsonforms:{...e}},t),r=(0,H.useMemo)(()=>n.options,[t.options,n.schema,e.i18n?.translate]);return{...n,options:r}},yd=(e,t)=>Xu({jsonforms:{...e}},t),bd=(e,t)=>Ju({jsonforms:{...e}},t),xd=e=>function(t){let n=sd();return H.createElement(e,{ctx:n,props:t})},Sd=e=>function({ctx:t,props:n}){let r=md(t,n);return H.createElement(e,{...n,...r})},Cd=e=>function({ctx:t,props:n}){let r=ud(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...r,...i})},wd=e=>function({ctx:t,props:n}){let r=ld(t,n);return H.createElement(e,{...n,...r})},Td=e=>function({ctx:t,props:n}){let r=cd(t,n),i=hd(t.dispatch);return H.createElement(e,{...n,...r,...i})},K=e=>function({ctx:t,props:n}){let r=gd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},Ed=e=>function({ctx:t,props:n}){let r=yd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},Dd=e=>function({ctx:t,props:n}){let r=_d(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},Od=e=>function({ctx:t,props:n}){let r=dd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},kd=e=>function({ctx:t,props:n}){let r=vd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},Ad=e=>function({ctx:t,props:n}){let r=fd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},jd=e=>function({ctx:t,props:n}){let r=bd(t,n);return H.createElement(e,{...n,...r})},Md=(e,t=!0)=>xd(Sd(t?H.memo(e):e)),Nd=(e,t=!0)=>xd(Cd(t?H.memo(e):e)),Pd=(e,t=!0)=>xd(wd(t?H.memo(e):e)),Fd=(e,t=!0)=>xd(Td(t?H.memo(e):e)),Id=(e,t=!0)=>xd(K(t?H.memo(e):e)),Ld=(e,t=!0)=>xd(Ed(t?H.memo(e):e)),Rd=(e,t=!0)=>xd(Dd(t?H.memo(e):e)),zd=(e,t=!0)=>xd(Od(t?H.memo(e):e)),Bd=(e,t=!0)=>xd(kd(t?H.memo(e):e)),Vd=(e,t=!0)=>xd(Ad(t?H.memo(e):e)),Hd=(e,t=!0)=>xd(jd(t?H.memo(e):e)),Ud=e=>function(t){let n=sd(),r=n.i18n?.locale??yl.locale,i=n.i18n?.translate??yl.translate;return H.createElement(e,{...t,locale:r,t:i})},Wd=e=>function(t){let n=(0,H.useMemo)(()=>ml(t.t,rl,t.i18nKeyPrefix,t.label),[t.t,t.i18nKeyPrefix,t.label]);return H.createElement(e,{...t,translations:n})},Gd=class extends H.Component{constructor(e){super(e),this.state={id:xl(e.uischema)?os(e.uischema.scope):void 0}}componentWillUnmount(){xl(this.props.uischema)&&ss(this.state.id)}componentDidUpdate(e){e.schema!==this.props.schema&&(ss(this.state.id),this.setState({id:xl(this.props.uischema)?os(this.props.uischema.scope):void 0}))}render(){let{schema:e,rootSchema:t,uischema:n,path:r,enabled:i,renderers:a,cells:o,config:s}=this.props;return H.createElement(Kd,{uischema:n,schema:e,rootSchema:t,path:r,enabled:i,renderers:a,cells:o,id:this.state.id,config:s})}},Kd=H.memo(function(e){let t=(0,H.useMemo)(()=>({rootSchema:e.rootSchema,config:e.config}),[e.rootSchema,e.config]),n=(0,H.useMemo)(()=>(0,Ko.default)(e.renderers,n=>n.tester(e.uischema,e.schema,t)),[e.renderers,e.uischema,e.schema,t]);if(n===void 0||n.tester(e.uischema,e.schema,t)===-1)return H.createElement(rd,{type:`renderer`});{let t=n.renderer;return H.createElement(t,{uischema:e.uischema,schema:e.schema,path:e.path,enabled:e.enabled,renderers:e.renderers,cells:e.cells,id:e.id})}}),qd=class extends Gd{constructor(e){super(e)}},Jd=Md(Gd);Md(qd);var Yd=e=>{let{ajv:t,data:n,schema:r,uischema:i,renderers:a,cells:o,onChange:s,config:c,uischemas:l,readonly:u,validationMode:d,i18n:f,additionalErrors:p,middleware:m}=e,h=(0,H.useMemo)(()=>r===void 0?hc.jsonSchema(n):r,[r,n]),g=(0,H.useMemo)(()=>typeof i==`object`?i:hc.uiSchema(h,void 0,void 0,h),[i,h]);return H.createElement(od,{initState:{core:{ajv:t,data:n,schema:h,uischema:g,validationMode:d,additionalErrors:p},config:c,uischemas:l,renderers:a,cells:o,readonly:u,i18n:f},onChange:s,middleware:m},H.createElement(Jd,null))},Xd=Ld(({uischema:e,schema:t,rootSchema:n,path:r,cells:i,id:a,enabled:o,renderers:s,config:c})=>{let l=(0,H.useMemo)(()=>({rootSchema:n,config:c}),[n,c]),u=(0,H.useMemo)(()=>(0,Ko.default)(i,n=>n.tester(e,t,l)),[i,e,t,l]);if(u===void 0||u.tester(e,t,l)===-1)return H.createElement(rd,{type:`cell`});{let n=u.cell;return H.createElement(n,{uischema:e,schema:t,enabled:o,path:r,id:a,renderers:s,cells:i})}}),Zd=s(((e,t)=>{var n=Array.prototype.join;function r(e,t){return e==null?``:n.call(e,t)}t.exports=r})),Qd=s(((e,t)=>{var n=co()(`filter`,bi());n.placeholder=ha(),t.exports=n})),$d=s(((e,t)=>{var n=vi(),r=dt();function i(e,t){var i=-1,a=r(e)?Array(e.length):[];return n(e,function(e,n,r){a[++i]=t(e,n,r)}),a}t.exports=i})),ef=s(((e,t)=>{var n=jt(),r=Kt(),i=$d(),a=We();function o(e,t){return(a(e)?n:i)(e,r(t,3))}t.exports=o})),tf=s(((e,t)=>{var n=co()(`map`,ef());n.placeholder=ha(),t.exports=n})),nf=s(((e,t)=>{var n=Aa(),r=io(),i=Da(),a=ka(),o=We(),s=Na(),c=`Expected a function`,l=8,u=32,d=128,f=256;function p(e){return r(function(t){var r=t.length,p=r,m=n.prototype.thru;for(e&&t.reverse();p--;){var h=t[p];if(typeof h!=`function`)throw TypeError(c);if(m&&!g&&a(h)==`wrapper`)var g=new n([],!0)}for(p=g?p:r;++p{t.exports=nf()()})),af=s(((e,t)=>{var n=co()(`flow`,rf());n.placeholder=ha(),t.exports=n})),of=s(((e,t)=>{t.exports={cap:!1,curry:!1,fixed:!1,immutable:!1,rearg:!1}})),sf=s(((e,t)=>{var n=co()(`keys`,ft(),of());n.placeholder=ha(),t.exports=n})),cf=s(((e,t)=>{var n=co()(`startCase`,pn(),of());n.placeholder=ha(),t.exports=n})),lf=u(Zd()),uf=u(Qd()),df=u(tf()),ff=u(af()),pf=u(sf()),mf=u(cf()),hf={"enum.none":`None`},gf=e=>(t,...n)=>(0,Yo.default)((0,zo.default)(e,e=>e.name===t),(e,t)=>typeof t.classNames==`function`?e.concat(t.classNames(n)):e.concat(t.classNames),[]),_f=e=>(t,...n)=>(0,lf.default)(gf(e)(t,n),` `),vf=H.createContext({styles:[{name:`control`,classNames:[`control`]},{name:`control.trim`,classNames:[`trim`]},{name:`control.input`,classNames:[`input`]},{name:`control.select`,classNames:[`select`]},{name:`control.checkbox`,classNames:[`checkbox`]},{name:`control.radio`,classNames:[`radio`]},{name:`control.radio.option`,classNames:[`radio-option`]},{name:`control.radio.input`,classNames:[`radio-input`]},{name:`control.radio.label`,classNames:[`radio-label`]},{name:`control.validation.error`,classNames:[`validation_error`]},{name:`control.validation`,classNames:[`validation`]},{name:`categorization`,classNames:[`categorization`]},{name:`categorization.master`,classNames:[`categorization-master`]},{name:`categorization.detail`,classNames:[`categorization-detail`]},{name:`category.group`,classNames:[`category-group`]},{name:`category.subcategories`,classNames:[`category-subcategories`]},{name:`array.layout`,classNames:[`array-layout`]},{name:`array.children`,classNames:[`children`]},{name:`group.layout`,classNames:[`group-layout`]},{name:`horizontal.layout`,classNames:[`horizontal-layout`]},{name:`horizontal.layout.item`,classNames:([e])=>[`horizontal-layout-${e}`]},{name:`vertical.layout`,classNames:[`vertical-layout`]},{name:`array.table.validation.error`,classNames:[`validation_error`]},{name:`array.table.validation`,classNames:[`validation`]},{name:`array.table`,classNames:[`array-table-layout`,`control`]},{name:`array.control.validation.error`,classNames:[`validation_error`]},{name:`array.control.validation`,classNames:[`validation`]},{name:`array.control.add`,classNames:[`button-add`]},{name:`array.child.controls`,classNames:[`child-controls`]},{name:`array.child.controls.up`,classNames:[`button-up`]},{name:`array.child.controls.down`,classNames:[`button-down`]},{name:`array.child.controls.delete`,classNames:[`button-delete`]},{name:`array.control`,classNames:[`array-control-layout`,`control`]},{name:`input.description`,classNames:[`input-description`]}]}),yf=()=>(0,H.useContext)(vf),bf=()=>{let{styles:e}=yf();return e},xf=e=>function(t){let n=sd(),r=bf(),i=t.uischema,a=n.config,o=a&&a.trim,s=(0,H.useMemo)(()=>gf(r)(`control`),[r]),c=(0,U.default)(i.scope)?[``]:s.concat([`${Js(i.scope)}`]);o&&(c=c.concat(gf(r)(`control.trim`)));let l=(0,U.default)(t.errors),u=(0,H.useMemo)(()=>_f(r)(`control.label`),[r]),d=(0,H.useMemo)(()=>_f(r)(`input.description`),[r]),f=(0,H.useMemo)(()=>_f(r)(`control.validation`),[r]),p=(0,H.useMemo)(()=>_f(r)(`control.validation.error`),[r]),m=[`validate`].concat(l?`valid`:`invalid`),h=(0,H.useMemo)(()=>_f(r),[r]),g=(0,H.useMemo)(()=>gf(r),[r]),_=c.join(` `),v=m.join(` `),y=(0,H.useMemo)(()=>({wrapper:_,input:v,label:u,description:d,validation:f,validationError:p}),[_,v,u,d,f,p]);return H.createElement(e,{...t,getStyleAsClassName:h,getStyle:g,classNames:y})},Sf=e=>t=>function(n){let r=[`validate`].concat(n.isValid?`valid`:`invalid`),i=bf(),a=_f(i)(e);return a&&r.push(a),H.createElement(t,{...n,getStyleAsClassName:_f(i),getStyle:gf(i),className:r.join(` `)})},q=e=>function(t){let n=gu({jsonforms:{...sd()}});return H.createElement(e,{...t,ajv:n})},Cf=Sf(`control.input`),wf=Sf(`control.select`),Tf=Sf(`control.checkbox`),Ef=class extends nd{render(){let{classNames:e,description:t,id:n,errors:r,label:i,uischema:a,schema:o,rootSchema:s,visible:c,enabled:l,required:u,path:d,cells:f,config:p}=this.props,m=r.length===0,h=[e.validation].concat(m?e.description:e.validationError).join(` `),g=(0,Vo.default)({},p,a.options),_=!Pu(c,t,this.state.isFocused,g.showUnfocusedDescription),v={rootSchema:s,config:p},y=(0,Ko.default)(f,e=>e.tester(a,o,v));return y===void 0||y.tester(a,o,v)===-1?(console.warn(`No applicable cell found.`,a,o),null):H.createElement(`div`,{className:e.wrapper,hidden:!c,onFocus:this.onFocus,onBlur:this.onBlur,id:n},H.createElement(`label`,{htmlFor:n+`-input`,className:e.label},ku(i,u,g.hideRequiredAsterisk)),H.createElement(Xd,{uischema:a,schema:o,path:d,id:n+`-input`,enabled:l}),H.createElement(`div`,{className:h},m?_?t:null:r))}},Df=Nl(1,xl),Of=xf(Nd(Ef)),kf=({classNames:e,id:t,label:n,options:r,required:i,description:a,errors:o,data:s,uischema:c,visible:l,config:u,enabled:d,path:f,handleChange:p})=>{let m=bf(),[h,g]=(0,H.useState)(!1),_=(0,H.useMemo)(()=>_f(m)(`control.radio`),[m]),v=(0,H.useMemo)(()=>_f(m)(`control.radio.option`),[m]),y=(0,H.useMemo)(()=>_f(m)(`control.radio.input`),[m]),b=(0,H.useMemo)(()=>_f(m)(`control.radio.label`),[m]),x=o.length===0,S=[e.validation].concat(x?e.description:e.validationError).join(` `),C=(0,Vo.default)({},u,c.options),w=!Pu(l,a,h,C.showUnfocusedDescription),T=!_||_===`radio`,E={};return T&&(E={display:`flex`,flexDirection:C.orientation===`vertical`?`column`:`row`}),H.createElement(`div`,{className:e.wrapper,hidden:!l,onFocus:()=>g(!0),onBlur:()=>g(!1)},H.createElement(`label`,{htmlFor:t,className:e.label},ku(n,i,C.hideRequiredAsterisk)),H.createElement(`div`,{className:_,style:E},r.map(e=>H.createElement(`div`,{key:e.label,className:v},H.createElement(`input`,{type:`radio`,value:e.value,id:e.value,name:t,checked:s===e.value,onChange:t=>p(f,e.value),disabled:!d,className:y}),H.createElement(`label`,{htmlFor:e.value,className:b},e.label)))),H.createElement(`div`,{className:S},x?w?a:null:o))},Af=e=>H.createElement(kf,{...e}),jf=Nl(3,jl(Bl,Dl(`format`,`radio`))),Mf=xf(zd(Af)),Nf=e=>H.createElement(kf,{...e}),Pf=Nl(3,jl(Vl,Dl(`format`,`radio`))),Ff=xf(Vd(Nf)),{convertToValidClassName:If}=sc,Lf=({classNames:e,data:t,label:n,path:r,schema:i,errors:a,addItem:o,removeItems:s,moveUp:c,moveDown:l,uischema:u,uischemas:d,getStyleAsClassName:f,renderers:p,rootSchema:m,translations:h,enabled:g})=>{let _=u,v=(0,H.useMemo)(()=>ou(d,i,u.scope,r,void 0,u,m),[d,i,u.scope,r,u,m]),y=a.length===0,b=[f(`array.control.validation`)].concat(y?``:f(`array.control.validation.error`)).join(` `),x=f(`array.control.add`),S=f(`array.control.label`),C=f(`array.child.controls`),w=f(`array.child.controls.up`),T=f(`array.child.controls.down`),E=f(`array.child.controls.delete`),D=[f(`array.control`),If(_.scope)].join(` `);return H.createElement(`div`,{className:D},H.createElement(`header`,null,H.createElement(`label`,{className:S},n),H.createElement(`button`,{type:`button`,className:x,disabled:!g,onClick:o(r,Au(i,m))},`Add to `,n)),H.createElement(`div`,{className:b},a),H.createElement(`div`,{className:e.children},t?(0,jo.default)(0,t.length).map(e=>{let t=cs(r,`${e}`);return H.createElement(`div`,{key:e},H.createElement(Jd,{schema:i,uischema:v||u,path:t,key:t,renderers:p}),H.createElement(`div`,{className:C},H.createElement(`button`,{type:`button`,className:w,disabled:!g,"aria-label":h.upAriaLabel,onClick:()=>{c(r,e)()}},h.up),H.createElement(`button`,{type:`button`,className:T,disabled:!g,"aria-label":h.downAriaLabel,onClick:()=>{l(r,e)()}},h.down),H.createElement(`button`,{type:`button`,className:E,disabled:!g,"aria-label":h.removeAriaLabel,onClick:()=>{window.confirm(`Are you sure you wish to delete this item?`)&&s(r,[e])()}},h.removeTooltip)))}):H.createElement(`p`,null,h.noDataMessage)))},Rf=xf(Fd(Ud(Wd(({schema:e,uischema:t,data:n,path:r,rootSchema:i,uischemas:a,addItem:o,getStyle:s,getStyleAsClassName:c,removeItems:l,moveUp:u,moveDown:d,id:f,visible:p,enabled:m,errors:h,translations:g,arraySchema:_})=>{let v=t,y=sc.createLabelDescriptionFrom(v,e),b=y.show?y.text:``,x={wrapper:`control ${sc.convertToValidClassName(v.scope)}`,fieldSet:c(`array.layout`),button:c(`array.button`),children:c(`array.children`)};return H.createElement(Lf,{classNames:x,data:n,label:b,path:r,schema:e,arraySchema:_,errors:h,addItem:o,removeItems:l,moveUp:u,moveDown:d,uischema:t,uischemas:a,getStyleAsClassName:c,rootSchema:i,id:f,visible:p,enabled:m,getStyle:s,translations:g})})))),zf=Nl(4,Zl),Bf=e=>e.type===`Categorization`,J=Nl(1,jl(El(`Categorization`),e=>{let t=e=>(0,U.default)(e.elements)?!1:e.elements.map(e=>Bf(e)?t(e):e.type===`Category`).reduce((e,t)=>e&&t,!0);return t(e)})),Vf=(e,t)=>t===e?`selected`:``,Hf=({selectedCategory:e,elements:t,data:n,depth:r,onSelect:i,subcategoriesClassName:a,groupClassName:o,t:s,ajv:c,config:l})=>{let u=(0,H.useMemo)(()=>t.filter(e=>Us(e,n,void 0,c,l)),[t,n,c,l]),d=(0,H.useMemo)(()=>u.map(e=>pl(e,s)),[u,s]);return H.createElement(`ul`,{className:a},u.map((t,u)=>Bf(t)?H.createElement(`li`,{key:d[u],className:o},H.createElement(`span`,null,d[u]),H.createElement(Hf,{selectedCategory:e,elements:t.elements,data:n,ajv:c,config:l,depth:r+1,onSelect:i,subcategoriesClassName:a,groupClassName:o,t:s})):H.createElement(`li`,{key:d[u],onClick:i(u),className:Vf(t,e)},H.createElement(`span`,null,d[u]))))},Uf=({category:e,schema:t,path:n})=>H.createElement(`div`,{id:`categorization.detail`},(e.elements||[]).map((e,r)=>H.createElement(Jd,{key:`${n}-${r}`,uischema:e,schema:t,path:n}))),Wf=q(xf(Ud(Pd(({data:e,uischema:t,schema:n,path:r,selected:i,t:a,visible:o,getStyleAsClassName:s,onChange:c,ajv:l,config:u})=>{let d=t,f=d.elements,p=s(`categorization`),m=s(`categorization.master`),h=s(`categorization.detail`),g=s(`category.subcategories`),_=s(`category.group`),[v,y]=(0,H.useState)(t),[b,x]=(0,H.useState)(i??0),S=b>=d.elements.length?0:b;return d!==v&&(x(0),y(d)),H.createElement(`div`,{className:p,hidden:o==null?!1:!o},H.createElement(`div`,{className:m},H.createElement(Hf,{elements:f,selectedCategory:f[S],data:e,ajv:l,config:u,depth:0,onSelect:e=>()=>c?c(e,S):x(e),subcategoriesClassName:g,groupClassName:_,t:a})),H.createElement(`div`,{className:h},H.createElement(Uf,{category:f[S],schema:n,path:r,key:S})))})))),Gf=Nl(1,El(`Label`)),Kf=xf(Hd(({text:e,visible:t,getStyleAsClassName:n})=>{let r=n(`label-control`),i=!t;return H.createElement(`label`,{hidden:i,className:r},e)})),{convertToValidClassName:qf}=sc,{or:Jf,isObjectArrayControl:Yf,isPrimitiveArrayControl:Xf,rankWith:Zf}=iu,Qf=Zf(3,Jf(Yf,Xf)),$f=xf(Fd(Ud(Wd(class extends H.Component{constructor(){super(...arguments),this.confirmDelete=(e,t)=>{let n=e.substring(0,e.lastIndexOf(`.`));this.props.removeItems(n,[t])()}}render(){let{addItem:e,uischema:t,schema:n,rootSchema:r,path:i,data:a,visible:o,errors:s,label:c,getStyleAsClassName:l,childErrors:u,translations:d,enabled:f}=this.props,p=t,m=l(`array.table.table`),h=l(`array.table.label`),g=l(`array.table.button`),_=l(`array.table.validation`),v=[l(`array.table`),qf(p.scope)].join(` `),y=e=>({type:`Control`,label:!1,scope:n.type===`object`?`#/properties/${e}`:`#`}),b=s.length===0,x=[_].concat(b?``:l(`array.table.validation.error`)).join(` `);return H.createElement(`div`,{className:v,hidden:!o},H.createElement(`header`,null,H.createElement(`label`,{className:h},c),H.createElement(`button`,{type:`button`,disabled:!f,className:g,onClick:e(i,Au(n,r))},d.addTooltip)),H.createElement(`div`,{className:x},b?``:s),H.createElement(`table`,{className:m},H.createElement(`thead`,null,H.createElement(`tr`,null,n.properties?(0,ff.default)(pf.default,(0,uf.default)(e=>n.properties[e].type!==`array`),(0,df.default)(e=>H.createElement(`th`,{key:e},n.properties[e].title??(0,mf.default)(e))))(n.properties):H.createElement(`th`,null,`Items`),H.createElement(`th`,null,`Valid`),H.createElement(`th`,null,`\xA0`))),H.createElement(`tbody`,null,!a||!Array.isArray(a)||a.length===0?H.createElement(`tr`,null,H.createElement(`td`,null,d.noDataMessage)):a.map((e,t)=>{let a=Qs.compose(i,`${t}`),o=(0,zo.default)(u,e=>nc(e).startsWith(a)),s=l(`array.validation`),c=l(`array.validation.error`),p=o?[s].concat(c).join(` `):s;return H.createElement(`tr`,{key:a},n.properties?(0,ff.default)(pf.default,(0,uf.default)(e=>n.properties[e].type!==`array`),(0,df.default)(e=>{let t=Qs.compose(a,e.toString());return H.createElement(`td`,{key:t},H.createElement(Xd,{schema:Zs.schema(n,`#/properties/${us(e)}`,r),uischema:y(us(e)),path:a+`.`+e}))}))(n.properties):H.createElement(`td`,{key:Qs.compose(a,t.toString())},H.createElement(Xd,{schema:n,uischema:y(),path:a})),H.createElement(`td`,null,o?H.createElement(`span`,{className:p},(0,lf.default)(o.map(e=>e.message),` and `)):H.createElement(`span`,{className:p},`OK`)),H.createElement(`td`,null,H.createElement(`button`,{type:`button`,disabled:!f,"aria-label":d.removeAriaLabel,onClick:()=>{window.confirm(d.deleteDialogMessage)&&this.confirmDelete(a,t)}},d.removeTooltip)))}))))}})))),ep=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`checkbox`,checked:!!t,onChange:e=>s(o,e.target.checked),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},tp=Nl(2,Fl),np=Id(Tf(ep)),rp=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`date`,value:t||``,onChange:e=>s(o,e.target.value),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},ip=Nl(2,Gl),ap=Id(Cf(rp)),op=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e,c=e=>e===``?``:e+`:00.000Z`;return H.createElement(`input`,{type:`datetime-local`,value:(t||``).substr(0,16),onChange:e=>s(o,c(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},sp=Nl(2,ql),cp=Id(Cf(op)),lp=e=>{let{data:t,className:n,id:r,enabled:i,schema:a,uischema:o,path:s,handleChange:c,options:l,t:u}=e,d=(0,H.useMemo)(()=>u(`enum.none`,hf[`enum.none`],{schema:a,uischema:o,path:s}),[u,a,o,s]);return H.createElement(`select`,{className:n,id:r,disabled:!i,autoFocus:o.options&&o.options.focus,value:t||``,onChange:e=>c(s,e.target.selectedIndex===0?void 0:e.target.value)},[H.createElement(`option`,{value:``,key:`jsonforms.enum.none`},d)].concat(l.map(e=>H.createElement(`option`,{value:e.value,label:e.label,key:e.value}))))},up=Nl(2,Bl),dp=Rd(Ud(wf(lp))),fp=e=>e===``?void 0:parseInt(e,10),pp=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`number`,step:`1`,value:t??``,onChange:e=>s(o,fp(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},mp=Nl(2,Hl),hp=Id(Cf(pp)),gp=e=>e===``?void 0:Number(e),_p=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`number`,step:`0.1`,value:t??``,onChange:e=>s(o,gp(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},vp=Nl(2,W),yp=Id(Cf(_p));Id(Cf(e=>{let{className:t,id:n,enabled:r,uischema:i,path:a,handleChange:o,schema:s}=e,c=s.maxLength,l=e.toFormatted(e.data);return H.createElement(`input`,{type:`text`,value:l,onChange:t=>{o(a,e.fromFormatted(t.currentTarget.value))},className:t,id:n,disabled:!r,autoFocus:i.options&&i.options.focus,maxLength:i.options&&i.options.restrict?c:void 0,size:i.options&&i.options.trim?c:void 0})}));var bp=e=>{let{data:t,className:n,id:r,enabled:i,schema:a,uischema:o,path:s,handleChange:c,options:l,t:u}=e,d=(0,H.useMemo)(()=>u(`enum.none`,hf[`enum.none`],{schema:a,uischema:o,path:s}),[u,a,o,s]),f=H.createElement(`option`,{value:``,key:`jsonforms.enum.none`},d);return H.createElement(`select`,{className:n,id:r,disabled:!i,autoFocus:o.options&&o.options.focus,value:t||``,onChange:e=>c(s,e.target.selectedIndex===0?void 0:e.target.value)},(o.options?.hideEmptyOption===!0?[]:[f]).concat(l.map(e=>H.createElement(`option`,{value:e.value,label:e.label,key:e.value}))))},xp=Nl(2,Vl),Sp=Bd(Ud(wf(bp))),Cp=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,schema:o,path:s,handleChange:c}=e;return H.createElement(`div`,{style:{display:`flex`}},H.createElement(`input`,{type:`range`,max:o.maximum,min:o.minimum,value:t||o.default,onChange:e=>c(s,Number(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus,style:{flex:`1`}}),H.createElement(`label`,{style:{marginLeft:`0.5em`}},t||o.default))},wp=Nl(4,eu),Tp=Id(Cf(Cp)),Ep=e=>{let{config:t,data:n,className:r,id:i,enabled:a,uischema:o,schema:s,path:c,handleChange:l}=e,u=s.maxLength,d=(0,Vo.default)({},t,o.options);return H.createElement(`input`,{type:d.format===`password`?`password`:`text`,value:n||``,onChange:e=>l(c,e.target.value===``?void 0:e.target.value),className:r,id:i,disabled:!a,autoFocus:d.focus,placeholder:d.placeholder,maxLength:d.restrict?u:void 0,size:d.trim?u:void 0})},Dp=Nl(1,Ul),Op=Id(Cf(Ep)),kp=e=>{let{data:t,className:n,id:r,enabled:i,config:a,uischema:o,path:s,handleChange:c}=e,l=(0,Vo.default)({},a,o.options);return H.createElement(`textarea`,{value:t||``,onChange:e=>c(s,e.target.value===``?void 0:e.target.value),className:n,id:r,disabled:!i,autoFocus:l.focus,placeholder:l.placeholder})},Ap=Nl(2,Wl),jp=Id(Cf(kp)),Mp=e=>{if(typeof e==`string`){let t=e.split(`:`);return t.length===2&&t.push(`00`),t.join(`:`)}return e},Np=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`time`,value:t||``,onChange:e=>s(o,Mp(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},Pp=Nl(2,Kl),Fp=Id(Cf(Np)),Ip=(e,t,n,r,i)=>{if((0,U.default)(e.elements))return[];let{renderers:a,cells:o}=sd();return e.elements.map((e,s)=>H.createElement(`div`,{className:n,key:`${r}-${s}`},H.createElement(Jd,{renderers:a,cells:o,uischema:e,schema:t,path:r,enabled:i})))},Lp=Nl(1,El(`Group`)),Rp=e=>{let{data:t,...n}=e;return H.createElement(zp,{...n})},zp=H.memo(function({schema:e,uischema:t,path:n,enabled:r,visible:i,label:a,getStyle:o,getStyleAsClassName:s}){let c=t,l=c.elements?c.elements.length:0,u=s(`group.layout`),d=[`group-layout-item`].concat(o(`group.layout.item`,l)).join(` `);return H.createElement(`fieldset`,{className:u,hidden:i==null?!1:!i},(0,U.default)(a)?``:H.createElement(`legend`,{className:s(`group.label`)},a),Ip(c,e,d,n,r))}),Bp=xf(Pd(Rp)),Vp=({className:e,children:t,visible:n})=>H.createElement(`div`,{className:e,hidden:n==null?!1:!n},t),Hp=Nl(1,El(`HorizontalLayout`)),Up=e=>{let{data:t,...n}=e;return H.createElement(Wp,{...n})},Wp=H.memo(function({schema:e,uischema:t,getStyle:n,getStyleAsClassName:r,enabled:i,visible:a,path:o}){let s=t,c=s.elements?s.elements.length:0,l=r(`horizontal.layout`),u=[`horizontal-layout-item`].concat(n(`horizontal.layout.item`,c)).join(` `);return H.createElement(Vp,{className:l,visible:a,enabled:i,path:o,uischema:t,schema:e,getStyle:n,getStyleAsClassName:r},Ip(s,e,u,o,i))}),Gp=xf(Pd(Up,!1)),Kp=Nl(1,El(`VerticalLayout`)),qp=e=>{let{data:t,...n}=e;return H.createElement(Jp,{...n})},Jp=H.memo(function({schema:e,uischema:t,path:n,visible:r,enabled:i,getStyle:a,getStyleAsClassName:o}){let s=t,c=s.elements?s.elements.length:0,l=o(`vertical.layout`),u=[`vertical-layout-item`].concat(a(`vertical.layout.item`,c)).join(` `);return H.createElement(Vp,{className:l,uischema:t,schema:e,visible:r,enabled:i,path:n,getStyle:a,getStyleAsClassName:o},Ip(s,e,u,n,i))}),Yp=xf(Pd(qp,!1)),Xp=[{tester:Df,renderer:Of},{tester:jf,renderer:Mf},{tester:Pf,renderer:Ff},{tester:zf,renderer:Rf},{tester:Gf,renderer:Kf},{tester:J,renderer:Wf},{tester:Qf,renderer:$f},{tester:Lp,renderer:Bp},{tester:Kp,renderer:Yp},{tester:Hp,renderer:Gp}],Zp=[{tester:tp,cell:np},{tester:ip,cell:ap},{tester:sp,cell:cp},{tester:up,cell:dp},{tester:mp,cell:hp},{tester:vp,cell:yp},{tester:xp,cell:Sp},{tester:wp,cell:Tp},{tester:Ap,cell:jp},{tester:Dp,cell:Op},{tester:Pp,cell:Fp}],Qp=e=>{if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},$p=e=>typeof e!=`object`||!e?e:JSON.parse(JSON.stringify(e)),em=(e,t=`value`)=>{if(typeof e!=`string`)return{ok:!0,value:e};let n=e.trim();if(n===``)return{ok:!1,error:`${t} is empty`};try{return{ok:!0,value:JSON.parse(n)}}catch(e){return{ok:!1,error:`${t} must be valid JSON: ${e instanceof Error?e.message:`parse failed`}`}}},tm=e=>{let t=em(e,`schema`);if(!t.ok)return{ok:!1,schema:null,error:t.error};if(!Qp(t.value))return{ok:!1,schema:null,error:`schema must be a JSON object`};let n=$p(t.value);return!n.type&&Qp(n.properties)&&(n.type=`object`),!n.type&&!n.anyOf&&!n.oneOf&&!n.allOf&&!n.$ref?{ok:!1,schema:null,error:`schema must declare a type or JSON Schema composition`}:{ok:!0,schema:n,error:``}},nm=e=>{if(e==null||typeof e==`string`&&e.trim()===``)return{ok:!0,uischema:void 0,error:``};let t=em(e,`ui schema`);return t.ok?Qp(t.value)?{ok:!0,uischema:$p(t.value),error:``}:{ok:!1,uischema:void 0,error:`ui schema must be a JSON object`}:{ok:!1,uischema:void 0,error:t.error}},rm=(e,t)=>{if(e==null||typeof e==`string`&&e.trim()===``)return{ok:!1,schema:null,uischema:void 0,error:`schema is empty`};let n=tm(e);if(!n.ok)return{ok:!1,schema:null,uischema:void 0,error:n.error};let r=nm(t);return r.ok?{ok:!0,schema:n.schema,uischema:r.uischema,error:``}:{ok:!1,schema:null,uischema:void 0,error:r.error}},im=e=>Qp(e)?Array.isArray(e.type)?e.type.filter(e=>typeof e==`string`):typeof e.type==`string`?[e.type]:[]:[],am=e=>{if(!Qp(e))return{};if(Object.prototype.hasOwnProperty.call(e,`default`))return $p(e.default);let t=im(e);if(t.includes(`array`))return[];if(t.includes(`object`)||Qp(e.properties)){let t={},n=Qp(e.properties)?e.properties:{};for(let[e,r]of Object.entries(n)){if(!Qp(r))continue;if(Object.prototype.hasOwnProperty.call(r,`default`)){t[e]=$p(r.default);continue}let n=om(r);n.hasDefault&&(t[e]=n.value)}return t}return{}},om=e=>{if(!Qp(e))return{hasDefault:!1,value:void 0};if(Object.prototype.hasOwnProperty.call(e,`default`))return{hasDefault:!0,value:$p(e.default)};let t=im(e);if(t.includes(`object`)||Qp(e.properties)){let t=am(e);return Object.keys(t).length>0?{hasDefault:!0,value:t}:{hasDefault:!1,value:void 0}}if(t.includes(`array`)&&Qp(e.items)){let t=om(e.items);if(t.hasDefault)return{hasDefault:!0,value:[t.value]}}return{hasDefault:!1,value:void 0}},sm=e=>JSON.stringify(e??{},null,2),cm=e=>{let t=String(e||``).trim();if(t===``)return{ok:!0,data:{},error:``};try{return{ok:!0,data:JSON.parse(t),error:``}}catch(e){return{ok:!1,data:null,error:e instanceof Error?e.message:`payload must be valid JSON`}}},lm=({toMode:e,textValue:t,currentData:n,schema:r})=>{if(e===`json`)return{ok:!0,mode:`json`,data:n==null?am(r):$p(n),textValue:sm(n??am(r)),error:``};if(e===`form`){let e=cm(t);return e.ok?{ok:!0,mode:`form`,data:e.data==null?am(r):e.data,textValue:sm(e.data==null?am(r):e.data),error:``}:{ok:!1,mode:`json`,data:n==null?am(r):$p(n),textValue:t,error:e.error}}return{ok:!1,mode:`json`,data:n==null?am(r):$p(n),textValue:t,error:`payload mode must be form or json`}},um=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),dm=s((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===k?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case w:return`Suspense`;case T:return`SuspenseList`;case O:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case _:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case E:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case D:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===v)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===D)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=A.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(j.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){P||(P=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function l(){var e=t(this.type);return ee[e]||(ee[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:g,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0)if(o)if(M(p)){for(o=0;o({type:e,elements:[]}),lc=e=>({type:`Control`,scope:e}),uc=(e,t)=>{if(!(0,U.default)(e)&&!Ds(e)){let n=cc(t);return n.elements.push(e),n}return e},dc=(e,t)=>{if(!(0,U.default)(t)){let n=(0,ko.default)(t);if(Es(e))e.label=n;else{let t={type:`Label`,text:n};e.elements.push(t)}}},fc=e=>!(0,U.default)(e)&&(!(0,U.default)(e.oneOf)||!(0,U.default)(e.anyOf)||!(0,U.default)(e.allOf)),pc=(e,t,n,r,i,a)=>{if(!(0,U.default)(e)&&e.$ref!==void 0)return pc(_s(a,e.$ref,a),t,n,r,i,a);if(fc(e)){let e=lc(n);return t.push(e),e}let o=Xs(e);if(o.length===0)return null;if(o.length>1){let e=lc(n);return t.push(e),e}if(n===`#`&&o[0]===`object`){let o=cc(i);if(t.push(o),e.properties&&(0,Ao.default)(e.properties).length>1&&dc(o,r),!(0,U.default)(e.properties)){let t=n+`/properties`;Object.keys(e.properties).map(n=>{let r=e.properties[n],s=`${t}/${us(n)}`;r.$ref!==void 0&&(r=_s(a,r.$ref,a)),pc(r,o.elements,s,n,i,a)})}return o}switch(o[0]){case`object`:case`array`:case`string`:case`number`:case`integer`:case`null`:case`boolean`:{let e=lc(n);return t.push(e),e}default:throw Error(`Unknown type: `+JSON.stringify(e))}},mc=(e,t=`VerticalLayout`,n=`#`,r=e)=>uc(pc(e,[],n,``,t,r),t),hc={jsonSchema:ns,uiSchema:mc,controlElement:lc},gc=`jsonforms/INIT`,_c=`jsonforms/UPDATE_CORE`,vc=`jsonforms/SET_AJV`,yc=`jsonforms/UPDATE`,bc=`jsonforms/UPDATE_ERRORS`,xc=`jsonforms/VALIDATE`,Sc=`jsonforms/ADD_RENDERER`,Cc=`jsonforms/REMOVE_RENDERER`,wc=`jsonforms/ADD_CELL`,Tc=`jsonforms/REMOVE_CELL`,Ec=`jsonforms/SET_CONFIG`,Dc=`jsonforms/ADD_UI_SCHEMA`,Oc=`jsonforms/REMOVE_UI_SCHEMA`,kc=`jsonforms/SET_SCHEMA`,Ac=`jsonforms/SET_UISCHEMA`,jc=`jsonforms/SET_VALIDATION_MODE`,Mc=`jsonforms/SET_LOCALE`,Nc=`jsonforms/SET_TRANSLATOR`,Pc=`jsonforms/UPDATE_I18N`,Fc=`jsonforms/ADD_DEFAULT_DATA`,Ic=`jsonforms/REMOVE_DEFAULT_DATA`,Lc=e=>{if(!(`type`in e)||typeof e.type!=`string`)return!1;switch(e.type){case`ADD`:return`values`in e&&Array.isArray(e.values)&&e.values.length>0;case`REMOVE`:return`indices`in e&&Array.isArray(e.indices)&&e.indices.length>0&&e.indices.every(e=>typeof e==`number`);case`MOVE`:return`moves`in e&&Array.isArray(e.moves)&&e.moves.length>0&&e.moves.every(e=>typeof e==`object`&&!!e&&`from`in e&&`to`in e&&typeof e.from==`number`&&typeof e.to==`number`);default:return!1}},Rc=(e,t=ns(e),n,r)=>({type:gc,data:e,schema:t,uischema:typeof n==`object`?n:mc(t),options:r}),zc=(e,t,n,r)=>({type:_c,data:e,schema:t,uischema:n,options:r}),Bc=(e,t)=>({type:Fc,schemaPath:e,data:t}),Vc=e=>({type:Ic,schemaPath:e}),Hc=e=>({type:vc,ajv:e}),Uc=(e,t,n)=>({type:yc,path:e,updater:t,context:n}),Wc=Object.freeze({__proto__:null,INIT:gc,UPDATE_CORE:_c,SET_AJV:vc,UPDATE_DATA:yc,UPDATE_ERRORS:bc,VALIDATE:xc,ADD_RENDERER:Sc,REMOVE_RENDERER:Cc,ADD_CELL:wc,REMOVE_CELL:Tc,SET_CONFIG:Ec,ADD_UI_SCHEMA:Dc,REMOVE_UI_SCHEMA:Oc,SET_SCHEMA:kc,SET_UISCHEMA:Ac,SET_VALIDATION_MODE:jc,SET_LOCALE:Mc,SET_TRANSLATOR:Nc,UPDATE_I18N:Pc,ADD_DEFAULT_DATA:Fc,REMOVE_DEFAULT_DATA:Ic,isUpdateArrayContext:Lc,init:Rc,updateCore:zc,registerDefaultData:Bc,unregisterDefaultData:Vc,setAjv:Hc,update:Uc,updateErrors:e=>({type:bc,errors:e}),registerRenderer:(e,t)=>({type:Sc,tester:e,renderer:t}),registerCell:(e,t)=>({type:wc,tester:e,cell:t}),unregisterCell:(e,t)=>({type:Tc,tester:e,cell:t}),unregisterRenderer:(e,t)=>({type:Cc,tester:e,renderer:t}),setConfig:e=>({type:Ec,config:e}),setValidationMode:e=>({type:jc,validationMode:e}),registerUISchema:(e,t)=>({type:Dc,tester:e,uischema:t}),unregisterUISchema:e=>({type:Oc,tester:e}),setLocale:e=>({type:Mc,locale:e}),setSchema:e=>({type:kc,schema:e}),setTranslator:(e,t)=>({type:Nc,translator:e,errorTranslator:t}),updateI18n:(e,t,n)=>({type:Pc,locale:e,translator:t,errorTranslator:n}),setUISchema:e=>({type:Ac,uischema:e})}),Gc={restrict:!1,trim:!1,showUnfocusedDescription:!1,hideRequiredAsterisk:!1},Kc=(e={})=>(0,Vo.default)({},Gc,e),qc=(e=Kc(),t)=>{switch(t.type){case Ec:return Kc(t.config);default:return e}},Jc={data:{},schema:{},uischema:void 0,errors:[],validator:void 0,ajv:void 0,validationMode:`ValidateAndShow`,additionalErrors:[]},Yc=(e,t)=>t&&Xc(t.options)?t.options.validationMode:e.validationMode,Xc=e=>e?e.validationMode!==void 0:!1,Zc=e=>e?e.additionalErrors!==void 0:!1,Qc=(e,t)=>t&&Zc(t.options)?t.options.additionalErrors:e.additionalErrors,$c=(e,t)=>{if(t){if(el(t.options))return t.options.ajv;if(t.options!==void 0&&(0,Go.default)(t.options.compile))return t.options}return e.ajv?e.ajv:$s()},el=e=>e?e.ajv!==void 0:!1,tl=(e=Jc,t)=>{switch(t.type){case gc:{let n=$c(e,t),r=Yc(e,t),i=r===`NoValidation`?void 0:n.compile(t.schema),a=ec(i,t.data),o=Qc(e,t);return{...e,data:t.data,schema:t.schema,uischema:t.uischema,additionalErrors:o,errors:a,validator:i,ajv:n,validationMode:r}}case _c:{let n=$c(e,t),r=Yc(e,t),i=e.validator,a=e.errors;e.schema!==t.schema||e.validationMode!==r||e.ajv!==n?(i=r===`NoValidation`?void 0:n.compile(t.schema),a=ec(i,t.data)):e.data!==t.data&&(a=ec(i,t.data));let o=Qc(e,t);return e.data!==t.data||e.schema!==t.schema||e.uischema!==t.uischema||e.ajv!==n||e.errors!==a||e.validator!==i||e.validationMode!==r||e.additionalErrors!==o?{...e,data:t.data,schema:t.schema,uischema:t.uischema,ajv:n,errors:(0,Bo.default)(a,e.errors)?e.errors:a,validator:i,validationMode:r,additionalErrors:o}:e}case vc:{let n=t.ajv,r=e.validationMode===`NoValidation`?void 0:n.compile(e.schema),i=ec(r,e.data);return{...e,validator:r,errors:i}}case kc:{let n=t.schema&&e.ajv&&e.validationMode!==`NoValidation`?e.ajv.compile(t.schema):e.validator,r=ec(n,e.data);return{...e,validator:n,schema:t.schema,errors:r}}case Ac:return{...e,uischema:t.uischema};case yc:if(t.path===void 0||t.path===null)return e;if(t.path===``){let n=t.updater((0,Ho.default)(e.data)),r=ec(e.validator,n);return{...e,data:n,errors:r}}else{let n=(0,Mo.default)(e.data,t.path),r=t.updater((0,Ho.default)(n)),i;i=r===void 0?(0,Wo.default)(t.path,e.data===void 0?{}:e.data):(0,Uo.default)(t.path,r,e.data===void 0?{}:e.data);let a=ec(e.validator,i);return{...e,data:i,errors:a}}case bc:return{...e,errors:t.errors};case jc:if(e.validationMode===t.validationMode)return e;if(t.validationMode===`NoValidation`){let n=ec(void 0,e.data);return{...e,errors:n,validationMode:t.validationMode}}if(e.validationMode===`NoValidation`){let n=e.ajv.compile(e.schema),r=ec(n,e.data);return{...e,validator:n,errors:r,validationMode:t.validationMode}}return{...e,validationMode:t.validationMode};default:return e}},nl;(function(e){e.addTooltip=`addTooltip`,e.addAriaLabel=`addAriaLabel`,e.removeTooltip=`removeTooltip`,e.upAriaLabel=`upAriaLabel`,e.downAriaLabel=`downAriaLabel`,e.noSelection=`noSelection`,e.removeAriaLabel=`removeAriaLabel`,e.noDataMessage=`noDataMessage`,e.deleteDialogTitle=`deleteDialogTitle`,e.deleteDialogMessage=`deleteDialogMessage`,e.deleteDialogAccept=`deleteDialogAccept`,e.deleteDialogDecline=`deleteDialogDecline`,e.up=`up`,e.down=`down`})(nl||={});var rl=[{key:nl.addTooltip,default:e=>e?`Add to ${e}`:`Add`},{key:nl.addAriaLabel,default:e=>e?`Add to ${e} button`:`Add button`},{key:nl.removeTooltip,default:()=>`Delete`},{key:nl.removeAriaLabel,default:()=>`Delete button`},{key:nl.upAriaLabel,default:()=>`Move item up`},{key:nl.up,default:()=>`Up`},{key:nl.down,default:()=>`Down`},{key:nl.downAriaLabel,default:()=>`Move item down`},{key:nl.noDataMessage,default:()=>`No data`},{key:nl.noSelection,default:()=>`No selection`},{key:nl.deleteDialogTitle,default:()=>`Confirm Deletion`},{key:nl.deleteDialogMessage,default:()=>`Are you sure you want to delete the selected entry?`},{key:nl.deleteDialogAccept,default:()=>`Yes`},{key:nl.deleteDialogDecline,default:()=>`No`}],il;(function(e){e.clearDialogTitle=`clearDialogTitle`,e.clearDialogMessage=`clearDialogMessage`,e.clearDialogAccept=`clearDialogAccept`,e.clearDialogDecline=`clearDialogDecline`})(il||={}),il.clearDialogTitle,il.clearDialogMessage,il.clearDialogAccept,il.clearDialogDecline;var al=(e,t)=>Ts(t)?t.i18n:e?.i18n??void 0,ol=e=>e?.split(`.`).filter(e=>!/^\d+$/.test(e)).join(`.`)||`root`,sl=(e,t,n)=>al(e,t)??ol(n),cl=(e,t,n,r)=>`${sl(e,t,n)}.${r}`,ll=(e,t)=>`${e}.${t}`,ul=(e,t)=>t,dl=(e,t,n)=>{let r=t(cl(e.parentSchema,n,nc(e),`error.${e.keyword}`),void 0,{error:e});if(r!==void 0)return r;let i=t(`error.${e.keyword}`,void 0,{error:e});if(i!==void 0)return i;let a=t(e.message,void 0,{error:e});return a===void 0?e.keyword===`required`&&e.message?.startsWith(`must have required property`)?t(`is a required property`,`is a required property`,{error:e}):e.message:a},fl=(e,t,n,r,i,a)=>{if(e.length>0&&n){let t=n(cl(r,i,a,`error.custom`),void 0,{schema:r,uischema:i,path:a,errors:e});if(t!==void 0)return t}return oc(e.map(e=>t(e,n,i)))},pl=(e,t)=>{if(e.label===!1||(e.label===void 0||e.label===null||e.label===!0)&&!Ts(e))return;let n=typeof e.label==`string`?e.label:JSON.stringify(e.label),r=al(void 0,e);return t(typeof r==`string`?`${r}.label`:n,n,{uischema:e})},ml=(e,t,n,r)=>{let i={};return t.forEach(t=>{let a=ll(n,t.key);i[t.key]=e(a,t.default(r))}),i},hl=e=>e===void 0?ul:e.translate,gl=e=>e===void 0?dl:e.translateError,_l=()=>e=>hl((0,Mo.default)(e,`jsonforms.i18n`)),vl=()=>e=>gl((0,Mo.default)(e,`jsonforms.i18n`)),yl={locale:`en`,translate:ul,translateError:dl},bl=(e=yl,t)=>{switch(t.type){case Pc:{let n=t.locale??yl.locale,r=t.translator??yl.translate,i=t.errorTranslator??yl.translateError;return n!==e.locale||r!==e.translate||i!==e.translateError?{...e,locale:n,translate:r,translateError:i}:e}case Nc:return{...e,translate:t.translator??ul,translateError:t.errorTranslator??dl};case Mc:return{...e,locale:t.locale??navigator.languages[0]};default:return e}},xl=e=>!(0,U.default)(e)&&e.scope!==void 0,Sl=e=>(t,n,r)=>{if((0,U.default)(t)||!xl(t)||(0,U.default)(n))return!1;let i=t.scope;if((0,U.default)(i))return!1;let a=n;return Ys(n,`object`)&&(a=_s(n,i,r?.rootSchema)),a===void 0?!1:e(a,r?.rootSchema)},Cl=(e,t)=>(n,r,i)=>{if((0,U.default)(n)||!xl(n))return!1;let a=n.scope,o=r;return Ys(r,`object`)&&(o=_s(r,a,i?.rootSchema)),o=(0,Mo.default)(o,e),o===void 0?!1:t(o,i?.rootSchema)},wl=e=>Sl(t=>!(0,U.default)(t)&&Ys(t,e)),Tl=e=>Sl(t=>!(0,U.default)(t)&&t.format===e&&Ys(t,`string`)),El=e=>t=>!(0,U.default)(t)&&t.type===e,Dl=(e,t)=>n=>{if((0,U.default)(n))return!1;let r=n.options;return!(0,U.default)(r)&&r[e]===t},Ol=e=>t=>{if((0,U.default)(t))return!1;let n=t.options;return!(0,U.default)(n)&&!(0,Zo.default)(n[e])},kl=e=>t=>(0,U.default)(e)||!xl(t)?!1:(0,qo.default)(t.scope,e),Al=e=>t=>{if((0,U.default)(e)||!xl(t))return!1;let n=t.scope;return!(0,U.default)(n)&&(0,Jo.default)(n.split(`/`))===e},jl=(...e)=>(t,n,r)=>e.reduce((e,i)=>e&&i(t,n,r),!0),Ml=(...e)=>(t,n,r)=>e.reduce((e,i)=>e||i(t,n,r),!1),Nl=(e,t)=>(n,r,i)=>t(n,r,i)?e:-1,Pl=(e,t)=>(n,r,i)=>{let a=t(n,r,i);return a===-1?-1:a+e},Fl=jl(El(`Control`),wl(`boolean`)),Il=jl(El(`Control`),wl(`object`)),Ll=jl(El(`Control`),Sl(e=>Object.prototype.hasOwnProperty.call(e,`allOf`))),Rl=jl(El(`Control`),Sl(e=>Object.prototype.hasOwnProperty.call(e,`anyOf`))),zl=jl(El(`Control`),Sl(e=>Object.prototype.hasOwnProperty.call(e,`oneOf`))),Bl=jl(El(`Control`),Sl(e=>Ks(e))),Vl=jl(El(`Control`),Sl(e=>Gs(e))),Hl=jl(El(`Control`),wl(`integer`)),W=jl(El(`Control`),wl(`number`)),Ul=jl(El(`Control`),wl(`string`)),Wl=jl(El(`Control`),Dl(`multi`,!0)),Gl=jl(El(`Control`),Ml(Tl(`date`),Dl(`format`,`date`))),Kl=jl(El(`Control`),Ml(Tl(`time`),Dl(`format`,`time`))),ql=jl(El(`Control`),Ml(Tl(`date-time`),Dl(`format`,`date-time`))),Jl=jl(Sl((e,t)=>Ys(e,`array`)&&!Array.isArray(_s(e,`items`,t))),Cl(`items`,(e,t)=>Ys(e.$ref?_s(t,e.$ref,t):e,`object`))),Yl=jl(El(`Control`),Jl),Xl=(e,t,n)=>{if((0,Fo.default)(e))return(0,Yo.default)(e,(e,r)=>e||Xl(r,t,n),!1);if(t(e))return!0;if(e.$ref){let r=_s(n,e.$ref,n);if(r&&!r.$ref)return Xl(r,t,n)}return e.items?Xl(e.items,t,n):e.properties?(0,Yo.default)((0,Xo.default)(e.properties),(e,[r,i])=>e||Xl(i,t,n),!1):!1},Zl=(e,t,n)=>{if(!El(`Control`)(e,t,n))return!1;let r=e.scope,i=_s(t,r,n?.rootSchema??t),a=0;if(i!==void 0&&i.items!==void 0){if(Xl(i.items,e=>e===t||e.$ref!==void 0?!1:!!(e.anyOf||e.allOf||e.oneOf&&!Gs(e)||Ys(e,`object`)&&(a++,a===2)||Ys(e,`array`)),n?.rootSchema))return!0;if(e.options&&e.options.detail){if(typeof e.options.detail==`string`)return e.options.detail.toUpperCase()!==`DEFAULT`;if(typeof e.options.detail==`object`&&e.options.detail.type)return!0}}return!1},Ql=Yl,$l=jl(El(`Control`),Sl((e,t)=>Xs(e).length!==0&&!Array.isArray(_s(e,`items`,t))),Cl(`items`,(e,t)=>{let n=Xs(e.$ref?_s(t,e.$ref,t):e);return n.length===1&&(0,Io.default)([`integer`,`number`,`boolean`,`string`],n[0])})),eu=jl(El(`Control`),Ml(wl(`number`),wl(`integer`)),Sl(e=>Object.prototype.hasOwnProperty.call(e,`maximum`)&&Object.prototype.hasOwnProperty.call(e,`minimum`)&&Object.prototype.hasOwnProperty.call(e,`default`)),Dl(`slider`,!0)),tu=jl(El(`Control`),wl(`integer`),Dl(`format`,!0)),G=e=>e.type===`Categorization`,nu=e=>e.type===`Category`,ru=e=>(0,U.default)(e.elements)?!1:e.elements.map(e=>G(e)?ru(e):nu(e)).reduce((e,t)=>e&&t,!0),iu=Object.freeze({__proto__:null,NOT_APPLICABLE:-1,isControl:xl,schemaMatches:Sl,schemaSubPathMatches:Cl,schemaTypeIs:wl,formatIs:Tl,uiTypeIs:El,optionIs:Dl,hasOption:Ol,scopeEndsWith:kl,scopeEndIs:Al,and:jl,or:Ml,rankWith:Nl,withIncreasedRank:Pl,isBooleanControl:Fl,isObjectControl:Il,isAllOfControl:Ll,isAnyOfControl:Rl,isOneOfControl:zl,isEnumControl:Bl,isOneOfEnumControl:Vl,isIntegerControl:Hl,isNumberControl:W,isStringControl:Ul,isMultiLineControl:Wl,isDateControl:Gl,isTimeControl:Kl,isDateTimeControl:ql,isObjectArray:Jl,isObjectArrayControl:Yl,isObjectArrayWithNesting:Zl,isArrayObjectControl:Ql,isPrimitiveArrayControl:$l,isRangeControl:eu,isNumberFormatControl:tu,isCategorization:G,isCategory:nu,hasCategory:ru,categorizationHasCategory:e=>ru(e),not:e=>(t,n,r)=>!e(t,n,r)}),au=e=>(t,n,r)=>{let i=(0,Ko.default)(e,e=>e.tester(t,n,r));if(i!==void 0&&i.tester(t,n,r)!==-1)return i.uischema},ou=(e,t,n,r,i=`VerticalLayout`,a,o)=>{if(a&&a.options&&a.options.detail){if(typeof a.options.detail==`string`){if(a.options.detail.toUpperCase()===`GENERATE`)return typeof i==`function`?i():hc.uiSchema(t,i,void 0,o)}else if(typeof a.options.detail==`object`&&a.options.detail.type&&typeof a.options.detail.type==`string`)return a.options.detail}let s=au(e)(t,n,r);return s===void 0?typeof i==`function`?i():hc.uiSchema(t,i,`#`,o):s},su=(e,t,n)=>n(e,t),cu=(e,t,n)=>r=>{let i=r.errors??[],a=r.additionalErrors??[];return rc(e,t,n)(r.validationMode===`ValidateAndHide`?a:[...i,...a])},lu=(e,t)=>cu(e,t,t=>t===e),uu=(e,t)=>cu(e,t,t=>t.startsWith(e+`.`)),du=(e,t)=>n=>lu(e,t)(n.jsonforms.core),fu=(e,t)=>n=>uu(e,t)(n.jsonforms.core),pu=e=>yu((0,Mo.default)(e,`jsonforms.core`)),mu=e=>bu((0,Mo.default)(e,`jsonforms.core`)),hu=e=>xu((0,Mo.default)(e,`jsonforms.core`)),gu=e=>Su((0,Mo.default)(e,`jsonforms.core`)),_u=e=>(0,Mo.default)(e,`jsonforms.renderers`),vu=e=>(0,Mo.default)(e,`jsonforms.cells`),yu=e=>(0,Mo.default)(e,`data`),bu=e=>(0,Mo.default)(e,`schema`),xu=e=>(0,Mo.default)(e,`uischema`),Su=e=>(0,Mo.default)(e,`ajv`),Cu=e=>e.jsonforms.config,wu=(e,t,n,r,i,a)=>e?.jsonforms?.readonly?!1:n&&Hs(n)?Ws(n,i,t?.path,gu(e),a):typeof n?.options?.readonly==`boolean`?!n.options.readonly:typeof n?.options?.readOnly==`boolean`?!n.options.readOnly:typeof a?.readonly==`boolean`?!a.readonly:typeof a?.readOnly==`boolean`?!a.readOnly:r?.readOnly===!0?!1:typeof t?.enabled==`boolean`?t.enabled:!0,Tu=(e,t,n)=>{let r=t+n;if(r<0||r>=e.length)return;let i=[t,r].sort((e,t)=>e-t);e.splice(i[0],2,e[i[1]],e[i[0]])},Eu=(e,t)=>{Tu(e,t,-1)},Du=(e,t)=>{Tu(e,t,1)},Ou=(e,t,n)=>{let r=t.split(`/`),i=ds(r[r.length-1]),a=r.slice(0,r.length-2).join(`/`),o=Zs.schema(e,a,n);return o!==void 0&&o.required!==void 0&&o.required.indexOf(i)!==-1},ku=(e,t,n)=>`${e??``}${t&&!n?`*`:``}`,Au=(e,t)=>{let n=ju(e,t);return n===void 0?{}:n},ju=(e,t)=>{let n=typeof e.$ref==`string`?Zs.schema(t,e.$ref,t):e;if(n.default!==void 0)return Nu(n,t);if(Ys(n,`string`))return n.format===`date-time`||n.format===`date`||n.format===`time`?qs(new Date,n.format):``;if(Ys(n,`integer`)||Ys(n,`number`))return 0;if(Ys(n,`boolean`))return!1;if(Ys(n,`array`))return[];if(Ys(n,`object`))return Nu(n,t);if(Ys(n,`null`))return null;for(let n of[`oneOf`,`anyOf`,`allOf`])if(e[n]&&Array.isArray(e[n])){let r=Mu(e[n],t);if(r!==void 0)return r}},Mu=(e,t)=>{if(e.length>0)for(let n of e){let e=ju(n,t);if(e!==void 0)return e}},Nu=(e,t)=>{if(Ys(e,`object`)&&e.default===void 0){let n={};for(let r in e.properties){let i=e.properties[r],a=i.$ref?Zs.schema(t,i.$ref,t):i;a&&a.default!==void 0&&(n[r]=(0,Ho.default)(a.default))}return e.allOf&&Array.isArray(e.allOf)&&e.allOf.forEach(e=>{if(e&&e.properties)for(let r in e.properties){let i=e.properties[r],a=i.$ref?Zs.schema(t,i.$ref,t):i;a&&a.default!==void 0&&(n[r]=(0,Ho.default)(a.default))}}),n}return(0,Ho.default)(e.default)},Pu=(e,t,n,r)=>t===void 0||t!==void 0&&!e||!r&&!n,Fu=(e,t,n)=>{let r=typeof e==`string`?e:JSON.stringify(e);return t&&(r=t(n?`${n}.${r}`:r,r)),{label:r,value:e}},Iu=(e,t,n)=>{let r=e.title??(typeof e.const==`string`?e.const:JSON.stringify(e.const));return t&&(r=e.i18n?t(e.i18n,r):t(n?`${n}.${r}`:r,r)),{label:r,value:e.const}},Lu=(e,t)=>{let{uischema:n}=t,r=pu(e),i=ws(n,t.path),a=Cu(e),o=t.visible===void 0||Vs(n)?Us(n,r,t.path,gu(e),a):t.visible,s=n,c=t.id,l=mu(e),u=s.scope!==void 0&&Ou(t.schema,s.scope,l),d=Zs.schema(t.schema||l,s.scope,l),f=du(i,d)(e),p=d===void 0?``:d.description,m=Zs.data(r,i),h=ps(n,d),g=h.show?h.text:``,_=wu(e,t,n,d||l,r,a),v=d??l,y=_l()(e),b=vl()(e),x=sl(v,n,i),S=y(cl(v,n,i,`label`),g,{schema:v,uischema:n,path:i,errors:f});return{data:m,description:y(cl(v,n,i,`description`),p,{schema:v,uischema:n,path:i,errors:f}),errors:fl(f,b,y,v,n,i),label:S,visible:o,enabled:_,id:c,path:i,required:u,uischema:n,schema:v,config:Cu(e),cells:t.cells||e.jsonforms.cells,rootSchema:l,i18nKeyPrefix:x}},Ru=e=>({handleChange(t,n){e(Uc(t,()=>n))}}),zu=(e,t)=>{let n=Lu(e,t),r=t.options||n.schema.enum?.map(t=>Fu(t,_l()(e),sl(n.schema,n.uischema,n.path)))||n.schema.const&&[Fu(n.schema.const,_l()(e),sl(n.schema,n.uischema,n.path))];return{...n,options:r}},Bu=(e,t)=>{let n=Lu(e,t),r=t.options||n.schema.oneOf?.map(t=>Iu(t,_l()(e),sl(n.schema,n.uischema,n.path)));return{...n,options:r}},Vu=(e,t)=>{let{...n}=Lu(e,t);return{...n,uischemas:e.jsonforms.uischemas}},Hu=(e,t)=>{let{path:n,schema:r,uischema:i,label:a,...o}=Vu(e,t),s=Zs.schema(r,`items`,o.rootSchema),c=fu(n,s)(e);return{...o,label:a,path:n,uischema:i,schema:s,arraySchema:r,childErrors:c,renderers:t.renderers||_u(e),cells:t.cells||vu(e)}},Uu=e=>({addItem:(t,n)=>()=>{e(Uc(t,e=>e==null?[n]:(e.push(n),e),{type:`ADD`,values:[n]}))},removeItems:(t,n)=>()=>{e(Uc(t,e=>(n.sort((e,t)=>e-t).reverse().forEach(t=>e.splice(t,1)),e),{type:`REMOVE`,indices:n}))},moveUp:(t,n)=>()=>{e(Uc(t,e=>(Eu(e,n),e),{type:`MOVE`,moves:[{from:n,to:n-1}]}))},moveDown:(t,n)=>()=>{e(Uc(t,e=>(Du(e,n),e),{type:`MOVE`,moves:[{from:n,to:n+1}]}))}}),Wu={visible:!0,enabled:!0,path:``,direction:`column`},Gu=e=>e.type===`HorizontalLayout`?`row`:e.type===`VerticalLayout`?`column`:Wu.direction,Ku=(e,t)=>{let n=pu(e),{uischema:r}=t,i=t.visible===void 0||Vs(r)?Us(t.uischema,n,t.path,gu(e),Cu(e)):t.visible,a=Zs.data(n,t.path),o=Cu(e),s=wu(e,t,r,void 0,n,o),c=_l()(e),l=As(r)?pl(r,c):void 0;return{...Wu,renderers:t.renderers||_u(e),cells:t.cells||vu(e),visible:i,enabled:s,path:t.path,data:a,uischema:t.uischema,schema:t.schema,direction:t.direction??Gu(r),config:o,label:l}},qu=(e,t)=>({renderers:t.renderers||(0,Mo.default)(e.jsonforms,`renderers`),cells:t.cells||(0,Mo.default)(e.jsonforms,`cells`),schema:t.schema||mu(e),rootSchema:mu(e),uischema:t.uischema||hu(e),path:t.path,enabled:t.enabled,config:Cu(e)});({...Wu});var Ju=(e,t)=>{let{uischema:n}=t,r=t.visible===void 0||Vs(n)?Us(t.uischema,pu(e),t.path,gu(e),Cu(e)):t.visible,i=n.text,a=_l()(e),o=al(void 0,n);return{text:a(o?`${o}.text`:i??``,i,{uischema:n}),visible:r,config:Cu(e),renderers:t.renderers||_u(e),cells:t.cells||vu(e),uischema:n}},Yu=(e,t)=>{let{id:n,schema:r,path:i,uischema:a,renderers:o,cells:s}=t,c=pu(e),l=Cu(e),u=t.visible===void 0?Us(a,c,void 0,gu(e),l):t.visible,d=mu(e),f;f=e.jsonforms.readonly===!0?!1:typeof t.enabled==`boolean`?t.enabled:wu(e,t,a,r||d,c,l);let p=_l()(e),m=vl()(e),h=fl(du(i,r)(e),m,p,r,a,i),g=(0,U.default)(h);return{data:Zs.data(c,i),visible:u,enabled:f,id:n,path:i,errors:h,isValid:g,schema:r,uischema:a,config:Cu(e),rootSchema:d,renderers:o,cells:s}},Xu=(e,t)=>{let n=Yu(e,t),{renderers:r,cells:i,...a}=t;return{...n,...a,cells:i||e.jsonforms.cells||[]}},Zu=(e,t)=>{let n=Yu(e,t),r=t.options||n.schema.enum?.map(t=>Fu(t,_l()(e),sl(n.schema,n.uischema,n.path)))||n.schema.const&&[Fu(n.schema.const,_l()(e),sl(n.schema,n.uischema,n.path))];return{...n,options:r}},Qu=(e,t)=>{let n=Yu(e,t),r=t.options||n.schema.oneOf?.map(t=>Iu(t,_l()(e),sl(n.schema,n.uischema,n.path)));return{...n,options:r}},$u=s(((e,t)=>{var n=T();t.exports=function(){return n.Date.now()}})),ed=u(s(((e,t)=>{var n=le(),r=$u(),i=vn(),a=`Expected a function`,o=Math.max,s=Math.min;function c(e,t,c){var l,u,d,f,p,m,h=0,g=!1,_=!1,v=!0;if(typeof e!=`function`)throw TypeError(a);t=i(t)||0,n(c)&&(g=!!c.leading,_=`maxWait`in c,d=_?o(i(c.maxWait)||0,t):d,v=`trailing`in c?!!c.trailing:v);function y(t){var n=l,r=u;return l=u=void 0,h=t,f=e.apply(r,n),f}function b(e){return h=e,p=setTimeout(C,t),g?y(e):f}function x(e){var n=e-m,r=e-h,i=t-n;return _?s(i,d-r):i}function S(e){var n=e-m,r=e-h;return m===void 0||n>=t||n<0||_&&r>=d}function C(){var e=r();if(S(e))return w(e);p=setTimeout(C,x(e))}function w(e){return p=void 0,v&&l?y(e):(l=u=void 0,f)}function T(){p!==void 0&&clearTimeout(p),h=0,l=m=u=p=void 0}function E(){return p===void 0?f:w(r())}function D(){var e=r(),n=S(e);if(l=arguments,u=this,m=e,n){if(p===void 0)return b(m);if(_)return clearTimeout(p),p=setTimeout(C,t),y(m)}return p===void 0&&(p=setTimeout(C,t)),f}return D.cancel=T,D.flush=E,D}t.exports=c}))()),td=class extends H.Component{constructor(e){super(e)}},nd=class extends td{constructor(e){super(e),this.handleChange=e=>{this.setState({value:e}),this.updateData(e)},this.onFocus=()=>{this.setState({isFocused:!0})},this.onBlur=()=>{this.setState({isFocused:!1})},this.updateData=e=>{this.props.handleChange(this.props.path,e)},this.state={value:e.data?e.data:``,isFocused:!1}}},rd=class extends H.Component{render(){return H.createElement(`div`,{style:{color:`red`}},`No applicable `,this.props.type,` found.`)}},id=H.createContext({core:{data:{},schema:{},uischema:void 0,errors:[],additionalErrors:[],validator:void 0,ajv:void 0},renderers:[]}),ad=(e,t)=>{let n=(0,H.useRef)(!0);(0,H.useEffect)(()=>{if(n.current){n.current=!1;return}e()},t)},od=({children:e,initState:t,onChange:n,middleware:r})=>{let{data:i,schema:a,uischema:o,ajv:s,validationMode:c,additionalErrors:l}=t.core,u=(0,H.useRef)(r??su);u.current=r??su;let[d,f]=(0,H.useState)(()=>u.current(t.core,Wc.init(i,a,o,{ajv:s,validationMode:c,additionalErrors:l}),tl));(0,H.useEffect)(()=>f(e=>u.current(e,Wc.updateCore(i,a,o,{ajv:s,validationMode:c,additionalErrors:l}),tl)),[i,a,o,s,c,l]);let[p,m]=(0,H.useReducer)(qc,void 0,()=>qc(void 0,Wc.setConfig(t.config)));ad(()=>{m(Wc.setConfig(t.config))},[t.config]);let[h,g]=(0,H.useReducer)(bl,void 0,()=>bl(t.i18n,Wc.updateI18n(t.i18n?.locale,t.i18n?.translate,t.i18n?.translateError)));(0,H.useEffect)(()=>{g(Wc.updateI18n(t.i18n?.locale,t.i18n?.translate,t.i18n?.translateError))},[t.i18n?.locale,t.i18n?.translate,t.i18n?.translateError]);let _=(0,H.useCallback)(e=>{f(t=>u.current(t,e,tl))},[]),v=(0,H.useMemo)(()=>({core:d,renderers:t.renderers,cells:t.cells,config:p,uischemas:t.uischemas,readonly:t.readonly,i18n:h,dispatch:_}),[d,t.renderers,t.cells,p,t.uischemas,t.readonly,h]),y=(0,H.useRef)(n);(0,H.useEffect)(()=>{y.current=n},[n]);let b=(0,H.useCallback)((0,ed.default)((...e)=>y.current?.(...e),10),[]);return(0,H.useEffect)(()=>{b({data:d.data,errors:d.errors})},[d.data,d.errors]),H.createElement(id.Provider,{value:v},e)},sd=()=>(0,H.useContext)(id),cd=(e,t)=>Hu({jsonforms:{...e}},t),ld=(e,t)=>Ku({jsonforms:{...e}},t),ud=(e,t)=>Lu({jsonforms:{...e}},t),dd=(e,t)=>{let n=zu({jsonforms:{...e}},t),r=(0,H.useMemo)(()=>n.options,[t.options,n.schema,e.i18n?.translate]);return{...n,options:r}},fd=(e,t)=>{let n=Bu({jsonforms:{...e}},t),r=(0,H.useMemo)(()=>n.options,[t.options,n.schema,e.i18n?.translate]);return{...n,options:r}},pd=e=>(0,H.useMemo)(()=>Ru(e),[e]),md=(e,t)=>qu({jsonforms:{...e}},t),hd=e=>({...pd(e),...(0,H.useMemo)(()=>Uu(e),[e])}),gd=(e,t)=>Yu({jsonforms:{...e}},t),_d=(e,t)=>{let n=Zu({jsonforms:{...e}},t),r=(0,H.useMemo)(()=>n.options,[t.options,n.schema,e.i18n?.translate]);return{...n,options:r}},vd=(e,t)=>{let n=Qu({jsonforms:{...e}},t),r=(0,H.useMemo)(()=>n.options,[t.options,n.schema,e.i18n?.translate]);return{...n,options:r}},yd=(e,t)=>Xu({jsonforms:{...e}},t),bd=(e,t)=>Ju({jsonforms:{...e}},t),xd=e=>function(t){let n=sd();return H.createElement(e,{ctx:n,props:t})},Sd=e=>function({ctx:t,props:n}){let r=md(t,n);return H.createElement(e,{...n,...r})},Cd=e=>function({ctx:t,props:n}){let r=ud(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...r,...i})},wd=e=>function({ctx:t,props:n}){let r=ld(t,n);return H.createElement(e,{...n,...r})},Td=e=>function({ctx:t,props:n}){let r=cd(t,n),i=hd(t.dispatch);return H.createElement(e,{...n,...r,...i})},K=e=>function({ctx:t,props:n}){let r=gd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},Ed=e=>function({ctx:t,props:n}){let r=yd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},Dd=e=>function({ctx:t,props:n}){let r=_d(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},Od=e=>function({ctx:t,props:n}){let r=dd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},kd=e=>function({ctx:t,props:n}){let r=vd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},Ad=e=>function({ctx:t,props:n}){let r=fd(t,n),i=pd(t.dispatch);return H.createElement(e,{...n,...i,...r})},jd=e=>function({ctx:t,props:n}){let r=bd(t,n);return H.createElement(e,{...n,...r})},Md=(e,t=!0)=>xd(Sd(t?H.memo(e):e)),Nd=(e,t=!0)=>xd(Cd(t?H.memo(e):e)),Pd=(e,t=!0)=>xd(wd(t?H.memo(e):e)),Fd=(e,t=!0)=>xd(Td(t?H.memo(e):e)),Id=(e,t=!0)=>xd(K(t?H.memo(e):e)),Ld=(e,t=!0)=>xd(Ed(t?H.memo(e):e)),Rd=(e,t=!0)=>xd(Dd(t?H.memo(e):e)),zd=(e,t=!0)=>xd(Od(t?H.memo(e):e)),Bd=(e,t=!0)=>xd(kd(t?H.memo(e):e)),Vd=(e,t=!0)=>xd(Ad(t?H.memo(e):e)),Hd=(e,t=!0)=>xd(jd(t?H.memo(e):e)),Ud=e=>function(t){let n=sd(),r=n.i18n?.locale??yl.locale,i=n.i18n?.translate??yl.translate;return H.createElement(e,{...t,locale:r,t:i})},Wd=e=>function(t){let n=(0,H.useMemo)(()=>ml(t.t,rl,t.i18nKeyPrefix,t.label),[t.t,t.i18nKeyPrefix,t.label]);return H.createElement(e,{...t,translations:n})},Gd=class extends H.Component{constructor(e){super(e),this.state={id:xl(e.uischema)?os(e.uischema.scope):void 0}}componentWillUnmount(){xl(this.props.uischema)&&ss(this.state.id)}componentDidUpdate(e){e.schema!==this.props.schema&&(ss(this.state.id),this.setState({id:xl(this.props.uischema)?os(this.props.uischema.scope):void 0}))}render(){let{schema:e,rootSchema:t,uischema:n,path:r,enabled:i,renderers:a,cells:o,config:s}=this.props;return H.createElement(Kd,{uischema:n,schema:e,rootSchema:t,path:r,enabled:i,renderers:a,cells:o,id:this.state.id,config:s})}},Kd=H.memo(function(e){let t=(0,H.useMemo)(()=>({rootSchema:e.rootSchema,config:e.config}),[e.rootSchema,e.config]),n=(0,H.useMemo)(()=>(0,Ko.default)(e.renderers,n=>n.tester(e.uischema,e.schema,t)),[e.renderers,e.uischema,e.schema,t]);if(n===void 0||n.tester(e.uischema,e.schema,t)===-1)return H.createElement(rd,{type:`renderer`});{let t=n.renderer;return H.createElement(t,{uischema:e.uischema,schema:e.schema,path:e.path,enabled:e.enabled,renderers:e.renderers,cells:e.cells,id:e.id})}}),qd=class extends Gd{constructor(e){super(e)}},Jd=Md(Gd);Md(qd);var Yd=e=>{let{ajv:t,data:n,schema:r,uischema:i,renderers:a,cells:o,onChange:s,config:c,uischemas:l,readonly:u,validationMode:d,i18n:f,additionalErrors:p,middleware:m}=e,h=(0,H.useMemo)(()=>r===void 0?hc.jsonSchema(n):r,[r,n]),g=(0,H.useMemo)(()=>typeof i==`object`?i:hc.uiSchema(h,void 0,void 0,h),[i,h]);return H.createElement(od,{initState:{core:{ajv:t,data:n,schema:h,uischema:g,validationMode:d,additionalErrors:p},config:c,uischemas:l,renderers:a,cells:o,readonly:u,i18n:f},onChange:s,middleware:m},H.createElement(Jd,null))},Xd=Ld(({uischema:e,schema:t,rootSchema:n,path:r,cells:i,id:a,enabled:o,renderers:s,config:c})=>{let l=(0,H.useMemo)(()=>({rootSchema:n,config:c}),[n,c]),u=(0,H.useMemo)(()=>(0,Ko.default)(i,n=>n.tester(e,t,l)),[i,e,t,l]);if(u===void 0||u.tester(e,t,l)===-1)return H.createElement(rd,{type:`cell`});{let n=u.cell;return H.createElement(n,{uischema:e,schema:t,enabled:o,path:r,id:a,renderers:s,cells:i})}}),Zd=s(((e,t)=>{var n=Array.prototype.join;function r(e,t){return e==null?``:n.call(e,t)}t.exports=r})),Qd=s(((e,t)=>{var n=co()(`filter`,bi());n.placeholder=ha(),t.exports=n})),$d=s(((e,t)=>{var n=vi(),r=dt();function i(e,t){var i=-1,a=r(e)?Array(e.length):[];return n(e,function(e,n,r){a[++i]=t(e,n,r)}),a}t.exports=i})),ef=s(((e,t)=>{var n=jt(),r=Kt(),i=$d(),a=We();function o(e,t){return(a(e)?n:i)(e,r(t,3))}t.exports=o})),tf=s(((e,t)=>{var n=co()(`map`,ef());n.placeholder=ha(),t.exports=n})),nf=s(((e,t)=>{var n=Aa(),r=io(),i=Da(),a=ka(),o=We(),s=Na(),c=`Expected a function`,l=8,u=32,d=128,f=256;function p(e){return r(function(t){var r=t.length,p=r,m=n.prototype.thru;for(e&&t.reverse();p--;){var h=t[p];if(typeof h!=`function`)throw TypeError(c);if(m&&!g&&a(h)==`wrapper`)var g=new n([],!0)}for(p=g?p:r;++p{t.exports=nf()()})),af=s(((e,t)=>{var n=co()(`flow`,rf());n.placeholder=ha(),t.exports=n})),of=s(((e,t)=>{t.exports={cap:!1,curry:!1,fixed:!1,immutable:!1,rearg:!1}})),sf=s(((e,t)=>{var n=co()(`keys`,ft(),of());n.placeholder=ha(),t.exports=n})),cf=s(((e,t)=>{var n=co()(`startCase`,pn(),of());n.placeholder=ha(),t.exports=n})),lf=u(Zd()),uf=u(Qd()),df=u(tf()),ff=u(af()),pf=u(sf()),mf=u(cf()),hf={"enum.none":`None`},gf=e=>(t,...n)=>(0,Yo.default)((0,zo.default)(e,e=>e.name===t),(e,t)=>typeof t.classNames==`function`?e.concat(t.classNames(n)):e.concat(t.classNames),[]),_f=e=>(t,...n)=>(0,lf.default)(gf(e)(t,n),` `),vf=H.createContext({styles:[{name:`control`,classNames:[`control`]},{name:`control.trim`,classNames:[`trim`]},{name:`control.input`,classNames:[`input`]},{name:`control.select`,classNames:[`select`]},{name:`control.checkbox`,classNames:[`checkbox`]},{name:`control.radio`,classNames:[`radio`]},{name:`control.radio.option`,classNames:[`radio-option`]},{name:`control.radio.input`,classNames:[`radio-input`]},{name:`control.radio.label`,classNames:[`radio-label`]},{name:`control.validation.error`,classNames:[`validation_error`]},{name:`control.validation`,classNames:[`validation`]},{name:`categorization`,classNames:[`categorization`]},{name:`categorization.master`,classNames:[`categorization-master`]},{name:`categorization.detail`,classNames:[`categorization-detail`]},{name:`category.group`,classNames:[`category-group`]},{name:`category.subcategories`,classNames:[`category-subcategories`]},{name:`array.layout`,classNames:[`array-layout`]},{name:`array.children`,classNames:[`children`]},{name:`group.layout`,classNames:[`group-layout`]},{name:`horizontal.layout`,classNames:[`horizontal-layout`]},{name:`horizontal.layout.item`,classNames:([e])=>[`horizontal-layout-${e}`]},{name:`vertical.layout`,classNames:[`vertical-layout`]},{name:`array.table.validation.error`,classNames:[`validation_error`]},{name:`array.table.validation`,classNames:[`validation`]},{name:`array.table`,classNames:[`array-table-layout`,`control`]},{name:`array.control.validation.error`,classNames:[`validation_error`]},{name:`array.control.validation`,classNames:[`validation`]},{name:`array.control.add`,classNames:[`button-add`]},{name:`array.child.controls`,classNames:[`child-controls`]},{name:`array.child.controls.up`,classNames:[`button-up`]},{name:`array.child.controls.down`,classNames:[`button-down`]},{name:`array.child.controls.delete`,classNames:[`button-delete`]},{name:`array.control`,classNames:[`array-control-layout`,`control`]},{name:`input.description`,classNames:[`input-description`]}]}),yf=()=>(0,H.useContext)(vf),bf=()=>{let{styles:e}=yf();return e},xf=e=>function(t){let n=sd(),r=bf(),i=t.uischema,a=n.config,o=a&&a.trim,s=(0,H.useMemo)(()=>gf(r)(`control`),[r]),c=(0,U.default)(i.scope)?[``]:s.concat([`${Js(i.scope)}`]);o&&(c=c.concat(gf(r)(`control.trim`)));let l=(0,U.default)(t.errors),u=(0,H.useMemo)(()=>_f(r)(`control.label`),[r]),d=(0,H.useMemo)(()=>_f(r)(`input.description`),[r]),f=(0,H.useMemo)(()=>_f(r)(`control.validation`),[r]),p=(0,H.useMemo)(()=>_f(r)(`control.validation.error`),[r]),m=[`validate`].concat(l?`valid`:`invalid`),h=(0,H.useMemo)(()=>_f(r),[r]),g=(0,H.useMemo)(()=>gf(r),[r]),_=c.join(` `),v=m.join(` `),y=(0,H.useMemo)(()=>({wrapper:_,input:v,label:u,description:d,validation:f,validationError:p}),[_,v,u,d,f,p]);return H.createElement(e,{...t,getStyleAsClassName:h,getStyle:g,classNames:y})},Sf=e=>t=>function(n){let r=[`validate`].concat(n.isValid?`valid`:`invalid`),i=bf(),a=_f(i)(e);return a&&r.push(a),H.createElement(t,{...n,getStyleAsClassName:_f(i),getStyle:gf(i),className:r.join(` `)})},q=e=>function(t){let n=gu({jsonforms:{...sd()}});return H.createElement(e,{...t,ajv:n})},Cf=Sf(`control.input`),wf=Sf(`control.select`),Tf=Sf(`control.checkbox`),Ef=class extends nd{render(){let{classNames:e,description:t,id:n,errors:r,label:i,uischema:a,schema:o,rootSchema:s,visible:c,enabled:l,required:u,path:d,cells:f,config:p}=this.props,m=r.length===0,h=[e.validation].concat(m?e.description:e.validationError).join(` `),g=(0,Vo.default)({},p,a.options),_=!Pu(c,t,this.state.isFocused,g.showUnfocusedDescription),v={rootSchema:s,config:p},y=(0,Ko.default)(f,e=>e.tester(a,o,v));return y===void 0||y.tester(a,o,v)===-1?(console.warn(`No applicable cell found.`,a,o),null):H.createElement(`div`,{className:e.wrapper,hidden:!c,onFocus:this.onFocus,onBlur:this.onBlur,id:n},H.createElement(`label`,{htmlFor:n+`-input`,className:e.label},ku(i,u,g.hideRequiredAsterisk)),H.createElement(Xd,{uischema:a,schema:o,path:d,id:n+`-input`,enabled:l}),H.createElement(`div`,{className:h},m?_?t:null:r))}},Df=Nl(1,xl),Of=xf(Nd(Ef)),kf=({classNames:e,id:t,label:n,options:r,required:i,description:a,errors:o,data:s,uischema:c,visible:l,config:u,enabled:d,path:f,handleChange:p})=>{let m=bf(),[h,g]=(0,H.useState)(!1),_=(0,H.useMemo)(()=>_f(m)(`control.radio`),[m]),v=(0,H.useMemo)(()=>_f(m)(`control.radio.option`),[m]),y=(0,H.useMemo)(()=>_f(m)(`control.radio.input`),[m]),b=(0,H.useMemo)(()=>_f(m)(`control.radio.label`),[m]),x=o.length===0,S=[e.validation].concat(x?e.description:e.validationError).join(` `),C=(0,Vo.default)({},u,c.options),w=!Pu(l,a,h,C.showUnfocusedDescription),T=!_||_===`radio`,E={};return T&&(E={display:`flex`,flexDirection:C.orientation===`vertical`?`column`:`row`}),H.createElement(`div`,{className:e.wrapper,hidden:!l,onFocus:()=>g(!0),onBlur:()=>g(!1)},H.createElement(`label`,{htmlFor:t,className:e.label},ku(n,i,C.hideRequiredAsterisk)),H.createElement(`div`,{className:_,style:E},r.map(e=>H.createElement(`div`,{key:e.label,className:v},H.createElement(`input`,{type:`radio`,value:e.value,id:e.value,name:t,checked:s===e.value,onChange:t=>p(f,e.value),disabled:!d,className:y}),H.createElement(`label`,{htmlFor:e.value,className:b},e.label)))),H.createElement(`div`,{className:S},x?w?a:null:o))},Af=e=>H.createElement(kf,{...e}),jf=Nl(3,jl(Bl,Dl(`format`,`radio`))),Mf=xf(zd(Af)),Nf=e=>H.createElement(kf,{...e}),Pf=Nl(3,jl(Vl,Dl(`format`,`radio`))),Ff=xf(Vd(Nf)),{convertToValidClassName:If}=sc,Lf=({classNames:e,data:t,label:n,path:r,schema:i,errors:a,addItem:o,removeItems:s,moveUp:c,moveDown:l,uischema:u,uischemas:d,getStyleAsClassName:f,renderers:p,rootSchema:m,translations:h,enabled:g})=>{let _=u,v=(0,H.useMemo)(()=>ou(d,i,u.scope,r,void 0,u,m),[d,i,u.scope,r,u,m]),y=a.length===0,b=[f(`array.control.validation`)].concat(y?``:f(`array.control.validation.error`)).join(` `),x=f(`array.control.add`),S=f(`array.control.label`),C=f(`array.child.controls`),w=f(`array.child.controls.up`),T=f(`array.child.controls.down`),E=f(`array.child.controls.delete`),D=[f(`array.control`),If(_.scope)].join(` `);return H.createElement(`div`,{className:D},H.createElement(`header`,null,H.createElement(`label`,{className:S},n),H.createElement(`button`,{type:`button`,className:x,disabled:!g,onClick:o(r,Au(i,m))},`Add to `,n)),H.createElement(`div`,{className:b},a),H.createElement(`div`,{className:e.children},t?(0,jo.default)(0,t.length).map(e=>{let t=cs(r,`${e}`);return H.createElement(`div`,{key:e},H.createElement(Jd,{schema:i,uischema:v||u,path:t,key:t,renderers:p}),H.createElement(`div`,{className:C},H.createElement(`button`,{type:`button`,className:w,disabled:!g,"aria-label":h.upAriaLabel,onClick:()=>{c(r,e)()}},h.up),H.createElement(`button`,{type:`button`,className:T,disabled:!g,"aria-label":h.downAriaLabel,onClick:()=>{l(r,e)()}},h.down),H.createElement(`button`,{type:`button`,className:E,disabled:!g,"aria-label":h.removeAriaLabel,onClick:()=>{window.confirm(`Are you sure you wish to delete this item?`)&&s(r,[e])()}},h.removeTooltip)))}):H.createElement(`p`,null,h.noDataMessage)))},Rf=xf(Fd(Ud(Wd(({schema:e,uischema:t,data:n,path:r,rootSchema:i,uischemas:a,addItem:o,getStyle:s,getStyleAsClassName:c,removeItems:l,moveUp:u,moveDown:d,id:f,visible:p,enabled:m,errors:h,translations:g,arraySchema:_})=>{let v=t,y=sc.createLabelDescriptionFrom(v,e),b=y.show?y.text:``,x={wrapper:`control ${sc.convertToValidClassName(v.scope)}`,fieldSet:c(`array.layout`),button:c(`array.button`),children:c(`array.children`)};return H.createElement(Lf,{classNames:x,data:n,label:b,path:r,schema:e,arraySchema:_,errors:h,addItem:o,removeItems:l,moveUp:u,moveDown:d,uischema:t,uischemas:a,getStyleAsClassName:c,rootSchema:i,id:f,visible:p,enabled:m,getStyle:s,translations:g})})))),zf=Nl(4,Zl),Bf=e=>e.type===`Categorization`,J=Nl(1,jl(El(`Categorization`),e=>{let t=e=>(0,U.default)(e.elements)?!1:e.elements.map(e=>Bf(e)?t(e):e.type===`Category`).reduce((e,t)=>e&&t,!0);return t(e)})),Vf=(e,t)=>t===e?`selected`:``,Hf=({selectedCategory:e,elements:t,data:n,depth:r,onSelect:i,subcategoriesClassName:a,groupClassName:o,t:s,ajv:c,config:l})=>{let u=(0,H.useMemo)(()=>t.filter(e=>Us(e,n,void 0,c,l)),[t,n,c,l]),d=(0,H.useMemo)(()=>u.map(e=>pl(e,s)),[u,s]);return H.createElement(`ul`,{className:a},u.map((t,u)=>Bf(t)?H.createElement(`li`,{key:d[u],className:o},H.createElement(`span`,null,d[u]),H.createElement(Hf,{selectedCategory:e,elements:t.elements,data:n,ajv:c,config:l,depth:r+1,onSelect:i,subcategoriesClassName:a,groupClassName:o,t:s})):H.createElement(`li`,{key:d[u],onClick:i(u),className:Vf(t,e)},H.createElement(`span`,null,d[u]))))},Uf=({category:e,schema:t,path:n})=>H.createElement(`div`,{id:`categorization.detail`},(e.elements||[]).map((e,r)=>H.createElement(Jd,{key:`${n}-${r}`,uischema:e,schema:t,path:n}))),Wf=q(xf(Ud(Pd(({data:e,uischema:t,schema:n,path:r,selected:i,t:a,visible:o,getStyleAsClassName:s,onChange:c,ajv:l,config:u})=>{let d=t,f=d.elements,p=s(`categorization`),m=s(`categorization.master`),h=s(`categorization.detail`),g=s(`category.subcategories`),_=s(`category.group`),[v,y]=(0,H.useState)(t),[b,x]=(0,H.useState)(i??0),S=b>=d.elements.length?0:b;return d!==v&&(x(0),y(d)),H.createElement(`div`,{className:p,hidden:o==null?!1:!o},H.createElement(`div`,{className:m},H.createElement(Hf,{elements:f,selectedCategory:f[S],data:e,ajv:l,config:u,depth:0,onSelect:e=>()=>c?c(e,S):x(e),subcategoriesClassName:g,groupClassName:_,t:a})),H.createElement(`div`,{className:h},H.createElement(Uf,{category:f[S],schema:n,path:r,key:S})))})))),Gf=Nl(1,El(`Label`)),Kf=xf(Hd(({text:e,visible:t,getStyleAsClassName:n})=>{let r=n(`label-control`),i=!t;return H.createElement(`label`,{hidden:i,className:r},e)})),{convertToValidClassName:qf}=sc,{or:Jf,isObjectArrayControl:Yf,isPrimitiveArrayControl:Xf,rankWith:Zf}=iu,Qf=Zf(3,Jf(Yf,Xf)),$f=xf(Fd(Ud(Wd(class extends H.Component{constructor(){super(...arguments),this.confirmDelete=(e,t)=>{let n=e.substring(0,e.lastIndexOf(`.`));this.props.removeItems(n,[t])()}}render(){let{addItem:e,uischema:t,schema:n,rootSchema:r,path:i,data:a,visible:o,errors:s,label:c,getStyleAsClassName:l,childErrors:u,translations:d,enabled:f}=this.props,p=t,m=l(`array.table.table`),h=l(`array.table.label`),g=l(`array.table.button`),_=l(`array.table.validation`),v=[l(`array.table`),qf(p.scope)].join(` `),y=e=>({type:`Control`,label:!1,scope:n.type===`object`?`#/properties/${e}`:`#`}),b=s.length===0,x=[_].concat(b?``:l(`array.table.validation.error`)).join(` `);return H.createElement(`div`,{className:v,hidden:!o},H.createElement(`header`,null,H.createElement(`label`,{className:h},c),H.createElement(`button`,{type:`button`,disabled:!f,className:g,onClick:e(i,Au(n,r))},d.addTooltip)),H.createElement(`div`,{className:x},b?``:s),H.createElement(`table`,{className:m},H.createElement(`thead`,null,H.createElement(`tr`,null,n.properties?(0,ff.default)(pf.default,(0,uf.default)(e=>n.properties[e].type!==`array`),(0,df.default)(e=>H.createElement(`th`,{key:e},n.properties[e].title??(0,mf.default)(e))))(n.properties):H.createElement(`th`,null,`Items`),H.createElement(`th`,null,`Valid`),H.createElement(`th`,null,`\xA0`))),H.createElement(`tbody`,null,!a||!Array.isArray(a)||a.length===0?H.createElement(`tr`,null,H.createElement(`td`,null,d.noDataMessage)):a.map((e,t)=>{let a=Qs.compose(i,`${t}`),o=(0,zo.default)(u,e=>nc(e).startsWith(a)),s=l(`array.validation`),c=l(`array.validation.error`),p=o?[s].concat(c).join(` `):s;return H.createElement(`tr`,{key:a},n.properties?(0,ff.default)(pf.default,(0,uf.default)(e=>n.properties[e].type!==`array`),(0,df.default)(e=>{let t=Qs.compose(a,e.toString());return H.createElement(`td`,{key:t},H.createElement(Xd,{schema:Zs.schema(n,`#/properties/${us(e)}`,r),uischema:y(us(e)),path:a+`.`+e}))}))(n.properties):H.createElement(`td`,{key:Qs.compose(a,t.toString())},H.createElement(Xd,{schema:n,uischema:y(),path:a})),H.createElement(`td`,null,o?H.createElement(`span`,{className:p},(0,lf.default)(o.map(e=>e.message),` and `)):H.createElement(`span`,{className:p},`OK`)),H.createElement(`td`,null,H.createElement(`button`,{type:`button`,disabled:!f,"aria-label":d.removeAriaLabel,onClick:()=>{window.confirm(d.deleteDialogMessage)&&this.confirmDelete(a,t)}},d.removeTooltip)))}))))}})))),ep=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`checkbox`,checked:!!t,onChange:e=>s(o,e.target.checked),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},tp=Nl(2,Fl),np=Id(Tf(ep)),rp=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`date`,value:t||``,onChange:e=>s(o,e.target.value),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},ip=Nl(2,Gl),ap=Id(Cf(rp)),op=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e,c=e=>e===``?``:e+`:00.000Z`;return H.createElement(`input`,{type:`datetime-local`,value:(t||``).substr(0,16),onChange:e=>s(o,c(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},sp=Nl(2,ql),cp=Id(Cf(op)),lp=e=>{let{data:t,className:n,id:r,enabled:i,schema:a,uischema:o,path:s,handleChange:c,options:l,t:u}=e,d=(0,H.useMemo)(()=>u(`enum.none`,hf[`enum.none`],{schema:a,uischema:o,path:s}),[u,a,o,s]);return H.createElement(`select`,{className:n,id:r,disabled:!i,autoFocus:o.options&&o.options.focus,value:t||``,onChange:e=>c(s,e.target.selectedIndex===0?void 0:e.target.value)},[H.createElement(`option`,{value:``,key:`jsonforms.enum.none`},d)].concat(l.map(e=>H.createElement(`option`,{value:e.value,label:e.label,key:e.value}))))},up=Nl(2,Bl),dp=Rd(Ud(wf(lp))),fp=e=>e===``?void 0:parseInt(e,10),pp=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`number`,step:`1`,value:t??``,onChange:e=>s(o,fp(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},mp=Nl(2,Hl),hp=Id(Cf(pp)),gp=e=>e===``?void 0:Number(e),_p=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`number`,step:`0.1`,value:t??``,onChange:e=>s(o,gp(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},vp=Nl(2,W),yp=Id(Cf(_p));Id(Cf(e=>{let{className:t,id:n,enabled:r,uischema:i,path:a,handleChange:o,schema:s}=e,c=s.maxLength,l=e.toFormatted(e.data);return H.createElement(`input`,{type:`text`,value:l,onChange:t=>{o(a,e.fromFormatted(t.currentTarget.value))},className:t,id:n,disabled:!r,autoFocus:i.options&&i.options.focus,maxLength:i.options&&i.options.restrict?c:void 0,size:i.options&&i.options.trim?c:void 0})}));var bp=e=>{let{data:t,className:n,id:r,enabled:i,schema:a,uischema:o,path:s,handleChange:c,options:l,t:u}=e,d=(0,H.useMemo)(()=>u(`enum.none`,hf[`enum.none`],{schema:a,uischema:o,path:s}),[u,a,o,s]),f=H.createElement(`option`,{value:``,key:`jsonforms.enum.none`},d);return H.createElement(`select`,{className:n,id:r,disabled:!i,autoFocus:o.options&&o.options.focus,value:t||``,onChange:e=>c(s,e.target.selectedIndex===0?void 0:e.target.value)},(o.options?.hideEmptyOption===!0?[]:[f]).concat(l.map(e=>H.createElement(`option`,{value:e.value,label:e.label,key:e.value}))))},xp=Nl(2,Vl),Sp=Bd(Ud(wf(bp))),Cp=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,schema:o,path:s,handleChange:c}=e;return H.createElement(`div`,{style:{display:`flex`}},H.createElement(`input`,{type:`range`,max:o.maximum,min:o.minimum,value:t||o.default,onChange:e=>c(s,Number(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus,style:{flex:`1`}}),H.createElement(`label`,{style:{marginLeft:`0.5em`}},t||o.default))},wp=Nl(4,eu),Tp=Id(Cf(Cp)),Ep=e=>{let{config:t,data:n,className:r,id:i,enabled:a,uischema:o,schema:s,path:c,handleChange:l}=e,u=s.maxLength,d=(0,Vo.default)({},t,o.options);return H.createElement(`input`,{type:d.format===`password`?`password`:`text`,value:n||``,onChange:e=>l(c,e.target.value===``?void 0:e.target.value),className:r,id:i,disabled:!a,autoFocus:d.focus,placeholder:d.placeholder,maxLength:d.restrict?u:void 0,size:d.trim?u:void 0})},Dp=Nl(1,Ul),Op=Id(Cf(Ep)),kp=e=>{let{data:t,className:n,id:r,enabled:i,config:a,uischema:o,path:s,handleChange:c}=e,l=(0,Vo.default)({},a,o.options);return H.createElement(`textarea`,{value:t||``,onChange:e=>c(s,e.target.value===``?void 0:e.target.value),className:n,id:r,disabled:!i,autoFocus:l.focus,placeholder:l.placeholder})},Ap=Nl(2,Wl),jp=Id(Cf(kp)),Mp=e=>{if(typeof e==`string`){let t=e.split(`:`);return t.length===2&&t.push(`00`),t.join(`:`)}return e},Np=e=>{let{data:t,className:n,id:r,enabled:i,uischema:a,path:o,handleChange:s}=e;return H.createElement(`input`,{type:`time`,value:t||``,onChange:e=>s(o,Mp(e.target.value)),className:n,id:r,disabled:!i,autoFocus:a.options&&a.options.focus})},Pp=Nl(2,Kl),Fp=Id(Cf(Np)),Ip=(e,t,n,r,i)=>{if((0,U.default)(e.elements))return[];let{renderers:a,cells:o}=sd();return e.elements.map((e,s)=>H.createElement(`div`,{className:n,key:`${r}-${s}`},H.createElement(Jd,{renderers:a,cells:o,uischema:e,schema:t,path:r,enabled:i})))},Lp=Nl(1,El(`Group`)),Rp=e=>{let{data:t,...n}=e;return H.createElement(zp,{...n})},zp=H.memo(function({schema:e,uischema:t,path:n,enabled:r,visible:i,label:a,getStyle:o,getStyleAsClassName:s}){let c=t,l=c.elements?c.elements.length:0,u=s(`group.layout`),d=[`group-layout-item`].concat(o(`group.layout.item`,l)).join(` `);return H.createElement(`fieldset`,{className:u,hidden:i==null?!1:!i},(0,U.default)(a)?``:H.createElement(`legend`,{className:s(`group.label`)},a),Ip(c,e,d,n,r))}),Bp=xf(Pd(Rp)),Vp=({className:e,children:t,visible:n})=>H.createElement(`div`,{className:e,hidden:n==null?!1:!n},t),Hp=Nl(1,El(`HorizontalLayout`)),Up=e=>{let{data:t,...n}=e;return H.createElement(Wp,{...n})},Wp=H.memo(function({schema:e,uischema:t,getStyle:n,getStyleAsClassName:r,enabled:i,visible:a,path:o}){let s=t,c=s.elements?s.elements.length:0,l=r(`horizontal.layout`),u=[`horizontal-layout-item`].concat(n(`horizontal.layout.item`,c)).join(` `);return H.createElement(Vp,{className:l,visible:a,enabled:i,path:o,uischema:t,schema:e,getStyle:n,getStyleAsClassName:r},Ip(s,e,u,o,i))}),Gp=xf(Pd(Up,!1)),Kp=Nl(1,El(`VerticalLayout`)),qp=e=>{let{data:t,...n}=e;return H.createElement(Jp,{...n})},Jp=H.memo(function({schema:e,uischema:t,path:n,visible:r,enabled:i,getStyle:a,getStyleAsClassName:o}){let s=t,c=s.elements?s.elements.length:0,l=o(`vertical.layout`),u=[`vertical-layout-item`].concat(a(`vertical.layout.item`,c)).join(` `);return H.createElement(Vp,{className:l,uischema:t,schema:e,visible:r,enabled:i,path:n,getStyle:a,getStyleAsClassName:o},Ip(s,e,u,n,i))}),Yp=xf(Pd(qp,!1)),Xp=[{tester:Df,renderer:Of},{tester:jf,renderer:Mf},{tester:Pf,renderer:Ff},{tester:zf,renderer:Rf},{tester:Gf,renderer:Kf},{tester:J,renderer:Wf},{tester:Qf,renderer:$f},{tester:Lp,renderer:Bp},{tester:Kp,renderer:Yp},{tester:Hp,renderer:Gp}],Zp=[{tester:tp,cell:np},{tester:ip,cell:ap},{tester:sp,cell:cp},{tester:up,cell:dp},{tester:mp,cell:hp},{tester:vp,cell:yp},{tester:xp,cell:Sp},{tester:wp,cell:Tp},{tester:Ap,cell:jp},{tester:Dp,cell:Op},{tester:Pp,cell:Fp}],Qp=e=>{if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null},$p=e=>typeof e!=`object`||!e?e:JSON.parse(JSON.stringify(e)),em=(e,t=`value`)=>{if(typeof e!=`string`)return{ok:!0,value:e};let n=e.trim();if(n===``)return{ok:!1,error:`${t} is empty`};try{return{ok:!0,value:JSON.parse(n)}}catch(e){return{ok:!1,error:`${t} must be valid JSON: ${e instanceof Error?e.message:`parse failed`}`}}},tm=e=>Array.isArray(e)?e.map(e=>typeof e==`string`?{name:e.trim(),description:``}:Qp(e)?{name:typeof e.name==`string`?e.name.trim():``,description:typeof e.description==`string`?e.description.trim():``}:{name:``,description:``}).filter(e=>e.name!==``):[],nm=e=>{let t=e.name.toLowerCase(),n=e.description||void 0;return[`images`,`repos`,`reviewers`].includes(t)?{type:`array`,items:{type:`string`},...n?{description:n}:{}}:{type:`string`,...n?{description:n}:{}}},rm=e=>{if(!Qp(e))return null;let t=tm(e.required),n=tm(e.optional);if(t.length===0&&n.length===0)return null;let r={};for(let e of[...t,...n])r[e.name]=nm(e);return{type:`object`,properties:r,...t.length>0?{required:t.map(e=>e.name)}:{}}},im=e=>{let t=em(e,`schema`);if(!t.ok)return{ok:!1,schema:null,error:t.error};if(!Qp(t.value))return{ok:!1,schema:null,error:`schema must be a JSON object`};let n=rm(t.value)||$p(t.value);return!n.type&&Qp(n.properties)&&(n.type=`object`),!n.type&&!n.anyOf&&!n.oneOf&&!n.allOf&&!n.$ref?{ok:!1,schema:null,error:`schema must declare a type or JSON Schema composition`}:{ok:!0,schema:n,error:``}},am=e=>{if(e==null||typeof e==`string`&&e.trim()===``)return{ok:!0,uischema:void 0,error:``};let t=em(e,`ui schema`);return t.ok?Qp(t.value)?{ok:!0,uischema:$p(t.value),error:``}:{ok:!1,uischema:void 0,error:`ui schema must be a JSON object`}:{ok:!1,uischema:void 0,error:t.error}},om=(e,t)=>{if(e==null||typeof e==`string`&&e.trim()===``)return{ok:!1,schema:null,uischema:void 0,error:`schema is empty`};let n=im(e);if(!n.ok)return{ok:!1,schema:null,uischema:void 0,error:n.error};let r=am(t);return r.ok?{ok:!0,schema:n.schema,uischema:r.uischema,error:``}:{ok:!1,schema:null,uischema:void 0,error:r.error}},sm=e=>Qp(e)?Array.isArray(e.type)?e.type.filter(e=>typeof e==`string`):typeof e.type==`string`?[e.type]:[]:[],cm=e=>{if(!Qp(e))return{};if(Object.prototype.hasOwnProperty.call(e,`default`))return $p(e.default);let t=sm(e);if(t.includes(`array`))return[];if(t.includes(`object`)||Qp(e.properties)){let t={},n=Qp(e.properties)?e.properties:{};for(let[e,r]of Object.entries(n)){if(!Qp(r))continue;if(Object.prototype.hasOwnProperty.call(r,`default`)){t[e]=$p(r.default);continue}let n=lm(r);n.hasDefault&&(t[e]=n.value)}return t}return{}},lm=e=>{if(!Qp(e))return{hasDefault:!1,value:void 0};if(Object.prototype.hasOwnProperty.call(e,`default`))return{hasDefault:!0,value:$p(e.default)};let t=sm(e);if(t.includes(`object`)||Qp(e.properties)){let t=cm(e);return Object.keys(t).length>0?{hasDefault:!0,value:t}:{hasDefault:!1,value:void 0}}if(t.includes(`array`)&&Qp(e.items)){let t=lm(e.items);if(t.hasDefault)return{hasDefault:!0,value:[t.value]}}return{hasDefault:!1,value:void 0}},um=e=>JSON.stringify(e??{},null,2),dm=e=>{let t=String(e||``).trim();if(t===``)return{ok:!0,data:{},error:``};try{return{ok:!0,data:JSON.parse(t),error:``}}catch(e){return{ok:!1,data:null,error:e instanceof Error?e.message:`payload must be valid JSON`}}},fm=({toMode:e,textValue:t,currentData:n,schema:r})=>{if(e===`json`)return{ok:!0,mode:`json`,data:n==null?cm(r):$p(n),textValue:um(n??cm(r)),error:``};if(e===`form`){let e=dm(t);return e.ok?{ok:!0,mode:`form`,data:e.data==null?cm(r):e.data,textValue:um(e.data==null?cm(r):e.data),error:``}:{ok:!1,mode:`json`,data:n==null?cm(r):$p(n),textValue:t,error:e.error}}return{ok:!1,mode:`json`,data:n==null?cm(r):$p(n),textValue:t,error:`payload mode must be form or json`}},pm=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),mm=s((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===k?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case v:return`Fragment`;case b:return`Profiler`;case y:return`StrictMode`;case w:return`Suspense`;case T:return`SuspenseList`;case O:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case _:return`Portal`;case S:return e.displayName||`Context`;case x:return(e._context.displayName||`Context`)+`.Consumer`;case C:var n=e.render;return e=e.displayName,e||=(e=n.displayName||n.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case E:return n=e.displayName||null,n===null?t(e.type)||`Memo`:n;case D:n=e._payload,e=e._init;try{return t(e(n))}catch{}}return null}function n(e){return``+e}function r(e){try{n(e);var t=!1}catch{t=!0}if(t){t=console;var r=t.error,i=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return r.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,i),n(e)}}function i(e){if(e===v)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===D)return`<...>`;try{var n=t(e);return n?`<`+n+`>`:`<...>`}catch{return`<...>`}}function a(){var e=A.A;return e===null?null:e.getOwner()}function o(){return Error(`react-stack-top-frame`)}function s(e){if(j.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function c(e,t){function n(){P||(P=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function l(){var e=t(this.type);return ee[e]||(ee[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function u(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:g,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:l}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function d(e,n,i,o,l,d){var p=n.children;if(p!==void 0)if(o)if(M(p)){for(o=0;o React keys must be passed directly to JSX without using spread: let props = %s; - <%s key={someKey} {...props} />`,o,p,m,p),te[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===D&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===g}var h=m(),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),E=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),O=Symbol.for(`react.activity`),k=Symbol.for(`react.client.reference`),A=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,j=Object.prototype.hasOwnProperty,M=Array.isArray,N=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var P,ee={},F=h.react_stack_bottom_frame.bind(h,o)(),I=N(i(o)),te={};e.Fragment=v,e.jsx=function(e,t,n){var r=1e4>A.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):F,r?N(i(e)):I)},e.jsxs=function(e,t,n){var r=1e4>A.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):F,r?N(i(e)):I)}})()})),fm=s(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=um():t.exports=dm()}))(),pm=new WeakMap;function mm({schema:e,uischema:t,data:n,onChange:r}){return(0,fm.jsx)(Yd,{schema:e,uischema:t,data:n,renderers:Xp,cells:Zp,onChange:({data:e,errors:t})=>{r({data:e??{},errors:Array.isArray(t)?t:[]})}})}window.MoltenHubSkillPayloadForm={createDefaultPayload:am,normalizeSkillSchema:rm,prettyJSONStringify:sm,render:(e,t)=>{if(!(e instanceof HTMLElement))return{ok:!1,error:`form mount element is missing`};let n=rm(t&&t.schema,t&&t.uischema);if(!n.ok)return n;let r=t&&Object.prototype.hasOwnProperty.call(t,`data`)&&t.data!=null?$p(t.data):am(n.schema),i=pm.get(e);return i||(i=(0,Oo.createRoot)(e),pm.set(e,i)),i.render((0,fm.jsx)(mm,{schema:n.schema,uischema:n.uischema,data:r,onChange:t&&typeof t.onChange==`function`?t.onChange:()=>{}})),{ok:!0,schema:n.schema,uischema:n.uischema,data:r,error:``}},transitionPayloadMode:lm,unmount:e=>{let t=pm.get(e);t&&(t.unmount(),pm.delete(e))}}})(); \ No newline at end of file + <%s key={someKey} {...props} />`,o,p,m,p),te[p+o]=!0)}if(p=null,i!==void 0&&(r(i),p=``+i),s(n)&&(r(n.key),p=``+n.key),`key`in n)for(var h in i={},n)h!==`key`&&(i[h]=n[h]);else i=n;return p&&c(i,typeof e==`function`?e.displayName||e.name||`Unknown`:e),u(e,p,i,a(),l,d)}function f(e){p(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===D&&(e._payload.status===`fulfilled`?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e==`object`&&!!e&&e.$$typeof===g}var h=m(),g=Symbol.for(`react.transitional.element`),_=Symbol.for(`react.portal`),v=Symbol.for(`react.fragment`),y=Symbol.for(`react.strict_mode`),b=Symbol.for(`react.profiler`),x=Symbol.for(`react.consumer`),S=Symbol.for(`react.context`),C=Symbol.for(`react.forward_ref`),w=Symbol.for(`react.suspense`),T=Symbol.for(`react.suspense_list`),E=Symbol.for(`react.memo`),D=Symbol.for(`react.lazy`),O=Symbol.for(`react.activity`),k=Symbol.for(`react.client.reference`),A=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,j=Object.prototype.hasOwnProperty,M=Array.isArray,N=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var P,ee={},F=h.react_stack_bottom_frame.bind(h,o)(),I=N(i(o)),te={};e.Fragment=v,e.jsx=function(e,t,n){var r=1e4>A.recentlyCreatedOwnerStacks++;return d(e,t,n,!1,r?Error(`react-stack-top-frame`):F,r?N(i(e)):I)},e.jsxs=function(e,t,n){var r=1e4>A.recentlyCreatedOwnerStacks++;return d(e,t,n,!0,r?Error(`react-stack-top-frame`):F,r?N(i(e)):I)}})()})),hm=s(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=pm():t.exports=mm()}))(),gm=new WeakMap;function _m({schema:e,uischema:t,data:n,onChange:r}){return(0,hm.jsx)(Yd,{schema:e,uischema:t,data:n,renderers:Xp,cells:Zp,onChange:({data:e,errors:t})=>{r({data:e??{},errors:Array.isArray(t)?t:[]})}})}window.MoltenHubSkillPayloadForm={createDefaultPayload:cm,normalizeSkillSchema:om,prettyJSONStringify:um,render:(e,t)=>{if(!(e instanceof HTMLElement))return{ok:!1,error:`form mount element is missing`};let n=om(t&&t.schema,t&&t.uischema);if(!n.ok)return n;let r=t&&Object.prototype.hasOwnProperty.call(t,`data`)&&t.data!=null?$p(t.data):cm(n.schema),i=gm.get(e);return i||(i=(0,Oo.createRoot)(e),gm.set(e,i)),i.render((0,hm.jsx)(_m,{schema:n.schema,uischema:n.uischema,data:r,onChange:t&&typeof t.onChange==`function`?t.onChange:()=>{}})),{ok:!0,schema:n.schema,uischema:n.uischema,data:r,error:``}},transitionPayloadMode:fm,unmount:e=>{let t=gm.get(e);t&&(t.unmount(),gm.delete(e))}}})(); \ No newline at end of file diff --git a/web/skill-payload-form/schema.mjs b/web/skill-payload-form/schema.mjs index a93e633..09c8a37 100644 --- a/web/skill-payload-form/schema.mjs +++ b/web/skill-payload-form/schema.mjs @@ -61,6 +61,62 @@ export const parseMaybeJSONString = (value, label = "value") => { } }; +const parameterEntries = (value) => { + if (!Array.isArray(value)) { + return []; + } + return value + .map((entry) => { + if (typeof entry === "string") { + return { name: entry.trim(), description: "" }; + } + if (!isPlainObject(entry)) { + return { name: "", description: "" }; + } + return { + name: typeof entry.name === "string" ? entry.name.trim() : "", + description: typeof entry.description === "string" ? entry.description.trim() : "", + }; + }) + .filter((entry) => entry.name !== ""); +}; + +const schemaForParameter = (entry) => { + const normalizedName = entry.name.toLowerCase(); + const description = entry.description || undefined; + if (["images", "repos", "reviewers"].includes(normalizedName)) { + return { + type: "array", + items: { type: "string" }, + ...(description ? { description } : {}), + }; + } + return { + type: "string", + ...(description ? { description } : {}), + }; +}; + +export const parameterMetadataToJSONSchema = (value) => { + if (!isPlainObject(value)) { + return null; + } + const required = parameterEntries(value.required); + const optional = parameterEntries(value.optional); + if (required.length === 0 && optional.length === 0) { + return null; + } + const properties = {}; + for (const entry of [...required, ...optional]) { + properties[entry.name] = schemaForParameter(entry); + } + return { + type: "object", + properties, + ...(required.length > 0 ? { required: required.map((entry) => entry.name) } : {}), + }; +}; + export const normalizeJSONSchema = (schemaInput) => { const parsed = parseMaybeJSONString(schemaInput, "schema"); if (!parsed.ok) { @@ -69,7 +125,8 @@ export const normalizeJSONSchema = (schemaInput) => { if (!isPlainObject(parsed.value)) { return { ok: false, schema: null, error: "schema must be a JSON object" }; } - const schema = deepClone(parsed.value); + const parameterSchema = parameterMetadataToJSONSchema(parsed.value); + const schema = parameterSchema || deepClone(parsed.value); if (!schema.type && isPlainObject(schema.properties)) { schema.type = "object"; } diff --git a/web/skill-payload-form/schema.test.mjs b/web/skill-payload-form/schema.test.mjs index 0d7445f..60c0f67 100644 --- a/web/skill-payload-form/schema.test.mjs +++ b/web/skill-payload-form/schema.test.mjs @@ -5,6 +5,7 @@ import { createDefaultPayload, extractSkillSchemaPayload, normalizeSkillSchema, + parameterMetadataToJSONSchema, transitionPayloadMode, } from "./schema.mjs"; @@ -36,6 +37,36 @@ test("normalizeSkillSchema rejects invalid schema input", () => { assert.match(result.error, /valid JSON/); }); +test("parameterMetadataToJSONSchema converts advertised parameter metadata", () => { + assert.deepEqual(parameterMetadataToJSONSchema({ + required: [{ name: "repo", description: "Repository URL" }], + optional: [ + { name: "prompt", description: "Task prompt" }, + { name: "repos", description: "Repository URLs" }, + ], + }), { + type: "object", + properties: { + repo: { type: "string", description: "Repository URL" }, + prompt: { type: "string", description: "Task prompt" }, + repos: { type: "array", items: { type: "string" }, description: "Repository URLs" }, + }, + required: ["repo"], + }); +}); + +test("normalizeSkillSchema accepts advertised parameter metadata", () => { + const result = normalizeSkillSchema({ + format: "json", + optional: [{ name: "prompt", description: "Task prompt" }], + secret_policy: "forbidden", + }); + + assert.equal(result.ok, true); + assert.equal(result.schema.type, "object"); + assert.deepEqual(result.schema.properties.prompt, { type: "string", description: "Task prompt" }); +}); + test("createDefaultPayload uses root and nested schema defaults", () => { assert.deepEqual(createDefaultPayload({ type: "object", From 695fb80a07a883adad0a6f9ac7263ad2ca8f2699 Mon Sep 17 00:00:00 2001 From: moltenhub-bot Date: Wed, 27 May 2026 16:34:07 -0700 Subject: [PATCH 6/6] ok --- internal/web/server_test.go | 6 + .../skill-payload-form/skill-payload-form.js | 258 +----------------- internal/web/templates/index.html | 13 +- vite.config.mjs | 3 + web/skill-payload-form/main.jsx | 2 + web/skill-payload-form/schema.mjs | 36 ++- web/skill-payload-form/schema.test.mjs | 37 +++ 7 files changed, 101 insertions(+), 254 deletions(-) diff --git a/internal/web/server_test.go b/internal/web/server_test.go index 8e2ed70..c33cdb7 100644 --- a/internal/web/server_test.go +++ b/internal/web/server_test.go @@ -1331,6 +1331,9 @@ func TestHandleIndexIncludesSkillSchemaPlaceholderSupport(t *testing.T) { if !strings.Contains(body, `const extractSkillSchema = (skill) => {`) { t.Fatalf("expected skill schema extraction helper in client script, body=%s", body) } + if !strings.Contains(body, `const nestedSchema = firstSkillAliasValue(schema, skillSchemaAliases);`) { + t.Fatalf("expected nested parameter schema extraction in client script, body=%s", body) + } if !strings.Contains(body, `const skillSchemaAliases = ["schema", "input_schema", "payload_schema", "inputSchema", "payloadSchema", "parameters", "args_schema", "argsSchema"];`) { t.Fatalf("expected schema alias scan in client script, body=%s", body) } @@ -4713,6 +4716,9 @@ func TestHandleIndexRendersConnectedAgentsRefreshPanel(t *testing.T) { if !strings.Contains(body, `id="initial-connected-agents-data" type="application/json"`) { t.Fatalf("expected serialized connected-agents bootstrap payload script, body=%s", body) } + if !strings.Contains(body, `if (typeof parsed === "string")`) { + t.Fatalf("expected initial JSON bootstrap parser to handle double-encoded arrays, body=%s", body) + } if !strings.Contains(body, `const selectConnectedAgentTarget = (targetRef, options = {}) => {`) { t.Fatalf("expected connected agent selector click handler, body=%s", body) } diff --git a/internal/web/static/skill-payload-form/skill-payload-form.js b/internal/web/static/skill-payload-form/skill-payload-form.js index 8e705ea..a23d570 100644 --- a/internal/web/static/skill-payload-form/skill-payload-form.js +++ b/internal/web/static/skill-payload-form/skill-payload-form.js @@ -1,257 +1,19 @@ -(function(){var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e),f=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function M(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function N(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,N(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),N(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{process.env.NODE_ENV!==`production`&&(function(){function n(e,t){Object.defineProperty(a.prototype,e,{get:function(){console.warn(`%s(...) is deprecated in plain JavaScript React classes. %s`,t[0],t[1])}})}function r(e){return typeof e!=`object`||!e?null:(e=de&&e[de]||e[`@@iterator`],typeof e==`function`?e:null)}function i(e,t){e=(e=e.constructor)&&(e.displayName||e.name)||`ReactClass`;var n=e+`.`+t;fe[n]||(console.error("Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.",t,e),fe[n]=!0)}function a(e,t,n){this.props=e,this.context=t,this.refs=me,this.updater=n||pe}function o(){}function s(e,t,n){this.props=e,this.context=t,this.refs=me,this.updater=n||pe}function c(){}function l(e){return``+e}function u(e){try{l(e);var t=!1}catch{t=!0}if(t){t=console;var n=t.error,r=typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`;return n.call(t,`The provided key is an unsupported type %s. This value must be coerced to a string before using it here.`,r),l(e)}}function d(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===_e?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case I:return`Fragment`;case ne:return`Profiler`;case te:return`StrictMode`;case oe:return`Suspense`;case se:return`SuspenseList`;case ue:return`Activity`}if(typeof e==`object`)switch(typeof e.tag==`number`&&console.error(`Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.`),e.$$typeof){case F:return`Portal`;case ie:return e.displayName||`Context`;case re:return(e._context.displayName||`Context`)+`.Consumer`;case ae:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case ce:return t=e.displayName||null,t===null?d(e.type)||`Memo`:t;case le:t=e._payload,e=e._init;try{return d(e(t))}catch{}}return null}function f(e){if(e===I)return`<>`;if(typeof e==`object`&&e&&e.$$typeof===le)return`<...>`;try{var t=d(e);return t?`<`+t+`>`:`<...>`}catch{return`<...>`}}function p(){var e=R.A;return e===null?null:e.getOwner()}function m(){return Error(`react-stack-top-frame`)}function h(e){if(ve.call(e,`key`)){var t=Object.getOwnPropertyDescriptor(e,`key`).get;if(t&&t.isReactWarning)return!1}return e.key!==void 0}function g(e,t){function n(){be||(be=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",t))}n.isReactWarning=!0,Object.defineProperty(e,"key",{get:n,configurable:!0})}function _(){var e=d(this.type);return Se[e]||(Se[e]=!0,console.error(`Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.`)),e=this.props.ref,e===void 0?null:e}function v(e,t,n,r,i,a){var o=n.ref;return e={$$typeof:ee,type:e,key:t,props:n,_owner:r},(o===void 0?null:o)===null?Object.defineProperty(e,"ref",{enumerable:!1,value:null}):Object.defineProperty(e,"ref",{enumerable:!1,get:_}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:i}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:a}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function y(e,t){return t=v(e.type,t,e.props,e._owner,e._debugStack,e._debugTask),e._store&&(t._store.validated=e._store.validated),t}function b(e){x(e)?e._store&&(e._store.validated=1):typeof e==`object`&&e&&e.$$typeof===le&&(e._payload.status===`fulfilled`?x(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function x(e){return typeof e==`object`&&!!e&&e.$$typeof===ee}function S(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}function C(e,t){return typeof e==`object`&&e&&e.key!=null?(u(e.key),S(``+e.key)):t.toString(36)}function w(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(c,c):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function T(e,t,n,i,a){var o=typeof e;(o===`undefined`||o===`boolean`)&&(e=null);var s=!1;if(e===null)s=!0;else switch(o){case`bigint`:case`string`:case`number`:s=!0;break;case`object`:switch(e.$$typeof){case ee:case F:s=!0;break;case le:return s=e._init,T(s(e._payload),t,n,i,a)}}if(s){s=e,a=a(s);var c=i===``?`.`+C(s,0):i;return ge(a)?(n=``,c!=null&&(n=c.replace(Ee,`$&/`)+`/`),T(a,t,n,``,function(e){return e})):a!=null&&(x(a)&&(a.key!=null&&(s&&s.key===a.key||u(a.key)),n=y(a,n+(a.key==null||s&&s.key===a.key?``:(``+a.key).replace(Ee,`$&/`)+`/`)+c),i!==``&&s!=null&&x(s)&&s.key==null&&s._store&&!s._store.validated&&(n._store.validated=2),a=n),t.push(a)),1}if(s=0,c=i===``?`.`:i+`:`,ge(e))for(var l=0;l import('./MyComponent')) - -Did you accidentally put curly braces around the import?`,t),`default`in t||console.error(`lazy: Expected the result of a dynamic import() call. Instead received: %s - -Your code should look like: - const MyComponent = lazy(() => import('./MyComponent'))`,t),t.default;throw e._result}function O(){var e=R.H;return e===null&&console.error(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: -1. You might have mismatching versions of React and the renderer (such as React DOM) -2. You might be breaking the Rules of Hooks -3. You might have more than one copy of React in the same app -See https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.`),e}function k(){R.asyncTransitions--}function A(e){if(ke===null)try{var n=(`require`+Math.random()).slice(0,7);ke=(t&&t[n]).call(t,`timers`).setImmediate}catch{ke=function(e){!1===Oe&&(Oe=!0,typeof MessageChannel>`u`&&console.error(`This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.`));var t=new MessageChannel;t.port1.onmessage=e,t.port2.postMessage(void 0)}}return ke(e)}function j(e){return 1 ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);`))}),{then:function(e,a){i=!0,o.then(function(i){if(M(t,n),n===0){try{P(r),A(function(){return N(i,e,a)})}catch(e){R.thrownErrors.push(e)}if(0 ...)"))}),R.actQueue=null),0R.recentlyCreatedOwnerStacks++;return v(e,i,r,p(),c?Error(`react-stack-top-frame`):Ce,c?ye(f(e)):we)},e.createRef=function(){var e={current:null};return Object.seal(e),e},e.forwardRef=function(e){e!=null&&e.$$typeof===ce?console.error("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof e==`function`?e.length!==0&&e.length!==2&&console.error(`forwardRef render functions accept exactly two parameters: props and ref. %s`,e.length===1?`Did you forget to use the ref parameter?`:`Any additional parameter will be undefined.`):console.error(`forwardRef requires a render function but was given %s.`,e===null?`null`:typeof e),e!=null&&e.defaultProps!=null&&console.error(`forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?`);var t={$$typeof:ae,render:e},n;return Object.defineProperty(t,"displayName",{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(Object.defineProperty(e,"name",{value:t}),e.displayName=t)}}),t},e.isValidElement=x,e.lazy=function(e){e={_status:-1,_result:e};var t={$$typeof:le,_payload:e,_init:D},n={name:`lazy`,start:-1,end:-1,value:null,owner:null,debugStack:Error(`react-stack-top-frame`),debugTask:console.createTask?console.createTask(`lazy()`):null};return e._ioInfo=n,t._debugInfo=[{awaited:n}],t},e.memo=function(e,t){e??console.error(`memo: The first argument must be a component. Instead received: %s`,e===null?`null`:typeof e),t={$$typeof:ce,type:e,compare:t===void 0?null:t};var n;return Object.defineProperty(t,"displayName",{enumerable:!1,configurable:!0,get:function(){return n},set:function(t){n=t,e.name||e.displayName||(Object.defineProperty(e,"name",{value:t}),e.displayName=t)}}),t},e.startTransition=function(e){var t=R.T,n={};n._updatedFibers=new Set,R.T=n;try{var r=e(),i=R.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&(R.asyncTransitions++,r.then(k,k),r.then(c,De))}catch(e){De(e)}finally{t===null&&n._updatedFibers&&(e=n._updatedFibers.size,n._updatedFibers.clear(),10{process.env.NODE_ENV===`production`?t.exports=f():t.exports=p()})),h=s((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&j(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&j(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function j(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,j(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),g=s((e=>{process.env.NODE_ENV!==`production`&&(function(){function t(){if(x=!1,T){var t=e.unstable_now();O=t;var n=!0;try{a:{y=!1,b&&(b=!1,C(E),E=-1),v=!0;var a=_;try{b:{for(o(t),g=r(p);g!==null&&!(g.expirationTime>t&&c());){var u=g.callback;if(typeof u==`function`){g.callback=null,_=g.priorityLevel;var d=u(g.expirationTime<=t);if(t=e.unstable_now(),typeof d==`function`){g.callback=d,o(t),n=!0;break b}g===r(p)&&i(p),o(t)}else i(p);g=r(p)}if(g!==null)n=!0;else{var f=r(m);f!==null&&l(s,f.startTime-t),n=!1}}break a}finally{g=null,_=a,v=!1}n=void 0}}finally{n?k():T=!1}}}function n(e,t){var n=e.length;e.push(t);a:for(;0>>1,i=e[r];if(0>>1;ra(c,n))la(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(la(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}function o(e){for(var t=r(m);t!==null;){if(t.callback===null)i(m);else if(t.startTime<=e)i(m),t.sortIndex=t.expirationTime,n(p,t);else break;t=r(m)}}function s(e){if(b=!1,o(e),!y)if(r(p)!==null)y=!0,T||(T=!0,k());else{var t=r(m);t!==null&&l(s,t.startTime-e)}}function c(){return x?!0:!(e.unstable_now()-Oe||125o?(t.sortIndex=a,n(m,t),r(p)===null&&t===r(m)&&(b?(C(E),E=-1):b=!0,l(s,a-o))):(t.sortIndex=c,n(p,t),y||v||(y=!0,T||(T=!0,k()))),t},e.unstable_shouldYield=c,e.unstable_wrapCallback=function(e){var t=_;return function(){var n=_;_=t;try{return e.apply(this,arguments)}finally{_=n}}},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),_=s(((e,t)=>{process.env.NODE_ENV===`production`?t.exports=h():t.exports=g()})),v=s((e=>{var t=m();function n(e){var t=`https://react.dev/errors/`+e;if(1{process.env.NODE_ENV!==`production`&&(function(){function t(){}function n(e){return``+e}function r(e,t,r){var i=3` tag.%s',n),typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){n=t.as;var r=i(n,t.crossOrigin);l.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){var n=``;typeof e==`string`&&e||(n+=" The `href` argument encountered was "+a(e)+`.`),t!==void 0&&typeof t!=`object`?n+=" The `options` argument encountered was "+a(t)+`.`:t&&`as`in t&&typeof t.as!=`string`&&(n+=" The `as` option encountered was "+a(t.as)+`.`),n&&console.error('ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `` tag.%s',n),typeof e==`string`&&(t?(n=i(t.as,t.crossOrigin),l.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0})):l.d.m(e))},e.requestFormReset=function(e){l.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return s().useFormState(e,t,n)},e.useFormStatus=function(){return s().useHostTransitionStatus()},e.version=`19.2.6`,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop==`function`&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()})),b=s(((e,t)=>{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`)){if(process.env.NODE_ENV!==`production`)throw Error(`^_^`);try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}}process.env.NODE_ENV===`production`?(n(),t.exports=v()):t.exports=y()})),x=s((e=>{var t=_(),n=m(),r=b();function i(e){var t=`https://react.dev/errors/`+e;if(1re||(e.current=ne[re],ne[re]=null,re--)}function oe(e,t){re++,ne[re]=e.current,e.current=t}var se=ie(null),ce=ie(null),le=ie(null),ue=ie(null);function de(e,t){switch(oe(le,t),oe(ce,e),oe(se,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Jd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Jd(t),e=Yd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}ae(se),oe(se,e)}function fe(){ae(se),ae(ce),ae(le)}function pe(e){e.memoizedState!==null&&oe(ue,e);var t=se.current,n=Yd(t,e.type);t!==n&&(oe(ce,e),oe(se,n))}function L(e){ce.current===e&&(ae(se),ae(ce)),ue.current===e&&(ae(ue),rp._currentValue=te)}var me,he;function ge(e){if(me===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);me=t&&t[1]||``,he=-1()=>(e&&(t=e(e=0)),t),s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,a)=>(a=n==null?{}:e(i(n)),l(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e),f=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function A(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function te(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ne(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ne(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+A(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(ee,`$&/`)+`/`),ne(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u{t.exports=f()})),m=s((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&A(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&A(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,ee=k.port2;k.port1.onmessage=D,O=function(){ee.postMessage(null)}}else O=function(){_(D,0)};function A(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,A(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),h=s(((e,t)=>{t.exports=m()})),g=s((e=>{var t=p();function n(e){var t=`https://react.dev/errors/`+e;if(1{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=g()})),v=s((e=>{var t=h(),n=p(),r=_();function i(e){var t=`https://react.dev/errors/`+e;if(1oe||(e.current=ae[oe],ae[oe]=null,oe--)}function F(e,t){oe++,ae[oe]=e.current,e.current=t}var ce=se(null),le=se(null),ue=se(null),de=se(null);function fe(e,t){switch(F(ue,t),F(le,e),F(ce,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Vd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Vd(t),e=Hd(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}P(ce),F(ce,e)}function pe(){P(ce),P(le),P(ue)}function me(e){e.memoizedState!==null&&F(de,e);var t=ce.current,n=Hd(t,e.type);t!==n&&(F(le,e),F(ce,n))}function he(e){le.current===e&&(P(ce),P(le)),de.current===e&&(P(de),Qf._currentValue=ie)}var ge,_e;function I(e){if(ge===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ge=t&&t[1]||``,_e=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{_e=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?ge(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return ge(e.type);case 16:return ge(`Lazy`);case 13:return e.child!==t&&t!==null?ge(`Suspense Fallback`):ge(`Suspense`);case 19:return ge(`SuspenseList`);case 0:case 15:return R(e.type,!1);case 11:return R(e.type.render,!1);case 1:return R(e.type,!0);case 31:return ge(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ve=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?I(n):``}function be(e,t){switch(e.tag){case 26:case 27:case 5:return I(e.type);case 16:return I(`Lazy`);case 13:return e.child!==t&&t!==null?I(`Suspense Fallback`):I(`Suspense`);case 19:return I(`SuspenseList`);case 0:case 15:return ye(e.type,!1);case 11:return ye(e.type.render,!1);case 1:return ye(e.type,!0);case 31:return I(`Activity`);default:return``}}function xe(e){try{var t=``,n=null;do t+=be(e,n),n=e,e=e.return;while(e);return t}catch(e){return` Error generating stack: `+e.message+` -`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,Me=t.log,Ne=t.unstable_setDisableYieldValue,Pe=null,Fe=null;function Ie(e){if(typeof Me==`function`&&Ne(e),Fe&&typeof Fe.setStrictMode==`function`)try{Fe.setStrictMode(Pe,e)}catch{}}var Le=Math.clz32?Math.clz32:Be,Re=Math.log,ze=Math.LN2;function Be(e){return e>>>=0,e===0?32:31-(Re(e)/ze|0)|0}var Ve=256,He=262144,Ue=4194304;function We(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ge(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=We(n))):i=We(o):i=We(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=We(n))):i=We(o)):i=We(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ke(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function qe(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Je(){var e=Ue;return Ue<<=1,!(Ue&62914560)&&(Ue=4194304),e}function Ye(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Xe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ze(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),un=!1;if(ln)try{var dn={};Object.defineProperty(dn,"passive",{get:function(){un=!0}}),window.addEventListener(`test`,dn,dn),window.removeEventListener(`test`,dn,dn)}catch{un=!1}var fn=null,pn=null,mn=null;function hn(){if(mn)return mn;var e,t=pn,n=t.length,r,i=`value`in fn?fn.value:fn.textContent,a=i.length;for(e=0;e=qn),Xn=` `,Zn=!1;function Qn(e,t){switch(e){case`keyup`:return Gn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function $n(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var er=!1;function tr(e,t){switch(e){case`compositionend`:return $n(t);case`keypress`:return t.which===32?(Zn=!0,Xn):null;case`textInput`:return e=t.data,e===Xn&&Zn?null:e;default:return null}}function nr(e,t){if(er)return e===`compositionend`||!Kn&&Qn(e,t)?(e=hn(),mn=pn=fn=null,er=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=wr(n)}}function Er(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Er(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Dr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=It(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=It(e.document)}return t}function Or(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var kr=ln&&`documentMode`in document&&11>=document.documentMode,Ar=null,jr=null,Mr=null,Nr=!1;function Pr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Nr||Ar==null||Ar!==It(r)||(r=Ar,`selectionStart`in r&&Or(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Mr&&Cr(Mr,r)||(Mr=r,r=Md(jr,`onSelect`),0>=o,i-=o,Ei=1<<32-Le(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Fi&&Oi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),Fi&&Oi(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Fi&&Oi(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),Fi&&Oi(a,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===v&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case h:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===v){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===O&&Da(l)===r.type){n(e,r.sibling),c=a(r,o.props),Pa(c,o),c.return=e,e=c;break a}n(e,r);break}else t(e,r);r=r.sibling}o.type===v?(c=pi(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=fi(o.type,o.key,o.props,null,e.mode,c),Pa(c,o),c.return=e,e=c)}return s(e);case g:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}else t(e,r);r=r.sibling}c=gi(o,e.mode,c),c.return=e,e=c}return s(e);case O:return o=Da(o),b(e,r,o,c)}if(ee(o))return _(e,r,o,c);if(M(o)){if(l=M(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Na(o),c);if(o.$$typeof===C)return b(e,r,ra(e,o),c);Fa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=mi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ma=0;var i=b(e,t,n,r);return ja=null,i}catch(t){if(t===xa||t===Ca)throw t;var a=ci(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var La=Ia(!0),Ra=Ia(!1),za=!1;function Ba(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Va(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Ha(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ua(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Vl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=ai(e),ii(e,null,n),t}return ti(e,r,t,n),ai(e)}function Wa(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}function Ga(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ka=!1;function qa(){if(Ka){var e=fa;if(e!==null)throw e}}function Ja(e,t,n,r){Ka=!1;var i=e.updateQueue;za=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var p=s.lane&-536870913,m=p!==s.lane;if(m?(Ul&p)===p:(r&p)===p){p!==0&&p===B&&(Ka=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;p=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,p);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,p=typeof h==`function`?h.call(_,d,p):h,p==null)break a;d=f({},d,p);break a;case 2:za=!0}}p=s.callback,p!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[p]:m.push(p))}else m={lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=p;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Zl|=o,e.lanes=o,e.memoizedState=d}}function Ya(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function Xa(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=F.T,s={};F.T=s,Ps(e,!1,t,n);try{var c=i(),l=F.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ns(e,t,ha(c,r),vu(e)):Ns(e,t,r,vu(e))}catch(n){Ns(e,t,{then:function(){},status:`rejected`,reason:n},vu())}finally{I.p=a,o!==null&&s.types!==null&&(o.types=s.types),F.T=o}}function Cs(){}function ws(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=Ts(e).queue;Ss(e,a,t,te,n===null?Cs:function(){return Es(e),n(r)})}function Ts(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:te,baseState:te,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Fo,lastRenderedState:te},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Fo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function Es(e){var t=Ts(e);t.next===null&&(t=e.alternate.memoizedState),Ns(e,t.next.queue,{},vu())}function Ds(){return na(rp)}function Os(){return Ao().memoizedState}function ks(){return Ao().memoizedState}function As(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=vu();e=Ha(n);var r=Ua(t,e,n);r!==null&&(bu(r,t,n),Wa(r,t,n)),t={cache:la()},e.payload=t;return}t=t.return}}function js(e,t,n){var r=vu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Fs(e)?Is(t,n):(n=ni(e,t,n,r),n!==null&&(bu(n,e,r),Ls(n,t,r)))}function Ms(e,t,n){Ns(e,t,n,vu())}function Ns(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Fs(e))Is(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Sr(s,o))return ti(e,t,i,0),Hl===null&&ei(),!1}catch{}if(n=ni(e,t,i,r),n!==null)return bu(n,e,r),Ls(n,t,r),!0}return!1}function Ps(e,t,n,r){if(r={lane:2,revertLane:_d(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Fs(e)){if(t)throw Error(i(479))}else t=ni(e,n,r,2),t!==null&&bu(t,e,2)}function Fs(e){var t=e.alternate;return e===V||t!==null&&t===V}function Is(e,t){go=ho=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Ls(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,$e(e,n)}}var Rs={readContext:na,use:No,useCallback:So,useContext:So,useEffect:So,useImperativeHandle:So,useLayoutEffect:So,useInsertionEffect:So,useMemo:So,useReducer:So,useRef:So,useState:So,useDebugValue:So,useDeferredValue:So,useTransition:So,useSyncExternalStore:So,useId:So,useHostTransitionStatus:So,useFormState:So,useActionState:So,useOptimistic:So,useMemoCache:So,useCacheRefresh:So};Rs.useEffectEvent=So;var zs={readContext:na,use:No,useCallback:function(e,t){return ko().memoizedState=[e,t===void 0?null:t],e},useContext:na,useEffect:ls,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),ss(4194308,4,hs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ss(4194308,4,e,t)},useInsertionEffect:function(e,t){ss(4,2,e,t)},useMemo:function(e,t){var n=ko();t=t===void 0?null:t;var r=e();if(_o){Ie(!0);try{e()}finally{Ie(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=ko();if(n!==void 0){var i=n(t);if(_o){Ie(!0);try{n(t)}finally{Ie(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=js.bind(null,V,e),[r.memoizedState,e]},useRef:function(e){var t=ko();return e={current:e},t.memoizedState=e},useState:function(e){e=Go(e);var t=e.queue,n=Ms.bind(null,V,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:_s,useDeferredValue:function(e,t){return bs(ko(),e,t)},useTransition:function(){var e=Go(!1);return e=Ss.bind(null,V,e.queue,!0,!1),ko().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=V,a=ko();if(Fi){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),Hl===null)throw Error(i(349));Ul&127||Bo(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,ls(Ho.bind(null,r,o,e),[e]),r.flags|=2048,as(9,{destroy:void 0},Vo.bind(null,r,o,n,t),null),n},useId:function(){var e=ko(),t=Hl.identifierPrefix;if(Fi){var n=Di,r=Ei;n=(r&~(1<<32-Le(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=vo++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[ot]=t,o[st]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Vd(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Nc(t)}}return Rc(t),Pc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Nc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=le.current,Hi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=Ni,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[ot]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Rd(e.nodeValue,n)),e||zi(t,!0)}else e=qd(e).createTextNode(r),e[ot]=t,t.stateNode=e}return Rc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Hi(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[ot]=t}else Ui(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Rc(t),e=!1}else n=Wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(co(t),t):(co(t),null);if(t.flags&128)throw Error(i(558))}return Rc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=Hi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[ot]=t}else Ui(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Rc(t),a=!1}else a=Wi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(co(t),t):(co(t),null)}return co(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Ic(t,t.updateQueue),Rc(t),null);case 4:return fe(),e===null&&Od(t.stateNode.containerInfo),Rc(t),null;case 10:return Xi(t.type),Rc(t),null;case 19:if(ae(lo),r=t.memoizedState,r===null)return Rc(t),null;if(a=(t.flags&128)!=0,o=r.rendering,o===null)if(a)Lc(r,!1);else{if(Xl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=uo(e),o!==null){for(t.flags|=128,Lc(r,!1),e=o.updateQueue,t.updateQueue=e,Ic(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)di(n,e),n=n.sibling;return oe(lo,lo.current&1|2),Fi&&Oi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>ou&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304)}else{if(!a)if(e=uo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,Ic(t,e),Lc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Fi)return Rc(t),null}else 2*Te()-r.renderingStartTime>ou&&n!==536870912&&(t.flags|=128,a=!0,Lc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Rc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=lo.current,oe(lo,a?n&1|2:n&1),Fi&&Oi(t,r.treeForkCount),e);case 22:case 23:return co(t),to(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Rc(t),t.subtreeFlags&6&&(t.flags|=8192)):Rc(t),n=t.updateQueue,n!==null&&Ic(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&ae(_a),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Xi(ca),Rc(t),null;case 25:return null;case 30:return null}throw Error(i(156,t.tag))}function Bc(e,t){switch(ji(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Xi(ca),fe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return L(t),null;case 31:if(t.memoizedState!==null){if(co(t),t.alternate===null)throw Error(i(340));Ui()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(co(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));Ui()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ae(lo),null;case 4:return fe(),null;case 10:return Xi(t.type),null;case 22:case 23:return co(t),to(),e!==null&&ae(_a),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Xi(ca),null;case 25:return null;default:return null}}function Vc(e,t){switch(ji(t),t.tag){case 3:Xi(ca),fe();break;case 26:case 27:case 5:L(t);break;case 4:fe();break;case 31:t.memoizedState!==null&&co(t);break;case 13:co(t);break;case 19:ae(lo);break;case 10:Xi(t.type);break;case 22:case 23:co(t),to(),e!==null&&ae(_a);break;case 24:Xi(ca)}}function Hc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Xu(t,t.return,e)}}function Uc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Xu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Xu(t,t.return,e)}}function Wc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{Xa(t,n)}catch(t){Xu(e,e.return,t)}}}function Gc(e,t,n){n.props=Ks(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Xu(e,t,n)}}function Kc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Xu(e,t,n)}}function qc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Xu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Xu(e,t,n)}else n.current=null}function Jc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Xu(e,e.return,t)}}function Yc(e,t,n){try{var r=e.stateNode;Hd(r,e.type,n,t),r[st]=t}catch(t){Xu(e,e.return,t)}}function Xc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&af(e.type)||e.tag===4}function Zc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Xc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&af(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Qc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=$t));else if(r!==4&&(r===27&&af(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Qc(e,t,n),e=e.sibling;e!==null;)Qc(e,t,n),e=e.sibling}function $c(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&af(e.type)&&(n=e.stateNode),e=e.child,e!==null))for($c(e,t,n),e=e.sibling;e!==null;)$c(e,t,n),e=e.sibling}function el(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Vd(t,r,n),t[ot]=e,t[st]=n}catch(t){Xu(e,e.return,t)}}var tl=!1,nl=!1,rl=!1,il=typeof WeakSet==`function`?WeakSet:Set,al=null;function ol(e,t){if(e=e.containerInfo,Gd=fp,e=Dr(e),Or(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Kd={focusedElem:e,selectionRange:n},fp=!1,al=t;al!==null;)if(t=al,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,al=e;else for(;al!==null;){switch(t=al,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Vd(o,r,n),o[ot]=e,yt(o),r=o;break a;case`link`:var s=Kf(`link`,`href`,a).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=Tr(s,h),v=Tr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,F.T=null,n=mu,mu=null;var o=uu,s=fu;if(lu=0,du=uu=null,fu=0,Vl&6)throw Error(i(331));var c=Vl;if(Vl|=4,Il(o.current),Ol(o,o.current,s,n),Vl=c,ud(0,!1),Fe&&typeof Fe.onPostCommitFiberRoot==`function`)try{Fe.onPostCommitFiberRoot(Pe,o)}catch{}return!0}finally{I.p=a,F.T=r,Ku(e,t)}}function Yu(e,t,n){t=vi(n,t),t=Qs(e.stateNode,t,2),e=Ua(e,t,2),e!==null&&(Xe(e,2),ld(e))}function Xu(e,t,n){if(e.tag===3)Yu(e,e,n);else for(;t!==null;){if(t.tag===3){Yu(t,e,n);break}else if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(cu===null||!cu.has(r))){e=vi(n,e),n=$s(2),r=Ua(t,n,2),r!==null&&(ec(n,r,t,e),Xe(r,2),ld(r));break}}t=t.return}}function Zu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Bl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Jl=!0,i.add(n),e=Qu.bind(null,e,t,n),t.then(e,e))}function Qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Hl===e&&(Ul&n)===n&&(Xl===4||Xl===3&&(Ul&62914560)===Ul&&300>Te()-iu?!(Vl&2)&&Du(e,0):$l|=n,tu===Ul&&(tu=0)),ld(e)}function $u(e,t){t===0&&(t=Je()),e=ri(e,t),e!==null&&(Xe(e,t),ld(e))}function ed(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),$u(e,n)}function td(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),$u(e,n)}function nd(e,t){return xe(e,t)}var rd=null,id=null,ad=!1,od=!1,sd=!1,cd=0;function ld(e){e!==id&&e.next===null&&(id===null?rd=id=e:id=id.next=e),od=!0,ad||(ad=!0,gd())}function ud(e,t){if(!sd&&od){sd=!0;do for(var n=!1,r=rd;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-Le(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,hd(r,a))}else a=Ul,a=Ge(r,r===Hl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ke(r,a)||(n=!0,hd(r,a));r=r.next}while(n);sd=!1}}function dd(){fd()}function fd(){od=ad=!1;var e=0;cd!==0&&Qd()&&(e=cd);for(var t=Te(),n=null,r=rd;r!==null;){var i=r.next,a=pd(r,t);a===0?(r.next=null,n===null?rd=i:n.next=i,i===null&&(id=n)):(n=r,(e!==0||a&3)&&(od=!0)),r=i}lu!==0&&lu!==5||ud(e,!1),cd!==0&&(cd=0)}function pd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Ud(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Df(e,t,n){var r=Ef;if(r&&typeof t==`string`&&t){var i=Rt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),Sf.has(i)||(Sf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Vd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function Of(e){Cf.D(e),Df(`dns-prefetch`,e,null)}function kf(e,t){Cf.C(e,t),Df(`preconnect`,e,t)}function Af(e,t,n){Cf.L(e,t,n);var r=Ef;if(r&&e&&t){var i=`link[rel="preload"][as="`+Rt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Rt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Rt(n.imageSizes)+`"]`)):i+=`[href="`+Rt(e)+`"]`;var a=i;switch(t){case`style`:a=If(e);break;case`script`:a=Bf(e)}xf.has(a)||(e=f({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),xf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Lf(a))||t===`script`&&r.querySelector(J(a))||(t=r.createElement(`link`),Vd(t,`link`,e),yt(t),r.head.appendChild(t)))}}function jf(e,t){Cf.m(e,t);var n=Ef;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Rt(r)+`"][href="`+Rt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Bf(e)}if(!xf.has(a)&&(e=f({rel:`modulepreload`,href:e},t),xf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(J(a)))return}r=n.createElement(`link`),Vd(r,`link`,e),yt(r),n.head.appendChild(r)}}}function Mf(e,t,n){Cf.S(e,t,n);var r=Ef;if(r&&e){var i=vt(r).hoistableStyles,a=If(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Lf(a)))s.loading=5;else{e=f({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=xf.get(a))&&Uf(e,n);var c=o=r.createElement(`link`);yt(c),Vd(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Hf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Nf(e,t){Cf.X(e,t);var n=Ef;if(n&&e){var r=vt(n).hoistableScripts,i=Bf(e),a=r.get(i);a||(a=n.querySelector(J(i)),a||(e=f({src:e,async:!0},t),(t=xf.get(i))&&Wf(e,t),a=n.createElement(`script`),yt(a),Vd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Pf(e,t){Cf.M(e,t);var n=Ef;if(n&&e){var r=vt(n).hoistableScripts,i=Bf(e),a=r.get(i);a||(a=n.querySelector(J(i)),a||(e=f({src:e,async:!0,type:`module`},t),(t=xf.get(i))&&Wf(e,t),a=n.createElement(`script`),yt(a),Vd(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Ff(e,t,n,r){var a=(a=le.current)?q(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=If(n.href),n=vt(a).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=If(n.href);var o=vt(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Lf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),xf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},xf.set(e,n),o||zf(a,e,n,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Bf(n),n=vt(a).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function If(e){return`href="`+Rt(e)+`"`}function Lf(e){return`link[rel="stylesheet"][`+e+`]`}function Rf(e){return f({},e,{"data-precedence":e.precedence,precedence:null})}function zf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Vd(t,`link`,n),yt(t),e.head.appendChild(t))}function Bf(e){return`[src="`+Rt(e)+`"]`}function J(e){return`script[async]`+e}function Vf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Rt(n.href)+`"]`);if(r)return t.instance=r,yt(r),r;var a=f({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),yt(r),Vd(r,`style`,a),Hf(r,n.precedence,e),t.instance=r;case`stylesheet`:a=If(n.href);var o=e.querySelector(Lf(a));if(o)return t.state.loading|=4,t.instance=o,yt(o),o;r=Rf(n),(a=xf.get(a))&&Uf(r,a),o=(e.ownerDocument||e).createElement(`link`),yt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Vd(o,`link`,r),t.state.loading|=4,Hf(o,n.precedence,e),t.instance=o;case`script`:return o=Bf(n.src),(a=e.querySelector(J(o)))?(t.instance=a,yt(a),a):(r=n,(a=xf.get(o))&&(r=f({},n),Wf(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),yt(a),Vd(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Hf(r,n.precedence,e));return t.instance}function Hf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Jf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Yf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=If(r.href),a=t.querySelector(Lf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=$f.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,yt(a);return}a=t.ownerDocument||t,r=Rf(r),(i=xf.get(i))&&Uf(r,i),a=a.createElement(`link`),yt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Vd(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=$f.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var Zf=0;function Qf(e,t){return e.stylesheets&&e.count===0&&tp(e,e.stylesheets),0Zf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function $f(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)tp(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var ep=null;function tp(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ep=new Map,t.forEach(np,e),ep=null,$f.call(e))}function np(e,t){if(!(t.state.loading&4)){var n=ep.get(e);if(n)var r=n.get(null);else{n=new Map,ep.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{process.env.NODE_ENV!==`production`&&(function(){function t(e,t){for(e=e.memoizedState;e!==null&&0=t.length)return i;var a=t[r],o=Bf(e)?e.slice():q({},e);return o[a]=n(e[a],t,r+1,i),o}function r(e,t,n){if(t.length!==n.length)console.warn(`copyWithRename() expects paths of the same length`);else{for(var r=0;rGf?console.error(`Unexpected pop.`):(t!==Wf[Gf]&&console.error(`Unexpected Fiber popped.`),e.current=Uf[Gf],Uf[Gf]=null,Wf[Gf]=null,Gf--)}function N(e,t,n){Gf++,Uf[Gf]=e.current,Wf[Gf]=n,e.current=t}function P(e){return e===null&&console.error(`Expected host context to exist. This error is likely caused by a bug in React. Please file an issue.`),e}function ee(e,t){N(Jf,t,e),N(qf,e,e),N(Kf,null,e);var n=t.nodeType;switch(n){case 9:case 11:n=n===9?`#document`:`#fragment`,t=(t=t.documentElement)&&(t=t.namespaceURI)?Pu(t):WS;break;default:if(n=t.tagName,t=t.namespaceURI)t=Pu(t),t=Fu(t,n);else switch(n){case`svg`:t=GS;break;case`math`:t=KS;break;default:t=WS}}n=n.toLowerCase(),n=Ft(null,n),n={context:t,ancestorInfo:n},M(Kf,e),N(Kf,n,e)}function F(e){M(Kf,e),M(qf,e),M(Jf,e)}function I(){return P(Kf.current)}function te(e){e.memoizedState!==null&&N(Yf,e,e);var t=P(Kf.current),n=e.type,r=Fu(t.context,n);n=Ft(t.ancestorInfo,n),r={context:r,ancestorInfo:n},t!==r&&(N(qf,e,e),N(Kf,r,e))}function ne(e){qf.current===e&&(M(Kf,e),M(qf,e)),Yf.current===e&&(M(Yf,e),xC._currentValue=bC)}function re(){}function ie(){if(Xf===0){Zf=console.log,Qf=console.info,$f=console.warn,ep=console.error,tp=console.group,np=console.groupCollapsed,rp=console.groupEnd;var e={configurable:!0,enumerable:!0,value:re,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}Xf++}function ae(){if(Xf--,Xf===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:q({},e,{value:Zf}),info:q({},e,{value:Qf}),warn:q({},e,{value:$f}),error:q({},e,{value:ep}),group:q({},e,{value:tp}),groupCollapsed:q({},e,{value:np}),groupEnd:q({},e,{value:rp})})}0>Xf&&console.error(`disabledDepth fell below zero. This is a bug in React. Please file an issue.`)}function oe(e){var t=Error.prepareStackTrace;if(Error.prepareStackTrace=void 0,e=e.stack,Error.prepareStackTrace=t,e.startsWith(`Error: react-stack-top-frame -`)&&(e=e.slice(29)),t=e.indexOf(` -`),t!==-1&&(e=e.slice(t+1)),t=e.indexOf(`react_stack_bottom_frame`),t!==-1&&(t=e.lastIndexOf(` -`,t)),t!==-1)e=e.slice(0,t);else return``;return e}function se(e){if(ip===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ip=t&&t[1]||``,ap=-1)`:-1o||l[a]!==u[o]){var d=` -`+l[a].replace(` at new `,` at `);return e.displayName&&d.includes(``)&&(d=d.replace(``,e.displayName)),typeof e==`function`&&sp.set(e,d),d}while(1<=a&&0<=o);break}}}finally{op=!1,J.H=r,ae(),Error.prepareStackTrace=n}return l=(l=e?e.displayName||e.name:``)?se(l):``,typeof e==`function`&&sp.set(e,l),l}function le(e,t){switch(e.tag){case 26:case 27:case 5:return se(e.type);case 16:return se(`Lazy`);case 13:return e.child!==t&&t!==null?se(`Suspense Fallback`):se(`Suspense`);case 19:return se(`SuspenseList`);case 0:case 15:return ce(e.type,!1);case 11:return ce(e.type.render,!1);case 1:return ce(e.type,!0);case 31:return se(`Activity`);default:return``}}function ue(e){try{var t=``,n=null;do{t+=le(e,n);var r=e._debugInfo;if(r)for(var i=r.length-1;0<=i;i--){var a=r[i];if(typeof a.name==`string`){var o=t;a:{var s=a.name,c=a.env,l=a.debugLocation;if(l!=null){var u=oe(l),d=u.lastIndexOf(` -`),f=d===-1?u:u.slice(d+1);if(f.indexOf(s)!==-1){var p=` -`+f;break a}}p=se(s+(c?` [`+c+`]`:``))}t=o+p}}n=e,e=e.return}while(e);return t}catch(e){return` -Error generating stack: `+e.message+` -`+e.stack}}function de(e){return(e=e?e.displayName||e.name:``)?se(e):``}function fe(){if(cp===null)return null;var e=cp._debugOwner;return e==null?null:k(e)}function pe(){if(cp===null)return``;var e=cp;try{var t=``;switch(e.tag===6&&(e=e.return),e.tag){case 26:case 27:case 5:t+=se(e.type);break;case 13:t+=se(`Suspense`);break;case 19:t+=se(`SuspenseList`);break;case 31:t+=se(`Activity`);break;case 30:case 0:case 15:case 1:e._debugOwner||t!==``||(t+=de(e.type));break;case 11:e._debugOwner||t!==``||(t+=de(e.type.render))}for(;e;)if(typeof e.tag==`number`){var n=e;e=n._debugOwner;var r=n._debugStack;if(e&&r){var i=oe(r);i!==``&&(t+=` -`+i)}}else if(e.debugStack!=null){var a=e.debugStack;(e=e.owner)&&a&&(t+=` -`+oe(a))}else break;var o=t}catch(e){o=` -Error generating stack: `+e.message+` -`+e.stack}return o}function L(e,t,n,r,i,a,o){var s=cp;me(e);try{return e!==null&&e._debugTask?e._debugTask.run(t.bind(null,n,r,i,a,o)):t(n,r,i,a,o)}finally{me(s)}throw Error(`runWithFiberInDEV should never be called in production. This is a bug in React.`)}function me(e){J.getCurrentStack=e===null?null:pe,lp=!1,cp=e}function he(e){return typeof Symbol==`function`&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||`Object`}function ge(e){try{return _e(e),!1}catch{return!0}}function _e(e){return``+e}function R(e,t){if(ge(e))return console.error("The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.",t,he(e)),_e(e)}function ve(e,t){if(ge(e))return console.error("The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.",t,he(e)),_e(e)}function ye(e){if(ge(e))return console.error(`Form field values (value, checked, defaultValue, or defaultChecked props) must be strings, not %s. This value must be coerced to a string before using it here.`,he(e)),_e(e)}function be(e){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`)return!1;var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t.isDisabled)return!0;if(!t.supportsFiber)return console.error(`The installed version of React DevTools is too old and will not work with the current version of React. Please update React DevTools. https://react.dev/link/react-devtools`),!0;try{wp=t.inject(e),Tp=t}catch(e){console.error(`React instrumentation encountered an error: %o.`,e)}return!!t.checkDCE}function xe(e){if(typeof Sp==`function`&&Cp(e),Tp&&typeof Tp.setStrictMode==`function`)try{Tp.setStrictMode(wp,e)}catch(e){Ep||(Ep=!0,console.error(`React instrumentation encountered an error: %o`,e))}}function Se(e){return e>>>=0,e===0?32:31-(kp(e)/Ap|0)|0}function Ce(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return console.error(`Should have found matching lanes. This is a bug in React.`),e}}function we(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ce(n))):i=Ce(o):i=Ce(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ce(n))):i=Ce(o)):i=Ce(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Te(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ee(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return console.error(`Should have found matching lanes. This is a bug in React.`),-1}}function De(){var e=Np;return Np<<=1,!(Np&62914560)&&(Np=4194304),e}function Oe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function ke(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Ae(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0."))}):t.dangerouslySetInnerHTML==null||am||(am=!0,console.error("Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected."))),t.selected==null||rm||(console.error("Use the `defaultValue` or `value` props on must be a scalar value if `multiple` is false.%s",n,ft())}}t.value===void 0||t.defaultValue===void 0||om||(console.error(`Select elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled select element and remove one of these props. More info: https://react.dev/link/controlled-components`),om=!0)}function ht(e,t){t.value===void 0||t.defaultValue===void 0||cm||(console.error(`%s contains a textarea with both value and defaultValue props. Textarea elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled textarea and remove one of these props. More info: https://react.dev/link/controlled-components`,fe()||`A component`),cm=!0),t.children!=null&&t.value==null&&console.error("Use the `defaultValue` or `value` props instead of setting children on