chem-generic-ui 0.2.21 → 0.2.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle.js +1 -1
- package/dist/bundle.js.map +1 -1
- package/package.json +1 -1
package/dist/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","mappings":"CAAA,SAA2CA,EAAMC,GAChD,GAAsB,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,EAAQG,QAAQ,SAAUA,QAAQ,mBAAoBA,QAAQ,UAAWA,QAAQ,kCAAmCA,QAAQ,uCAAwCA,QAAQ,gBAAiBA,QAAQ,kBAAmBA,QAAQ,aAAcA,QAAQ,qCAAsCA,QAAQ,mBAAoBA,QAAQ,6BAC7U,GAAqB,mBAAXC,QAAyBA,OAAOC,IAC9CD,OAAO,CAAC,QAAS,kBAAmB,SAAU,iCAAkC,sCAAuC,SAAU,WAAY,YAAa,oCAAqC,YAAa,uBAAwBJ,OAChO,CACJ,IACQM,EADJC,EAAuB,iBAAZN,QAAuBD,EAAQG,QAAQ,SAAUA,QAAQ,mBAAoBA,QAAQ,UAAWA,QAAQ,kCAAmCA,QAAQ,uCAAwCA,QAAQ,gBAAiBA,QAAQ,kBAAmBA,QAAQ,aAAcA,QAAQ,qCAAsCA,QAAQ,mBAAoBA,QAAQ,wBAA0BH,EAAQD,EAAY,MAAGA,EAAK,mBAAoBA,EAAQ,EAAGA,EAAK,kCAAmCA,EAAK,uCAAwCA,EAAa,OAAGA,EAAe,SAAGA,EAAK,aAAcA,EAAK,qCAAsCA,EAAgB,UAAGA,EAAK,wBACxoB,IAAQO,KAAKC,GAAuB,iBAAZN,QAAuBA,QAAUF,GAAMO,GAAKC,EAAED,IAPxE,CASGE,MAAM,SAASC,kCAAmCC,kCAAmCC,kCAAmCC,kCAAmCC,kCAAmCC,iCAAkCC,kCAAmCC,kCAAmCC,kCAAmCC,kCAAmCC,mCAC/W,O,iNCPuB,SAAjBC,IACJ,M,y0BAAA,IAA0BC,EAAAA,UAAS,IAA5BC,EAAP,KAAcC,EAAd,KACA,OACE,6BACE,yCAEGD,EACA,IAHH,SAMA,kBAAC,EAAAE,OAAD,CAAQC,QAAQ,UAAUC,QAAS,kBAAMH,EAASD,EAAQ,KAA1D,a,gNAVAF,EAAAA,kC,EAiBSA,EAAf,O,6FAjBMA,EAAAA,iBAAAA,wF,quGCGeO,mBAAAA,SAAAA,Y,kQACnB,cACuBC,KAAKC,MAAlBC,UACCF,KAAKG,YAAYC,MAAMC,U,oBAGlC,WAAS,WACP,EAA+BL,KAAKC,MAA5BK,EAAR,EAAQA,UAAWC,EAAnB,EAAmBA,QACnB,OACE,2DAAC,6CAAAC,MAAD,CAAOC,SAAS,SAASC,KAAMJ,EAAWK,OAAQ,kBAAMJ,MACtD,2DAAC,6CAAAC,MAAA,OAAD,CAAcI,aAAAA,GAAY,2DAAC,6CAAAJ,MAAA,MAAD,yBAC1B,2DAAC,6CAAAA,MAAA,KAAD,CAAYK,MAAO,CAAEC,SAAU,SAC7B,kEAAKC,UAAU,aACb,2DAAC,6CAAAC,KAAD,CAAMC,YAAAA,EAAWF,UAAU,cACzB,2DAAC,6CAAAG,UAAD,CAAWC,UAAU,wBACnB,2DAAC,6CAAAC,WAAD,KACE,2DAAC,6CAAAA,WAAA,MAAD,aACA,2DAAC,6CAAAC,YAAD,CAAaC,KAAK,OAAOC,SAAU,SAACC,GAAUC,EAAKtB,YAAcqB,MAEnE,kEAAKT,UAAU,QAAf,6CAEE,sEAFF,uEAIE,sEAJF,+EASJ,2DAAC,6CAAAG,UAAD,KACE,2DAAC,6CAAAtB,OAAD,CACEC,QAAQ,UACRC,QAAS,kBAAM2B,EAAKC,iBAFtB,6CAKE,gEAAGX,UAAU,cAAcY,cAAY,UAN3C,IASE,2DAAC,6CAAA/B,OAAD,CAAQC,QAAQ,UAAUC,QAAS,kBAAMS,MAAzC,gB,8IArCOR,CAA2B6B,mCAAAA,WA8ChD7B,mBAAmB8B,UAAY,CAC7BvB,UAAWwB,kDAAAA,KAAAA,WACXvB,QAASuB,kDAAAA,KAAAA,WACT5B,SAAU4B,kDAAAA,KAAAA,Y,4GAjDS/B,mBAAAA,qBAAAA,4F,s8GCEAgC,aAAAA,SAAAA,Y,oOACnB,WACE,IAAQC,GAAR,EAAuChC,KAAKC,OAApC+B,QAAS7D,EAAjB,EAAiBA,KAAM8D,EAAvB,EAAuBA,YACjBC,EAAQlC,KAAKmC,eAAe/B,MAAMC,OAClC+B,EAAY,CAAEC,IAAKH,EAAOI,MAAOJ,IAIjCK,GADAC,GAAAA,EAAOC,oCAAAA,WAAUT,KACIQ,EAAKE,qBAC3BF,EAAKE,oBAAoBC,eAAexE,IACxCqE,EAAKE,oBAAoBC,eAAexE,GAAMyE,SAAY,IACrDC,KAAKT,GAEfH,EAAY9D,EAAM+D,EAAOK,K,oBAG3B,WAAS,WACCP,GAAR,EAAoChC,KAAKC,OAAjC+B,QAAS7D,EAAjB,EAAiBA,KAAM2E,EAAvB,EAAuBA,SACvB,OACE,2DAAC,6CAAA5B,UAAD,CAAW6B,OAAO,KAAKlC,MAAO,CAAEmC,aAAc,QAASC,QAAS,iBAC9D,2DAAC,6CAAA7B,WAAD,KACE,2DAAC,6CAAAA,WAAA,OAAD,QACG8B,iDAAAA,GAAmBlB,EAAS,SAAU7D,EAAM,GAAI2E,IAEnD,2DAAC,6CAAAzB,YAAD,CACEC,KAAK,OACL6B,KAAK,kBACL5B,SAAU,SAACC,GAAUC,EAAKU,eAAiBX,GAC3C4B,YAAY,mBACZL,OAAO,OAET,2DAAC,6CAAA3B,WAAA,OAAD,KACE,2DAAC,qDAAD,CACEiC,IAAI,iBACJC,QAAS,kBAAM7B,EAAKC,gBACpB6B,GAAG,UACHC,KAAK,Y,wIApCEzB,CAAqBH,mCAAAA,WA6C1CG,aAAaF,UAAY,CACvBG,QAASF,kDAAAA,OAAAA,WACT3D,KAAM2D,kDAAAA,OAAAA,WACNgB,SAAUhB,kDAAAA,KAAAA,WACVG,YAAaH,kDAAAA,KAAAA,Y,4GAjDMC,aAAAA,eAAAA,sF,+1DCgBL,SAAV0B,EAAWxD,GACf,IACE+B,EACE/B,EADF+B,QAASK,EACPpC,EADOoC,IAAKlE,EACZ8B,EADY9B,KAAMmE,EAClBrC,EADkBqC,MAAOQ,EACzB7C,EADyB6C,SAE7B,OACE,kBAAC,EAAA5B,UAAD,CAAW6B,OAAO,KAAK5B,UAAS,mCAA8BkB,IAC5D,kBAAC,EAAAjB,WAAD,KACE,kBAAC,EAAAA,WAAA,MAAD,KAAmBiB,GACnB,kBAAC,EAAAhB,YAAD,CACEC,KAAK,OACL6B,KAAK,WACLO,aAAcpB,EACdqB,SAAU,SAAAC,GAAK,OAAIC,EAAoBD,EAAOvB,EAAKlE,EAAM6D,EAASc,MAEpE,kBAAC,EAAA1B,WAAA,OAAD,QACG8B,EAAAA,GAAmBlB,EAAS,SAAUK,EAAKlE,EAAM2E,MAOlC,SAApBgB,EAAqB7D,GACzB,IACE+B,EACE/B,EADF+B,QAASc,EACP7C,EADO6C,SAAUiB,EACjB9D,EADiB8D,YAAa9B,EAC9BhC,EAD8BgC,YAG3B+B,GAAP,OAA0CvE,EAAAA,WAAAA,GAA1C,OAAsBwE,EAAtB,KAEMC,EAAU,GAuChB,OAtCAC,OAAOC,KAAKpC,EAAQU,oBAAoBC,gBAAgB0B,SAAQ,SAAClG,GAC/D,IAEMyE,GAFYZ,EAAQU,oBAAoBC,eAAexE,IAC1D6D,EAAQU,oBAAoBC,eAAexE,GAAMyE,SAAY,IACvC0B,KAAI,SAAAC,GAAC,OAC5B,yBAAKlC,IAAG,UAAKkC,EAAElC,IAAP,YAAclE,GAAQ0C,MAAO,CAAE2D,UAAW,SAC/Cf,EAAQ,CACPzB,QAAAA,EAASK,IAAKkC,EAAElC,IAAKlE,KAAAA,EAAMmE,MAAOiC,EAAEjC,MAAOQ,SAAAA,QAK3C2B,EACJ,kBAAC,EAAAC,MAAD,CAAO3D,UAAU,2BAA2B4D,iBAAAA,EAAgBtC,IAAG,yBAAoBlE,IACjF,kBAAC,EAAAuG,MAAA,QAAD,CAAe3D,UAAU,0BACvB,kBAAC,EAAA2D,MAAA,MAAD,CAAaE,QAAAA,GAAQzG,GACrB,6BACE,kBAAC,IAAD,CACE6D,QAASA,EACT7D,KAAMA,EACN8D,YAAaA,EACba,SAAUA,MAIhB,kBAAC,EAAA4B,MAAA,SAAD,KAAgB,kBAAC,EAAAA,MAAA,KAAD,KAAa9B,KAGjCsB,EAAQrB,KAAK4B,MAYb,6BACE,kBAAC,EAAAC,MAAD,KACE,kBAAC,EAAAA,MAAA,QAAD,KACE,kBAAC,EAAAA,MAAA,MAAD,oBAEE,kBAAC,IAAD,CACErB,IAAI,sBACJC,QAAS,kBAAMW,GAAAA,IACfV,GAAG,UACHC,KAAK,KACLqB,IAAI,sBACJC,OAAO,mBAIb,kBAAC,EAAAJ,MAAA,KAAD,KAAY,6BAAOR,KAErB,kBAAC,IAAD,CACE5D,UAAW0D,EACXzD,QAAS,kBAAM0D,GAAAA,IACf/D,SA5BkB,SAAC6E,GACvB,IAAMC,EAAM,EAAH,GAAQhD,EAAQU,oBAAoBC,gBAC7CqC,EAAID,GAAc,GAClBhB,EAAYgB,EAAYC,GACxBf,GAAAA,O,kNA7EEJ,EAAsB,SAACD,EAAOqB,EAAWC,EAAWlD,EAASc,GAC3DF,EAAWZ,GAAWA,EAAQU,qBAC/BV,EAAQU,oBAAoBC,eAAeuC,IAC3ClD,EAAQU,oBAAoBC,eAAeuC,GAAWtC,SAAY,GAFvE,IAGMuC,GAAAA,EAAMC,EAAAA,WAAUxC,GAAS,SAAAyC,GAAC,OAAIA,EAAEhD,MAAQ4C,KACxCK,EAAK,GACXA,EAAGjD,IAAM4C,EACTK,EAAGhD,MAAQsB,EAAM2B,OAAOnF,MACxBwC,EAAQ4C,OAAOL,EAAK,EAAGG,GACvBxC,EAASd,I,EAyBL8B,EAAAA,sDAyENA,EAAkBjC,UAAY,CAC5BG,QAASF,IAAAA,OAAAA,WACTgB,SAAUhB,IAAAA,KAAAA,WACViC,YAAajC,IAAAA,KACbG,YAAaH,IAAAA,MAGfgC,EAAkB2B,aAAe,CAAE1B,YAAa,aAAU9B,YAAa,c,EAExD6B,EAAf,O,6FApHMD,EAAAA,sBAAAA,2F,WAYAJ,EAAAA,UAAAA,2F,WAsBAK,EAAAA,oBAAAA,2F,iPC3CqB,SAArBZ,EAAsBlB,EAAS0D,EAASC,EAAQC,EAASC,GAApC,OACzB,kBAAC,IAAD,CACE7D,QAASA,EACT0D,QAASA,EACTC,OAAQA,EACRC,QAASA,EACTC,UAAWA,I,0NAIA3C,EAAf,O,6FAVMA,EAAAA,qBAAAA,4F,kPCGc,SAAd4C,EAAe7F,GACnB,IAAQS,EAAwBT,EAAxBS,KAAMqF,EAAkB9F,EAAlB8F,MACd,OADqBC,EAAW/F,EAAX+F,OAEnB,kBAAC,EAAAxF,MAAD,CAAOE,KAAMA,EAAMqC,OAAO,QAAQpC,OAAQqF,GACxC,kBAAC,EAAAxF,MAAA,OAAD,CAAcI,aAAAA,GACZ,kBAAC,EAAAJ,MAAA,MAAD,KAAcuF,IAEhB,kBAAC,EAAAvF,MAAA,KAAD,iBAKc,SAAdyF,EAAehG,GACnB,IACES,EACET,EADFS,KAAMsB,EACJ/B,EADI+B,QAASkE,EACbjG,EADaiG,MAAOF,EACpB/F,EADoB+F,OAAQG,EAC5BlG,EAD4BkG,OAEhC,IAAKzF,EAAM,OAAO,KACVyC,EAAgCnB,EAAhCmB,KAAR,IAAciD,EAA0BpE,EAA1BoE,UAERL,GAAQM,GADKC,EADqBtE,EAAfsE,aACQA,EAAWC,QAAUD,EAAWC,OAAOL,IAChD5D,MAGxB,IAAIkE,GADCA,EADKJ,GAAaA,EAAUK,UAAYL,EAAUK,SAAS,GAAGA,UAAa,IACxEC,QAAO,SAAAC,GAAC,OAAKA,EAAEC,WAChBC,OAAS,IAAMd,EACpB,OACE,kBAACD,EAAD,CACEpF,KAAMA,EACNqF,MAAK,4CAAuCA,GAC5CC,OAAQA,IAKd,IAAMc,EAAWT,EAAUG,IAAO,GA6B5BO,EAAO,GAKb,OAJAP,EAAGnC,SAAQ,SAAC2C,GA7BA,IAAAA,EA8BVD,EAAKlE,MA9BKmE,EA8BIA,EA7Bd,6BACE,yBAAKjG,UAAU,0CACZiG,EAAI7D,MAEP,yBAAKpC,UAAU,0CACb,kBAAC,EAAAnB,OAAD,CACEC,QAAQ,UACRkD,OAAO,SACPhC,UAAU,kBACVjB,QAAS,kBAAMqG,EAAOa,EAAIC,GAAIf,EAAOgB,EAAAA,EAAAA,cACrCC,SAAUL,EAAQM,SAASJ,EAAIC,KAE9BC,EAAAA,EAAAA,aAEH,kBAAC,EAAAtH,OAAD,CACEC,QAAQ,SACRkD,OAAO,SACPhC,UAAU,kBACVjB,QAAS,kBAAMqG,EAAOa,EAAIC,GAAIf,EAAOgB,EAAAA,EAAAA,gBACrCC,UAAWL,EAAQM,SAASJ,EAAIC,KAE/BC,EAAAA,EAAAA,sBAYP,kBAAC,EAAA1G,MAAD,CAAOE,KAAMA,EAAMC,OAAQqF,GACzB,kBAAC,EAAAxF,MAAA,OAAD,CAAcI,aAAAA,GACZ,kBAAC,EAAAJ,MAAA,MAAD,KACE,2BAAI2C,GACH,IAFH,WAIE,6BAJF,iCAMG,IACD,2BAAI4C,KAGR,kBAAC,EAAAvF,MAAA,KAAD,KACE,yBAAKK,MAAO,CAAEwG,UAAW,OAAQvG,SAAU,SACzC,yBAAKC,UAAU,gBAAgBgG,M,uPAOzCd,EAAYpE,UAAY,CACtBnB,KAAMoB,IAAAA,KAAAA,WACNE,QAASF,IAAAA,OAAAA,WACToE,MAAOpE,IAAAA,OAAAA,WACPkE,OAAQlE,IAAAA,KAAAA,WACRqE,OAAQrE,IAAAA,KAAAA,Y,EAGKmE,EAAf,O,6FAhGMH,EAAAA,cAAAA,uF,WAYAG,EAAAA,cAAAA,uF,67GCNAqB,iBAAAA,SAAAA,Y,iFACJ,0BAAYrH,GAAO,+CACjB,mBAAMA,IACDsH,aAAe,EAAKA,aAAaC,KAAlB,2BAFH,E,gEAKnB,WACE,IAEQC,EAFAC,GAAR,EAAuC1H,KAAKC,OAApCyH,MAAOC,EAAf,EAAeA,UAAWhE,EAA1B,EAA0BA,SACtB+D,EAAME,qBACFH,GAAAA,EAAWhF,oCAAAA,WAAUiF,EAAME,qBACxBC,WAAaH,EAAMI,KAC5B3D,OAAOC,KAAKqD,EAASlB,QAAQlC,SAAQ,SAAAhC,GACnC,IAAM0F,EAAWN,EAASlB,OAAOlE,IAAQ,GACnC2F,EAAaL,EAAUrB,WAAWC,OAAOlE,IAAQsF,EAAUrB,WAAWC,OAAOlE,GAAK4F,QAAW,IAClGF,EAASE,QAAU,IAAI5D,SAAQ,SAACE,EAAGY,GAClC,IAEQ+C,EAaEC,EACAC,EAhBJC,GAAAA,EAASjD,oCAAAA,WAAU4C,GAAW,SAAA3C,GAAC,OAAIA,EAAEiD,QAAU/D,EAAE+D,SACzC,GAAVD,IAEIE,EAAU,QADVL,EAASP,EAAUrB,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQjI,OAE3D,CAAC,SAAU,OAAQ,WAAY,iBAAiBgH,SAASK,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,QAC5FmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAoB,cAAZmI,EAA0BL,EAAOM,WAAa,IAE3C,YAA1Cf,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAEnCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAqB,cAAZmI,GAAuC,YAAZA,GAAyBE,MAAMP,GAAW,EAAIQ,SAASR,EAAQ,KAExF,aAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OACnCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAoB,cAAZmI,IAAAA,EAA0BI,0CAAAA,IAAOT,IAE9B,mBAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAE7B8G,GADAD,GAAAA,EAAQS,0CAAAA,IAASnB,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK0D,gBACvCC,MAAK,SAAAC,GAAC,OAAIA,EAAE1G,MAAQsF,EAAUrB,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQW,gBACrFvB,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK6D,aAAgBZ,GAAMA,EAAG/F,KAAQ8F,EAAM,GAAG9F,IAC3EoF,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,OAAAA,EAAQ6I,0CAAAA,IAAMf,WAKvDP,EAAUrB,WAAamB,EACvBE,EAAUuB,iBAAmBxB,EAAMT,GACnCU,EAAUwB,UAAYzB,EAAM0B,YAC5BzB,EAAU0B,YAAc3B,EAAMpF,MAC9BqF,EAAU2B,SAAAA,EACV3F,EAASgE,IAEThE,OAAAA,K,qCAIJ,SAAwBgE,GACtB,IAAQhE,EAAa3D,KAAKC,MAAlB0D,SAYR,OAXM4F,EACJ,2DAAC,6CAAD,CACEvH,QAAS2F,EACT7E,SAAUa,EACV6F,UAAW,GACXC,MAAO,EACPC,WAAAA,EACAC,UAAAA,EACAC,YAAAA,IAGI,kEAAK/I,MAAO,CAAEgJ,OAAQ,QAAUN,K,oBAG1C,WAAS,WACCO,GAAR,EAAoC9J,KAAKC,OAAjC6J,OAAQnC,EAAhB,EAAgBA,UAAWoC,EAA3B,EAA2BA,KAC3B,OAAID,GAA4C,IAAlC3F,OAAOC,KAAKuD,GAAWd,QAAgBkD,GAAiB,KAATA,EAEzD,2DAAC,6CAAArF,MAAD,CAAO3D,UAAU,gBACf,2DAAC,6CAAA2D,MAAA,KAAD,CAAY7D,MAAO,CAAEmJ,SAAU,WAAYC,UAAW,IAAKC,UAAW,UACnElK,KAAKmK,wBAAwBxC,GAC9B,mEAAM5G,UAAU,mBACd,mEAAMA,UAAU,cAAhB,QACA,sEAFF,0BAIG,OACAqJ,0CAAAA,IAAgBL,GACjB,sEANF,2BAQG,IACApC,EAAU0B,aAEb,2DAAC,6CAAAgB,cAAD,CAAetJ,UAAU,cACvB,2DAAC,6CAAAuJ,eAAD,CAAgBC,UAAU,MAAMC,QAAS,2DAAC,6CAAAC,QAAD,CAASxD,GAAG,mBAAZ,yCACvC,2DAAC,6CAAArH,OAAD,CAAQmD,OAAO,SAASlD,QAAQ,SAASC,QAAS,kBAAM,EAAKyH,iBAA7D,cAOL,O,4IA5FLD,CAAyB1F,mCAAAA,W,UAgG/B0F,iBAAiBzF,UAAY,CAC3BiI,OAAQhI,kDAAAA,KAAAA,WACRiI,KAAMjI,kDAAAA,OACN6F,UAAW7F,kDAAAA,OACX4F,MAAO5F,kDAAAA,OACP6B,SAAU7B,kDAAAA,KAAAA,YAEZwF,iBAAiB7B,aAAe,CAAEsE,KAAM,GAAIpC,UAAW,GAAID,MAAO,IAGnDJ,kBAAf,+B,6GA1GMA,iBAAAA,mBAAAA,wF,0+DCQU,SAAVoD,EAAWC,EAAOC,GAAR,cAAyBD,GAAUC,GAE9B,SAAfC,EAAgB5K,GACpB,IAAO0K,GAAP,OAA0BG,EAAAA,GAAuBJ,EAASK,GAA1D,OAAcC,EAAd,KAEEhJ,EACE/B,EADF+B,QAASc,EACP7C,EADO6C,SAAU0G,EACjBvJ,EADiBuJ,UAAWC,EAC5BxJ,EAD4BwJ,MAAOC,EACnCzJ,EADmCyJ,UAAWE,EAC9C3J,EAD8C2J,WAAYD,EAC1D1J,EAD0D0J,SAAUsB,EACpEhL,EADoEgL,OAAQC,EAC5EjL,EAD4EiL,SAGhF,GAH0FC,EACtFlL,EADsFkL,OAGtD,IAAhChH,OAAOC,KAAKpC,GAAS6E,OAAc,OAAO,KAE9C,IAyQAL,GAAKA,GADKJ,EAxQYpE,EAAdoE,YAwQeA,EAAUK,UAAYL,EAAUK,SAAS,GAAGA,UAAa,IACxEC,QAAO,SAAAC,GAAC,OAAKA,EAAEC,UAwCvB,OAtCMwE,EAAqB,CACzB7E,OAAQvE,EAAQsE,WAAWC,OAC3B3D,QAASZ,EAAQ4F,mBAAmBjF,gBAAkB,GACtD0I,WAhIwB,SAACzH,EAAO0E,EAAOpC,GAAyB,IA3F/CtC,EAGP0C,EAGFgF,EAKIC,EA3BarF,EAInBsF,EArCWC,EAASC,EAClBnF,EAGFoF,EACAC,EACFC,EAsI0CvK,EAAkB,uDAAX,OAC7CgF,EAAetE,EAAfsE,WACJlG,EAAQ,GACR0L,GAAAA,EACJ,OAAQxK,GACN,IAAK,aAjJUmK,EAkJHnD,EAlJYoD,EAkJLxF,EAjJbK,EAAWvE,EAAQsE,WAAnBC,OAGFoF,GAFFI,GAAAA,EAAeC,EAAAA,QAAOzF,EAAQ,CAAC,WAAY,iBAEnBnB,WAAU,SAAA6G,GAAC,OAAIA,EAAE5J,MAAQoJ,KAC/CG,EAASG,EAAaJ,GACxBE,EAASE,EAAa3G,WAAU,SAAA6G,GAAC,OAAIA,EAAE5J,MAAQqJ,KACjB,IAA9BQ,KAAKC,IAAIR,EAASE,GACpBE,GAAAA,EAAeK,EAAAA,IAAWL,EAAcJ,EAAQE,IAGhDE,EAAavG,OAAOmG,EAAQ,GAE5BE,EAASE,EAAa3G,WAAU,SAAA6G,GAAC,OAAIA,EAAE5J,MAAQqJ,KACzCW,EAASN,EAAaF,GAE5BD,EAAO5B,SAAWqC,EAAOrC,SACzB4B,EAAOU,aAAeD,EAAOC,aAAe,GAAK,EAEjDP,EAAavG,OAAOqG,EAAS,EAAG,EAAGD,IAGrCG,EAAarF,QAAO,SAAAuF,GAAC,OAAIA,EAAEjC,WAAa4B,EAAO5B,YAAU1F,KAAI,SAAC2H,EAAG9G,GAG/D,OADAoH,EAAGD,YAAcnH,EACVoH,KAEHC,GAAAA,EAAKC,EAAAA,IAAeV,GAC1B/J,EAAQsE,WAAWC,OAASiG,EAC5BxK,EAAQsH,SAAAA,EACRxG,EAASd,GAqHL8J,GAAAA,EACA,MACF,IAAK,eACHlI,EAAM8I,kBArHexG,EAsHFA,EArHfK,EAAWvE,EAAQsE,WAAnBC,OAEFoG,GADAZ,GAAAA,EAAeC,EAAAA,QAAOzF,EAAQ,CAAC,WAAY,iBAChBnB,WAAU,SAAA6G,GAAC,OAAIA,EAAE5J,MAAQ6D,EAAM7D,OAC1DmJ,EAAWO,EAAaY,GAC9BZ,EAAavG,OAAOmH,EAAa,GACjCZ,EAAarF,QAAO,SAAAuF,GAAC,OAAIA,EAAEjC,WAAawB,EAASxB,YAAU1F,KAAI,SAAC2H,EAAG9G,GAGjE,OADAoH,EAAGD,YAAcnH,EACVoH,KAETvK,EAAQsE,WAAWC,QAAAA,EAASkG,EAAAA,IAAeV,GAC3C/J,EAAQsH,SAAAA,EACRxG,EAASd,GA0GL8J,GAAAA,EACA,MACF,IAAK,cACHlI,EAAM8I,kBAEN1B,EAAS,CAAE4B,gBADXd,GAAAA,GACgCe,iBAAkB3G,EAAM7D,MACxD,MACF,IAAK,YACHuB,EAAM8I,kBAEN1B,EAAS,CAAE8B,eADXhB,GAAAA,GAC+Be,iBAAkB3G,EAAM7D,MACvD,MACF,IAAK,UACHyJ,GAAAA,EApHoB5F,EAqHHA,GApHf9F,GADWwD,EAqHHA,GApHQA,EAAMxD,MAAQ,QAE1BkG,EAAmCtE,EAAnCsE,WAAYsB,EAAuB5F,EAAvB4F,mBAEhBmF,GAAAA,EAEA3M,KADEkL,EAAWhF,EAAWC,OAAX,UAAqBL,IAAS+B,OAAOa,MAAK,SAAAmD,GAAC,MAAgB,aAAZA,EAAE3D,SAAsBlI,SAElFkL,GAAyB,KAAbA,GAAmBA,IAAalL,IAC9C2M,GAAAA,GAEMxB,EAAS3D,EAAT2D,KACFyB,EAAW1G,EAAWC,OAAX,UAAqBL,KAEhC+G,GAAAA,EAAUC,EAAAA,IAAa3B,EAAMnL,EAAO8F,EAAO8G,EAASV,gBAExDhG,EAAWC,QAAAA,EAAS4G,EAAAA,IAAY7G,EAAWC,OAAQL,EAAO+G,IAExDF,IACFzG,EAAWC,QAAAA,EAAS6G,EAAAA,IAAiB9G,EAAWC,OAAQL,GAAAA,EAAOmH,EAAAA,IAAU9B,EAAMD,KAGjFhF,EAAWC,OAAX,UAAqBL,IAAS+B,OAAOa,MAAK,SAAAmD,GAAC,MAAgB,aAAZA,EAAE3D,SAAsBlI,MAAQA,EAC/E4B,EAAQsE,WAAaA,EACrBtE,EAAQsH,SAAAA,EAERxG,EAASd,KA4FT,MACF,IAAK,WACH5B,EAAQwD,EAAM2B,OAAO+H,QACrB,MACF,IAAK,gBAEElN,EADDwD,EAAM2B,OACK3B,EAAM2B,OAAhBnF,MAEKwD,EAEV,MACF,IAAK,SACH,IAIQ2J,EAJFC,GAAAA,EAAOC,EAAAA,IAAYnH,EAAY1C,EAAO0E,EAAOpC,GACnD9F,EAAQoN,EAAK,GACQ,EAAjBA,EAAK,GAAG3G,SAAY7E,EAAQ0L,OAAS1L,EAAQ0L,OAAS,IAAIC,OAAOH,EAAK,KACxD,EAAdA,EAAK3G,QAEQ,IADT0G,GAAAA,EAAUnI,EAAAA,WAAWpD,EAAQ0L,OAAS,IAAK,SAAArI,GAAC,OAAIA,EAAEuI,MAAQhK,EAAMgK,SAClD5L,EAAQ0L,OAAgC,EAAvB1L,EAAQ0L,MAAM7G,QACjD7E,EAAQ0L,MAAMlI,OAAO+H,EAAS,GAGlC,MAEF,IAAK,SACHnN,EAAQwD,EAAQA,EAAMxD,MAAQ,KAC9B,MACF,IAAK,gBAGL,IAAK,cAGL,IAAK,eACHA,EAAQwD,EACR,MACF,IAAK,UACAxD,EAAUwD,EAAM2B,OAAhBnF,MACHA,EAAQ8L,KAAK2B,MAAMzN,GACnB,MACF,QACKA,EAAUwD,EAAM2B,OAAhBnF,MAEO,KAAV8F,GAAgB,CAAC,OAAQ,cAAe,sBAAsBkB,SAASkB,KACtElI,EAAUwD,EAAM2B,OAAhBnF,MACH4B,EAAQsG,GAASlI,GAEfuJ,GAAYrI,EAAKwM,WAAW,WAC3B1N,EAAUwD,EAAM2B,OAAhBnF,OAED0L,IACY,KAAV5F,GAAgB,CAAC,OAAQ,cAAe,sBAAsBkB,SAASkB,GACzEyF,QAAQC,IAAI1F,IAEZhC,EAAWC,OAAX,UAAqBL,IAAS+B,OAAOa,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAUA,KAAOlI,MAAQA,EAC7D,mBAATkB,GAA+BgF,EAAWC,OAAX,UAAqBL,IAAS+B,OAAOa,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAUA,KAAOU,cAAmG,KAAnF1C,EAAWC,OAAX,UAAqBL,IAAS+B,OAAOa,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAUA,KAAOU,eAC/KiF,EAAM3H,EAAWC,OAAX,UAAqBL,IAAS+B,OACvCa,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAUA,KAAOO,cAChCvC,EAAWC,OAAX,UAAqBL,IAAS+B,OAC3Ba,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAUA,KAAOU,cAAAA,EAAeJ,EAAAA,IAASqF,GAAK,GAAG5L,KAElEL,EAAQsE,WAAaA,EACjBqD,IAAU3H,EAAQkM,kBAAoB5H,IAE5CtE,EAAQsH,SAAAA,EACRxG,EAASd,KAsCXmM,cAlCsB,SAACjI,EAAOkI,GAA2B,IAGjDC,EAEAC,EAJAhI,EAAetE,EAAfsE,WADiD,0DAKjDgI,GAFAD,EAAY/H,EAAWC,OAAX,UAAqBL,IAAS+B,OAC7Ca,MAAK,SAAAyF,GAAC,OAAIA,EAAEjG,QAAU8F,EAAI7J,EAAE+D,SAAOkG,YAAc,IAC3BpJ,WAAU,SAAAmJ,GAAC,OAAIA,EAAEtH,KAAOmH,EAAIK,IAAIxH,MACzDoH,EAAU7I,OAAO8I,EAAQ,EAAGF,EAAIK,KAChCnI,EAAWC,OAAX,UAAqBL,IAAS+B,OAC3Ba,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAU8F,EAAI7J,EAAE+D,SAAOkG,WAAaH,GAErD/H,EAAWC,OAAX,UAAqBL,IAAS+B,OAC3Ba,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAU8F,EAAI7J,EAAE+D,SAAOoG,WAAaN,EAAI7J,EAAEmK,YAAc,GACvE1M,EAAQsE,WAAaA,EACrBtE,EAAQsH,SAAAA,EACRxG,EAASd,IAqBT2M,UAlBsB,SAACzI,EAAOkI,GAC9B,IAAQ9H,EAAetE,EAAfsE,WACFsI,GAAAA,EAASC,EAAAA,IAAeT,EAAIvF,cAAeuF,EAAIpF,aAAcoF,EAAIhO,OACvEkG,EAAWC,OAAX,UAAqBL,IAAS+B,OAAOa,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAU8F,EAAI9F,SAAOU,aAAeoF,EAAIpF,aACzF1C,EAAWC,OAAX,UAAqBL,IAAS+B,OAAOa,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAU8F,EAAI9F,SAAOlI,MAAQwO,EAC9E5M,EAAQsE,WAAaA,EACrBtE,EAAQsH,SAAAA,EACRxG,EAASd,IAYT8M,OAAQtF,GAAa,GACrBvC,GAAIwC,EACJC,UAAWA,IAAAA,EACXqF,SAAUnF,IAAAA,EACVD,SAAAA,EACAsB,OAAAA,EACAC,SAAAA,EACA8D,MAAoB,EAAZxI,EAAGK,OACXsE,OAAAA,GAGI5B,GAAAA,EAAe0F,EAAAA,GAAa7D,GAE5B8D,EACJ,kBAAC,IAAD,CACExO,KAAMiK,EAAMiC,cACZrG,QAAAA,EAAQ9D,EAAAA,WAAUT,EAAQ4F,mBAAmBrB,SAAW,GACxDhG,QAAS,kBAAMyK,EAAS,CAAE4B,eAAgBjC,EAAMiC,iBAChDuC,MAvLmB,SAACvL,EAAOwL,GAC7B,IAcQC,EAdFnJ,EAAQkJ,EAGRjK,GAFEoB,EAAWvE,EAAQsE,WAAnBC,QACFwF,GAAAA,EAAeC,EAAAA,QAAOzF,EAAQ,CAAC,WAAY,iBACxBnB,WAAU,SAAA6G,GAAC,OAAIA,EAAE5J,MAAQsI,EAAMkC,qBAElDyC,EAAgBvD,EAAa5G,GAM7BoK,GALNrJ,EAAM8D,SAAWsF,EAActF,SAC/B9D,EAAMoG,YAAcgD,EAAchD,YAAc,EAChDpG,EAAMsJ,IAAAA,EACNtJ,EAAMuJ,QAAU,KAEJ1D,EACTrF,QAAO,SAAAuF,GAAC,OAAIA,EAAE5J,MAAQ6D,EAAM7D,KAAO4J,EAAE5J,IAAIyL,WAAN,UAAoB5H,EAAM7D,IAA1B,SAAmCwE,QAC/D,EAAN0I,IACIF,EAAUnJ,EAAM7D,IACtB6D,EAAM7D,IAAN,UAAe6D,EAAM7D,IAArB,YAA4BkN,GAC5BrJ,EAAM+B,QAAAA,EAASyH,EAAAA,IAAiBxJ,EAAOmJ,IAGzCtD,EAAavG,OAAOL,EAAM,EAAG,EAAGe,GAEhC6F,EAAarF,QAAO,SAAAuF,GAAC,OAAIA,EAAEjC,WAAasF,EAActF,YAAU1F,KAAI,SAAC2H,EAAG0D,GAGtE,OADApD,EAAGD,YAAcqD,EACVpD,KAEHC,GAFGD,EAEEE,EAAAA,IAAeV,GAC1B/J,EAAQsE,WAAWC,OAASiG,EAC5BxB,EAAS,CAAE4B,eAAc,EAAQC,iBAAkB3G,EAAM7D,MAAO,WAC9DS,EAASd,SA6JP4N,EACJ,kBAAC,IAAD,CACElP,KAAMiK,EAAMmC,aACZ9K,QAASA,EACTkE,MAAOyE,EAAMkC,iBACb7G,OAAQ,kBAAMgF,EAAS,CAAE8B,cAAenC,EAAMmC,gBAC9C3G,OA3NiB,SAAC0J,EAAOC,EAAQC,GACnC,IAAIjE,GAAAA,EAEEwD,EADatN,EAAQsE,WAAnBC,OACqBuJ,GACzBhJ,EAAUwI,EAAc9I,IAAM,GAClC,OAAQuJ,GACN,KAAK7I,EAAAA,EAAAA,cACHJ,EAAUA,EAAQJ,QAAO,SAAAC,GAAC,OAAIA,IAAMkJ,KACpC/D,GAAAA,EACA,MACF,KAAK5E,EAAAA,EAAAA,YACHJ,EAAQjE,KAAKgN,GACb/D,GAAAA,EAKAA,IACFwD,EAAc9I,GAAKM,EACnB9E,EAAQsE,WAAWC,OAAOuJ,GAAUR,EACpCtE,EAAS,CAAE8B,cAAa,EAAQD,iBAAkBiD,IAAU,WAC1DhN,EAASd,UA2Mb,oCACGuH,EACA2F,EACAU,G,kNAjUD7E,EAAe,CAAE6B,eAAc,EAAQC,iBAAkB,GAAIC,cAAa,G,EAI1EjC,EAAAA,6CAAAA,W,OACsBC,EAAAA,MAiU5BD,EAAahJ,UAAY,CACvBG,QAASF,IAAAA,OAAAA,WACTgB,SAAUhB,IAAAA,KAAAA,WACV0H,UAAW1H,IAAAA,MACX2H,MAAO3H,IAAAA,UAAoB,CAACA,IAAAA,OAAkBA,IAAAA,SAC9C4H,UAAW5H,IAAAA,KAAAA,WACX8H,WAAY9H,IAAAA,KAAAA,WACZ6H,SAAU7H,IAAAA,KACVmJ,OAAQnJ,IAAAA,KACRoJ,SAAUpJ,IAAAA,KACVqJ,OAAQrJ,IAAAA,KAGV+I,EAAapF,aAAe,CAC1B+D,UAAW,GACXG,UAAS,EACTF,MAAO,EACPwB,OAAQ,aACRC,UAAS,EACTC,OAAQ,M,EAGKN,EAAf,O,6FA5VME,EAAAA,eAAAA,wF,WAEAL,EAAAA,UAAAA,wF,WAEAG,EAAAA,eAAAA,wF,8OChBiB,SAAjBmF,EAAkB/P,GACtB,IAAQ+B,EAAsB/B,EAAtB+B,QACR,OADiBc,EAAa7C,EAAb6C,SACmB,IAAhCqB,OAAOC,KAAKpC,GAAS6E,OAAqB,KAE5C,kBAAC,IAAD,CACE7E,QAASA,EACTc,SAAUA,EACV0G,UAAW,GACXC,MAAO,EACPC,WAAAA,EACAC,UAAAA,EACAC,YAAAA,EACAsB,UAAAA,I,6OAKN8E,EAAenO,UAAY,CACzBG,QAASF,IAAAA,OAAAA,WACTgB,SAAUhB,IAAAA,KAAAA,Y,EAGGkO,EAAf,O,6FAtBMA,EAAAA,iBAAAA,0F,2uICKAC,eAAAA,SAAAA,Y,6EACJ,wBAAYhQ,GAAO,6CACjB,mBAAMA,IACDsH,aAAe,EAAKA,aAAaC,KAAlB,2BAFH,E,8DAKnB,WACE,IAAQE,GAAR,EAAqC1H,KAAKC,OAAlCyH,MAAOwI,EAAf,EAAeA,QAASvM,EAAxB,EAAwBA,SAClB8D,GAAAA,EAAWhF,oCAAAA,WAAUiF,EAAME,oBACjCH,EAASI,WAAaH,EAAMI,KAC5B3D,OAAOC,KAAKqD,EAASlB,QAAQlC,SAAQ,SAAAhC,GACnC,IAAM0F,EAAWN,EAASlB,OAAOlE,IAAQ,GACnC2F,EAAakI,EAAQ5J,WAAWC,OAAOlE,IAAQ6N,EAAQ5J,WAAWC,OAAOlE,GAAK4F,QAC/E,IACJF,EAASE,QAAU,IAAI5D,SAAQ,SAACE,EAAGY,GAClC,IAEQ+C,EAYEC,EAUEgI,EACAC,EACAC,EA1BNhI,GAAAA,EAASjD,oCAAAA,WAAU4C,GAAW,SAAA3C,GAAC,OAAIA,EAAEiD,QAAU/D,EAAE+D,SACzC,GAAVD,IAEIE,EAAU,QADVL,EAASgI,EAAQ5J,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQjI,OAEzD,CAAC,SAAU,OAAQ,WAAY,iBAAiBgH,SAASK,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,QAC5FmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAoB,cAAZmI,EAA0BL,EAAOM,WAAa,IAE3C,YAA1Cf,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OACnCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAqB,cAAZmI,GAAuC,YAAZA,GAAyBE,MAAMP,GAAW,EAAIQ,SAASR,EAAQ,KAExF,aAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OACnCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAoB,cAAZmI,IAAAA,EAA0BI,0CAAAA,IAAOT,IAE9B,mBAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAE7B8G,GADAD,GAAAA,EAAQS,0CAAAA,IAASnB,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK0D,gBACvCC,MAAK,SAAAC,GAAC,OAAIA,EAAE1G,MAAQ6N,EAAQ5J,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQW,gBACnFvB,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK6D,aAAgBZ,GAAMA,EAAG/F,KAAQ8F,EAAM,GAAG9F,IAC3EoF,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,OAAAA,EAAQ6I,0CAAAA,IAAMf,IAEH,gBAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAC/B4O,EAAQ5J,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQ/G,OAC5CmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,KACrCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,WAAAA,GAE3B+P,EAAQ1I,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAKqJ,YAAc,GACvD4B,EAAQF,EAAQ5J,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQmG,YAAc,GACpE6B,EAAS,GACXF,EAAMtJ,OAAS,EACjBY,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,WAAAA,EAEjC+P,EAAM9L,SAAQ,SAAAiM,GACZ,IASQC,EATFC,EAASJ,EAAMtH,MAAK,SAAA2H,GAAC,OAAIA,EAAExJ,KAAOqJ,EAAKrJ,OAAO,GAClC,UAAdqJ,EAAKhP,MAAoB+O,EAAOxN,KAAKyN,GACvB,SAAdA,EAAKhP,OACa,UAAhBkP,EAAOlP,KACT+O,EAAOxN,KAAKyN,GACLD,EAAOxN,KAAP,+BAAiByN,GAAjB,IAAuBlQ,OAAQoQ,EAAOpQ,OAAS,IAAIoI,eAG1D,CAAC,SAAU,kBAAkBpB,SAASkJ,EAAKhP,QACvCiP,OAAAA,IAAcC,EAAOpQ,OAAyC,MAAhBoQ,EAAOpQ,OAAyC,IAAxBoQ,EAAOpQ,MAAMyG,OAAgB,MAAKoC,0CAAAA,IAAMuH,EAAOpQ,OACvHkQ,EAAKzH,gBAAkB2H,EAAO3H,cAChCwH,EAAOxN,KAAP,+BAAiByN,GAAjB,IAAuBlQ,MAAOmQ,EAAKvH,aAAcwH,EAAOxH,gBAExDqH,EAAOxN,KAAP,+BAAiByN,GAAjB,IAAuBlQ,MAAOmQ,SAKtC9I,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAKqJ,WAAa6B,IAGJ,WAA1C5I,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAC/B4O,EAAQ5J,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQ/G,OAC5CmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,KACrCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAQ8P,EAAQ5J,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQjI,MAEvFqH,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAQ,IAGC,UAA1CqH,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAC/B4O,EAAQ5J,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQ/G,OAC5CmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,KACrCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAKuJ,WAAa,GAE9CjH,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAKuJ,YAAAA,EAAagC,4CAAAA,GAC5CjJ,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAC5B+K,EAAQ5J,WAAWC,OAAOlE,GAAK4F,OAAOI,YAOlD6H,EAAQ5J,WAAamB,EACrByI,EAAQ5G,SAAAA,EACR3F,EAASuM,K,qCAGX,SAAwBA,GACtB,IAAQvM,GAAR,EAAuC3D,KAAKC,OAApC0D,SAAUsH,EAAlB,EAAkBA,OAAQtB,EAA1B,EAA0BA,SAa1B,OAZMJ,EACJ,2DAAC,6CAAD,CACEvH,QAASkO,EACTpN,SAAUa,EACV6F,UAAW,GACXC,MAAO,EACPC,WAAAA,EACAC,SAAUA,EACVC,YAAAA,EACAqB,OAAQA,IAGJ,kEAAKpK,MAAO,CAAEgJ,OAAQ,QAAUN,K,oBAG1C,WACE,IAAQO,GAAR,EAA4B9J,KAAKC,OAAzB6J,OAAQoG,EAAhB,EAAgBA,QAChB,OAAKpG,GAA0C,IAAhC3F,OAAOC,KAAK8L,GAASrJ,OAElC,sEACE,2DAAC,6CAAAnC,MAAD,KACE,2DAAC,6CAAAA,MAAA,KAAD,CAAY7D,MAAO,CAAEmJ,SAAU,WAAYC,UAAW,IAAKC,UAAW,UACnElK,KAAKmK,wBAAwB+F,MALmB,O,0IAjHvDD,CAAuBrO,mCAAAA,W,UA8H7BqO,eAAepO,UAAY,CACzBiI,OAAQhI,kDAAAA,KAAAA,WACRoO,QAASpO,kDAAAA,OACT4F,MAAO5F,kDAAAA,OACP6B,SAAU7B,kDAAAA,KAAAA,WACVmJ,OAAQnJ,kDAAAA,MAGVmO,eAAexK,aAAe,CAAEyK,QAAS,GAAIxI,MAAO,GAAIuD,OAAQ,cAEjDgF,gBAAf,+B,6GAxIMA,eAAAA,iBAAAA,wF,wcCXS,CACbU,QAAS,UACTC,OAAQ,SACRC,SAAU,WACVC,OAAQ,SACRC,QAAS,UACTC,KAAM,OACNC,cAAe,gBACfC,QAAS,UACTC,UAAW,YACXC,cAAe,gBACfC,aAAc,gBAXhB,O,ulHCSM3Q,KAAO,SAACuN,EAAKqD,EAAWC,GAC5B,IASQC,EACAC,EAQAC,EAmBQC,EAAW9M,EArC3B,OAAIoJ,EAAI7N,OAAS6N,EAAI7N,MAAMwR,OACrBC,EAAQ5D,EAAI7N,MAAM0R,QAGlBD,EAFsB,WAAtB5D,EAAI7N,MAAM2R,SACRF,IAAUA,EAAMG,SAAS,SAAW/D,EAAI7N,MAAM6R,aACxC/K,8CAAAA,EAAAA,4BAGR2K,KAAUA,EAAMG,SAAS,UAASH,EAAQ3K,8CAAAA,EAAAA,uBAExCsK,GADAU,EAAOjE,EAAI7N,MAAM+R,QAAUlE,EAAI7N,MAAM+R,OAAOC,MAAM,QACnB,GAAfF,EAAKrL,QAAeqL,EAAK,IAAO,GAChDT,EAAQS,GAAuB,GAAfA,EAAKrL,QAAeqL,EAAK,IAAO,GAChDG,EACJ,sEACGb,EACD,sEACCC,GAGCC,EACJ,2DAAC,6CAAAY,QAAD,CAASrL,GAAG,cAAclB,MAAOsM,EAAKxR,MAAO,CAAE0R,SAAU,OAAQlL,UAAW,SAC1E,kEAAKmL,IAAKX,EAAOhR,MAAO,CAAE4R,OAAQ,OAAQC,MAAO,QAAUC,IAAI,MAG/DrQ,EAAQ2L,EAAI7N,MAAMwS,SAiCI,WAAtB3E,EAAI7N,MAAM2R,UAAAA,IACR9D,EAAI7N,MAAMwG,SACZtE,EACE,gEAAGuQ,KAAK,OAAO/S,QAAS,kBAAMyR,EAAOtD,EAAI7N,MAAM2R,QAAS9D,EAAI7N,MAAMwR,QAAQ/Q,MAAO,CAAEiS,OAAQ,YACzF,mEAAM/R,UAAU,0BAA0BuB,KAKxB,YAAtB2L,EAAI7N,MAAM2R,UACZzP,EACE,gEAAGuQ,KAAK,OAAO/S,QAAS,kBAAMyR,EAAOtD,EAAI7N,MAAM2S,SAAU9E,EAAI7N,MAAMwR,QAAQ/Q,MAAO,CAAEiS,OAAQ,YAC1F,gEAAG/R,UAAWkN,EAAI7N,MAAM4S,YACvB,IACD,mEAAMjS,UAAU,0BAA0BuB,KAjClCqP,EAqCFE,EAAO5D,EAAI7N,MAAM+R,OArCJtN,EAqCYvC,EArCFqP,GAAiB,KAATA,EACzC,kEAAK5Q,UAAU,UAdD4Q,EAeHA,KAfsBzK,8CAAAA,EAAAA,4BAC/B,KACA,2DAAC,6CAAAoD,eAAD,CACE2I,UAAW,IACXC,QAAS,CAAC,SACV3I,UAAU,MACV4I,WAAAA,EACAxS,OAAQ,KACR6J,QAASkH,GAET,kEAAK3Q,UAAU,mBAAmByR,IAAKb,EAAMgB,IAAI,MAMnD,mEAAM5R,UAAU,QAAQ8D,IAG1B,2DAAC,6CAAAyF,eAAD,CACEC,UAAU,MACVC,QACE,2DAAC,6CAAAC,QAAD,CAASxD,IAAAA,EAAIa,kCAAAA,MACV0J,EACD,sEACCC,IAIL,kEAAK1Q,UAAU,QAAQ8D,KAuBX,YAAdyM,EACM,mEAAMvQ,UAAU,6CAElBqS,0CAAAA,IAAQ,QAAD,OAAS9B,EAAT,cAAgC,CAAEoB,MAAO,SAGpDW,OAAS,SAAC/R,EAAMrB,EAAOgH,GAC3B,IACMqM,EAAYrT,GAASA,EAAMsT,KAAOtT,EAAMsT,IAAIC,eAAkB,GAElEC,IADEH,EAASI,SAAWJ,EAASI,QAAQzM,KAAOA,KAGjCqM,EAASK,aAAeL,EAASM,cAAgBN,EAASI,UAGzE,OAAQpS,GACN,IAAK,WACH,MAAO,CACLsQ,MAAO3R,EAAM4T,SAAS5M,GACtB8K,QAAS,WACTa,SAAU3S,EAAM6T,oBAChB3B,OAAQ,GAAF,OAAKlS,EAAM4T,SAASE,SAApB,aAAiC9T,EAAM4T,SAASG,cAE1D,IAAK,SACH,MAAO,CACLpC,MAAO3R,EAAMgH,GACbL,QAAO,EACPqN,QAAO,IAACR,EAAmB,EAAI,EAC/BA,QAAAA,EACA1B,QAAS,SACTa,SAAU3S,EAAMiU,YAChB/B,OAAQlS,EAAMiU,YACdjC,aAAchS,EAAMkU,YAAAA,GAExB,IAAK,UACH,MAAO,CACLvC,MAAO3R,EAAMgH,GACb8K,QAAS,UACTiB,UAAY/S,EAAMmU,eAAiBnU,EAAMmU,cAAcpB,WAAc,GACrED,SAAU9S,EAAMqB,KAChBsR,SAAU3S,EAAMiU,YAChB/B,OAAQ,GAAF,OAAKlS,EAAMqC,MAAX,aAAqBrC,EAAMkD,OAErC,QACE,MAAO,CACLyO,MAAO3R,EAAMgH,GACb8K,QAAS9R,EAAMqB,KACfsR,SAAU3S,EAAMiU,YAChB/B,OAAQlS,EAAMiU,eAKhBG,WAAa,CACjBC,KADiB,SACZC,EAAaC,GACVC,EAAcD,EAAQE,UAAUhB,QAChCiB,EAAYtB,OAAOkB,EAAYtG,IAAI3M,KAAK8Q,MAAM,KAAK,GAAIqC,EAAaF,EAAYtG,IAAIhH,IAC1FsN,EAAYK,OAAOD,IAErBE,QANiB,SAMTC,EAAcC,GACpB,OAAM,IAIJC,YAAc,SAACC,EAAST,GAAV,MAAuB,CACzCU,kBAAmBD,EAAQZ,aAC3Bc,OAAQX,EAAQW,SAChBN,QAASL,EAAQK,YAGbO,oBAAAA,SAAAA,Y,iQACJ,WACE,IACsCnH,EAApCiH,GADF,EAEIlV,KAAKC,OADPiV,kBAAmBC,EADrB,EACqBA,OAAQN,EAD7B,EAC6BA,QAErBtD,GAF8BtD,EADtC,EACsCA,KAE9BsD,OACFD,EAAarD,EAAIoH,UAAgC,aAApBpH,EAAIoH,SAAS,GAAoB,SAAWpH,EAAIoH,SAAS,GAE5F,OADMtU,EAAY,SAAH,OAAYoU,EAAS,WAAa,IAAlC,OAAuCN,EAAU,YAAc,IACvEK,EAAkB,kEAAKnU,UAAWA,GAAYL,KAAKuN,EAAKqD,EAAWC,O,+IARxE6D,CAA4BxT,mCAAAA,W,YAalC0T,uCAAAA,aAAW,SAAArV,GAAK,OAAIA,EAAMgO,IAAIoH,WAAUhB,WAAYW,Y,CAAaI,qBADjE,+BAGAA,oBAAoBvT,UAAY,CAC9BqT,kBAAmBpT,kDAAAA,KAAAA,WACnBqT,OAAQrT,kDAAAA,KAAAA,WACR+S,QAAS/S,kDAAAA,KAAAA,Y,6GArKLpB,KAAAA,OAAAA,2F,WAmFA2S,OAAAA,SAAAA,2F,WA+CAgB,WAAAA,aAAAA,2F,WAWAW,YAAAA,cAAAA,2F,WAMAI,oBAAAA,sBAAAA,2F,kRCxImB,SAAnBG,EAAoBN,EAAST,GAAV,MAAuB,CAC9CgB,kBAAmBP,EAAQQ,aAC3BC,WAAYlB,EAAQkB,cAGG,SAAnBC,EAAoBV,EAAST,GAAV,MAAuB,CAC9CU,kBAAmBD,EAAQZ,aAC3Bc,OAAQX,EAAQW,SAChBN,QAASL,EAAQK,WAGH,SAAVe,EAAW,GAEX,IADJJ,EACI,EADJA,kBAAmBN,EACf,EADeA,kBAAmBQ,EAClC,EADkCA,WAAYP,EAC9C,EAD8CA,OAGlD,OAH0DN,EACtD,EADsDA,QAEpD9T,EAAY,mBAAH,OAAsBoU,EAAS,WAAa,IAA5C,OAAiDN,EAAU,YAAc,IAAzE,OAA8Ea,EAAa,eAAiB,KACrH,EAACG,EAAAA,IAAQL,EAAmBN,EAA5B,CAA+C,yBAAKnU,UAAWA,GAAW,yBAAKA,UAAU,WAAU,0BAAMA,UAAU,8B,6CAxBrH+U,G,uLAPAC,EAAc,CAClBC,UADkB,SACR/V,GAER,MAAO,CAAEgW,IADmBhW,EAApBqI,MACa4N,IADOjW,EAAbkW,SACoBlP,MAInB,CAClBqN,KADkB,SACbrU,EAAOuU,GACV,IAAQlM,EAAgCrI,EAAhCqI,MAAO6N,EAAyBlW,EAAzBkW,SAAUC,EAAenW,EAAfmW,WACnBC,EAAM,CAAEJ,IAAK3N,EAAO4N,IAAKC,EAASlP,IAClCuL,EAAMgC,EAAQE,UAChB2B,EAAIJ,MAAQzD,EAAIyD,KAAOI,EAAIH,MAAQ1D,EAAI0D,KAAKE,EAAW5D,EAAI0D,IAAKG,EAAIH,Q,KAsB7DL,EAAAA,KAAAA,EACbS,EAAAA,aAAW,SAAAC,GAAC,OAAIA,EAAEjV,OAAMyU,EAAaR,IAAAA,EACrCD,EAAAA,aAAW,SAAAiB,GAAC,OAAIA,EAAEjV,OAAMwU,EAAaH,G,CACrCC,GAHF,O,6FAlCMG,EAAAA,cAAAA,+E,WAOAD,EAAAA,cAAAA,+E,WASAP,EAAAA,mBAAAA,+E,WAKAI,EAAAA,mBAAAA,+E,WAMAC,EAAAA,UAAAA,+E,qOCMmB,SAAnBL,EAAoBN,EAAST,GAAV,MAAuB,CAC9CgB,kBAAmBP,EAAQQ,aAC3BC,WAAYlB,EAAQkB,cAGG,SAAnBC,EAAoBV,EAAST,GAAV,MAAuB,CAC9CU,kBAAmBD,EAAQZ,aAC3Bc,OAAQX,EAAQW,SAChBN,QAASL,EAAQK,WAGF,SAAX2B,EAAY,GAGZ,IAFJhB,EAEI,EAFJA,kBAAmBN,EAEf,EAFeA,kBAAmBQ,EAElC,EAFkCA,WAAYP,EAE9C,EAF8CA,OAAQN,EAEtD,EAFsDA,QAC1D3O,EACI,EADJA,MAAOe,EACH,EADGA,GAAIwP,EACP,EADOA,aAAcC,EACrB,EADqBA,GAITlH,GAJaR,EACzB,EADyBA,MAEvBjO,EAAY,mBAAH,OAAsBoU,EAAS,WAAa,IAA5C,OAAiDN,EAAU,YAAc,IAAzE,OAA8Ea,EAAa,eAAiB,IAEzH7U,EACEqF,EADFrF,MAAOyB,EACL4D,EADK5D,MACL4D,EADYsJ,IAAInN,EAChB6D,EADgB7D,IAUdsU,GARAC,GAAO/V,GAAS,yBAAyBgW,QAAQ,wBAAyB,8BAC1EC,EAAa9H,EACjB,kBAAC,EAAA1E,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,MAAMC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,GAAG,qBAAZ,kBACxD,kBAAC,EAAArH,OAAD,CAAQmD,OAAO,SAASjD,QAAS,SAAA8D,GAAK,OAAI6S,EAAa7S,EAAOqD,EAAIf,EAAO,eACvE,uBAAGnF,UAAU,kBAAkBY,cAAY,WAG7C,KAEF,kBAAC,EAAA2I,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,MAAMC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,GAAG,sBAAZ,cACxD,kBAAC,EAAArH,OAAD,CAAQmD,OAAO,SAASjD,QAAS,SAAA8D,GAAK,OAAI6S,EAAa7S,EAAOqD,EAAIf,EAAO,iBACvE,kBAAC,EAAA6Q,gBAAD,CAAiBC,KAAMC,EAAAA,YAIvBC,EACJ,kBAAC,EAAA5M,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,MAAMC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,GAAG,yBAAZ,iBACxD,kBAAC,EAAArH,OAAD,CAAQmD,OAAO,SAASjD,QAAS,SAAA8D,GAAK,OAAI6S,EAAa7S,EAAOqD,EAAIf,EAAO,kBACvE,kBAAC,EAAA6Q,gBAAD,CAAiBC,KAAMG,EAAAA,YAIvBC,EAAS5H,EACb,8BACE,kBAAC,EAAAuH,gBAAD,CAAiBC,KAAMK,EAAAA,aAEvB,KACEC,EACJ,kBAAC,EAAAhN,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,MAAMC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,IAAAA,EAAIa,EAAAA,MAAb,mCACxD,kBAAC,EAAAlI,OAAD,CAAQE,QAAS,aAAUiD,OAAO,UAAS,kBAAC,EAAAgU,gBAAD,CAAiBC,KAAMO,EAAAA,gBAgCtE,OA7BMC,EAAWhI,EAAM,kBAAC,EAAAiI,YAAD,CAAa1W,UAAU,cAAc+V,EAAYH,GACtE,kBAAC,EAAAc,YAAD,CAAa1W,UAAU,cACpB+V,EACAH,EACAO,EACAI,GAGCI,EAAW,MAAMC,KAAKtV,GAC1B,wCAEGA,EACA+U,EAHH,KAME,KACEQ,EACJ,kBAAC,EAAAlT,MAAA,QAAD,CAAe3D,UAAW6V,GACxB,kBAAC,EAAAlS,MAAA,MAAD,CAAaE,QAAAA,EAAO/D,MAAO,CAAEgX,MAAO,OAAQC,WAAY,WACrDxV,EACA,IACAoV,GAEFF,EACD,yBAAKzW,UAAU,cAGbgX,EAAqB,SAAPrB,EAAA,gBAAyBA,GAAO,GAC9CsB,GAASxI,EAAK,YAAH,eAAeuI,IAC1B,EAAClC,EAAAA,IAAQL,EAAmBN,EAA5B,CAA+C,yBAAKnU,UAAWA,GAAW,yBAAKA,UAAWiX,GAASJ,K,qFA/FrG9B,G,uLAVAC,EAAc,CAClBkC,QADkB,SACVhY,GACN,OAAQA,EAAMiG,MAAMsJ,IAEtBwG,UAJkB,SAIR/V,GACR,IAAQiG,EAA2BjG,EAA3BiG,MAAOoC,EAAoBrI,EAApBqI,MACf,OADsB6N,EAAalW,EAAbkW,SACf,CAAE3G,GAAItJ,EAAMsJ,GAAIyG,IAAK3N,EAAO4N,IAAKC,EAASlP,MAIjC,CAClB4N,QADkB,SACV5U,EAAOuU,GAEb,OADMhC,EAAMgC,EAAQE,WACZzU,EAAMiG,MAAMsJ,KAAOgD,EAAIhD,IAEjC8E,KALkB,SAKbrU,EAAOuU,GACV,IACEtO,EACEjG,EADFiG,MAAOoC,EACLrI,EADKqI,MAAO6N,EACZlW,EADYkW,SAAUC,EACtBnW,EADsBmW,WAEpBC,EAAM,CAAE7G,GAAItJ,EAAMsJ,GAAIyG,IAAK3N,EAAO4N,IAAKC,EAASlP,IAChDuL,EAAMgC,EAAQE,UAChB2B,EAAIJ,MAAQzD,EAAIyD,KAAOI,EAAIH,MAAQ1D,EAAI0D,KAAKE,EAAW5D,EAAI0D,IAAKG,EAAIH,Q,KAuF7DL,EAAAA,KAAAA,EACbS,EAAAA,aAAW,SAAAC,GAAC,OAAIA,EAAEjV,OAAMyU,EAAaR,IAAAA,EACrCD,EAAAA,aAAW,SAAAiB,GAAC,OAAIA,EAAEjV,OAAMwU,EAAaH,G,CACrCa,GAHF,O,6FA5GMT,EAAAA,cAAAA,gF,WAUAD,EAAAA,cAAAA,gF,WAeAP,EAAAA,mBAAAA,gF,WAKAI,EAAAA,mBAAAA,gF,WAMAa,EAAAA,WAAAA,gF,sOC3CgB,SAAhB0B,EAAiBjY,GACrB,IACEkY,EACElY,EADFkY,IAAK3U,EACHvD,EADGuD,KAAMkT,EACTzW,EADSyW,GAAIpT,EACbrD,EADaqD,QAAS8U,EACtBnY,EADsBmY,SAAUC,EAChCpY,EADgCoY,MAAO9U,EACvCtD,EADuCsD,GAsB3C,OAtB+C4D,EAC3ClH,EAD2CkH,SAEzCmR,EACJ,kBAAC,EAAAhG,QAAD,CAASrL,GAAG,0BACTkR,EACA,IACD,6BACA,yBAAKpX,UAAU,eACb,kBAAC,EAAAnB,OAAD,CACEmD,OAAO,SACPlD,QAAQ,SACR8B,cAAY,OACZ7B,QAAS,kBAAMwD,EAAQ8U,KAJzB,OAQA,oCACA,kBAAC,EAAAxY,OAAD,CAAQmD,OAAO,SAASlD,QAAQ,WAAhC,QAMJ,kBAAC,EAAAyK,eAAD,CAAgBiO,WAAAA,EAAUhO,UAAW8N,EAAOla,MAAAA,EAAK+U,QAAQ,QAAQ1I,QAAS8N,GACxE,kBAAC,EAAA1Y,OAAD,CAAQmD,OAAQS,EAAM3D,QAAS6W,EAAIvP,SAAUA,GAC3C,uBAAGpG,UAAS,aAAQwC,GAAM5B,cAAY,W,6OAM9CuW,EAAcrW,UAAY,CACxBsW,IAAKrW,IAAAA,OAAAA,WACLsW,SAAUtW,IAAAA,OAAAA,WACVwB,QAASxB,IAAAA,KAAAA,WACT4U,GAAI5U,IAAAA,OACJ0B,KAAM1B,IAAAA,OACNuW,MAAOvW,IAAAA,OACPyB,GAAIzB,IAAAA,OACJqF,SAAUrF,IAAAA,MAGZoW,EAAczS,aAAe,CAC3BiR,GAAI,SAAUlT,KAAM,KAAM6U,MAAO,QAAS9U,GAAI,aAAc4D,UAAS,G,EAGxD+Q,EAAf,O,6FAhDMA,EAAAA,gBAAAA,wF,8OCEgB,SAAhBM,EAAiBvY,GACrB,IAcUgI,EACF9C,EAdNnD,EACE/B,EADF+B,QAASyW,EACPxY,EADOwY,IAAKpW,EACZpC,EADYoC,IAAKlE,EACjB8B,EADiB9B,KAAM0H,EACvB5F,EADuB4F,UAEvB4S,IAAQC,EAAAA,EAAAA,kBACH1W,EAAQU,oBAAoBC,eAAeN,GACzCoW,IAAQC,EAAAA,EAAAA,YACT9V,EAAYZ,EAAQU,oBAAoBC,eAAexE,GAAvDyE,UACwB,EAAjBA,EAAQiE,SACf1B,GAAAA,EAAMC,EAAAA,WAAUxC,GAAS,SAAAyC,GAAC,OAAIA,EAAEhD,MAAQA,KAC9CO,EAAQ4C,OAAOL,EAAK,IAEbsT,IAAQC,EAAAA,EAAAA,iBACV1W,EAAQU,oBAAoB6D,OAAOlE,GACjCoW,IAAQC,EAAAA,EAAAA,YACTzQ,EAAWjG,EAAQU,oBAAoB6D,OAAOpI,GAA9C8J,OACF9C,GAAAA,EAAMC,EAAAA,WAAU6C,GAAQ,SAAA5C,GAAC,OAAIA,EAAEiD,QAAUjG,KAC/C4F,EAAOzC,OAAOL,EAAK,IAErBU,EAAU7D,GAGW,SAAjB2W,EAAkB1Y,GACtB,IACE+B,EACE/B,EADF+B,QAAS0D,EACPzF,EADOyF,QAASC,EAChB1F,EADgB0F,OAAQC,EACxB3F,EADwB2F,QAI1BuS,GAJmCtS,EACjC5F,EADiC4F,UAGjCH,IAAYgT,EAAAA,EAAAA,WACR,+BAAH,OAAkC/S,EAAlC,OACMD,IAAYgT,EAAAA,EAAAA,WACf,wBAAH,OAA2B/S,EAA3B,0BAAmDC,EAAnD,OACMF,IAAYgT,EAAAA,EAAAA,UACf,uBAAH,OAA0B/S,EAA1B,OACMD,IAAYgT,EAAAA,EAAAA,UACf,uBAAH,OAA0B/S,EAA1B,yBAAiDC,EAAjD,OAEG,eAAH,OAAkBF,IAMvB,OAJM0S,EAAW,CACfpW,QAAAA,EAASyW,IAAK/S,EAASrD,IAAKsD,EAAQxH,KAAMyH,EAASC,UAAAA,GAInD,kBAAC,IAAD,CACEsS,IAAKA,EACL7U,QAASkV,EACTJ,SAAUA,EACV1B,GAAG,UACH2B,MAAM,MACN7U,KAAK,O,iQAKXmV,EAAe9W,UAAY,CACzBG,QAASF,IAAAA,OAAAA,WACT4D,QAAS5D,IAAAA,OAAAA,WACT6D,OAAQ7D,IAAAA,OACR8D,QAAS9D,IAAAA,OACT+D,UAAW/D,IAAAA,KAAAA,YAGb6W,EAAelT,aAAe,CAAEE,OAAQ,GAAIC,QAAS,I,EAEtC+S,EAAf,O,6FAhEMH,EAAAA,gBAAAA,yF,WAsBAG,EAAAA,iBAAAA,yF,+OCpBe,SAAfC,EAAgB3Y,GACpB,IAAQyH,EAA6BzH,EAA7ByH,MAAO1F,EAAsB/B,EAAtB+B,QAAS6W,EAAa5Y,EAAb4Y,SACxB,OAAI7W,SAAAA,IAAmBA,EAAQ6F,YAC5B7F,EAAQ6F,aAAeH,EAAMI,MAAQ9F,EAAQ4E,QACvC,KAiBP,kBAAC,EAAA0D,eAAD,CAAgBC,UAAU,MAAMC,QAASsO,GACvC,kBAAC,EAAAlZ,OAAD,CAAQmD,OAAO,SAASlD,QAAQ,UAAUC,QAAS,kBAdjDiZ,EAAa/W,GACXgX,GAAAA,EAASC,EAAAA,GAAgBjX,EAAS0F,IAC7B,IACTqR,EAAWzS,WAAa0S,EAAO,GAC/BD,EAAWzP,SAAAA,GAEXyP,EAAaC,EAAO,GAEtBD,EAAWnR,mBAAqBF,EAAME,wBACtCiR,EAASE,GAVU,IACfA,EACEC,IAcF,uBAAGjY,UAAU,gBAAgBY,cAAY,SACxC,IAFH,W,gEAxBAmX,G,uLAAiB,kBAAC,EAAArO,QAAD,CAASxD,GAAG,uBAAZ,iCAiCvB2R,EAAa/W,UAAY,CACvB6F,MAAO5F,IAAAA,OACPE,QAASF,IAAAA,OACT+W,SAAU/W,IAAAA,MAEZ8W,EAAanT,aAAe,CAC1BiC,MAAO,GAAI1F,QAAS,GAAI6W,SAAU,c,EAErBD,EAAf,O,6FAzCME,EAAAA,iBAAAA,uF,WAEAF,EAAAA,eAAAA,uF,6OCJgB,SAAhBM,EAAiBjZ,GACrB,IAAQoD,EAAQpD,EAARoD,IAGNG,GAFI2V,EAAU,kBAAC,EAAA1O,QAAD,CAASxD,IAAAA,EAAIa,EAAAA,MAASzE,GAGlCpD,EADFuD,MAAMkT,EACJzW,EADIyW,GAAIpT,EACRrD,EADQqD,QAASoQ,EACjBzT,EADiByT,QAAS2E,EAC1BpY,EAD0BoY,MAAO9U,EACjCtD,EADiCsD,GAAI4D,EACrClH,EADqCkH,SAAUtC,EAC/C5E,EAD+C4E,IAQnD,OARwDC,EACpD7E,EADoD6E,OAElDsU,EAAUvU,EACd,8BACGA,EACA,KAED,GACO,KAAP6R,EAEA,kBAAC,EAAApM,eAAD,CAAgB2I,UAAW,IAAM1I,UAAW8N,EAAO7N,QAAS2O,GAC1D,kBAAC,EAAAvZ,OAAD,CACEmB,UAAW+D,EACX/B,OAAQS,EACR1D,QAAS,kBAAMwD,EAAQoQ,IACvBvM,SAAUA,GAETiS,EACD,uBAAGrY,UAAS,aAAQwC,GAAM5B,cAAY,WAM5C,kBAAC,EAAA2I,eAAD,CAAgB2I,UAAW,IAAM1I,UAAW8N,EAAO7N,QAAS2O,GAC1D,kBAAC,EAAAvZ,OAAD,CACEmB,UAAW+D,EACX/B,OAAQS,EACR3D,QAAS6W,EACT5W,QAAS,kBAAMwD,EAAQoQ,IACvBvM,SAAUA,GAETiS,EACD,uBAAGrY,UAAS,aAAQwC,GAAM5B,cAAY,W,uPAM9CuX,EAAcrX,UAAY,CACxBwB,IAAKvB,IAAAA,OAAAA,WACL4R,QAAS5R,IAAAA,UAAoB,CAACA,IAAAA,OAAkBA,IAAAA,OAChDwB,QAASxB,IAAAA,KAAAA,WACT4U,GAAI5U,IAAAA,OACJ0B,KAAM1B,IAAAA,OACNuW,MAAOvW,IAAAA,OACPyB,GAAIzB,IAAAA,OACJqF,SAAUrF,IAAAA,KACV+C,IAAK/C,IAAAA,OACLgD,OAAQhD,IAAAA,QAGVoX,EAAczT,aAAe,CAC3BiR,GAAI,GACJlT,KAAM,KACN6U,MAAO,MACP9U,GAAI,qBACJ4D,UAAS,EACTtC,IAAK,KACL6O,QAAS,GACT5O,OAAQ,I,EAGKoU,EAAf,O,6FAnEMA,EAAAA,gBAAAA,wF,8OCAa,SAAbG,EAAcpZ,GAClB,IAAQqC,EAA0BrC,EAA1BqC,MAAOgX,EAAmBrZ,EAAnBqZ,KACT1C,GAAM1L,EADsBjL,EAAbiL,UACE,cAAgB,mBACvC,OAASoO,GAAiB,KAATA,IAAiBpO,EAChC,kBAAC,EAAAZ,eAAD,CAAgBC,UAAU,MAAM0I,UAAW,IAAMzI,QAAS,kBAAC,EAAAC,QAAD,CAASxD,IAAAA,EAAIa,EAAAA,MAASwR,IAC9E,8BAAOhX,IAEP,0BAAMvB,UAAW6V,GAAMtU,G,uPAG7B+W,EAAWxX,UAAY,CACrBS,MAAOR,IAAAA,OAAAA,WAA6BwX,KAAMxX,IAAAA,OAAkBoJ,SAAUpJ,IAAAA,QAExEuX,EAAW5T,aAAe,CAAE6T,KAAM,GAAIpO,UAAS,G,EAEhCmO,EAAf,O,6FAfMA,EAAAA,aAAAA,qF,oaCLSlV,OAAOoV,OAAO,CAC3BC,UAAW,QACXC,UAAW,QACXC,WAAY,SACZC,WAAY,WAJd,O,qlCCiBsB,SAAhBC,EAAiB3L,GACrB,IAAM4L,EAAa,EAAH,KAAQ5L,GAAR,IAAaoH,SAAU,KACjC/T,EAAOuY,EAAWvY,KAAK8Q,MAAM,KAGnC,OAFInE,EAAItE,UAAwB,SAAZrI,EAAK,KAAeA,EAAK,GAAK,QAE1CA,EAAK,IACX,IAAK,WACH,OAAM,EAACwY,EAAAA,IAAsBD,GAC/B,IAAK,gBACH,OAAM,EAACE,EAAAA,GAAuBF,GAChC,IAAK,SACH,OAAM,EAACG,EAAAA,IAAoBH,GAC7B,IAAK,OAEH,OADAA,EAAWxE,SAAX,U,moBAAA,CAA0BwE,EAAWxE,UAArC,CAA+C/T,EAAK,QAC7C2Y,EAAAA,IAAkBJ,GAC3B,IAAK,UACH,OAAM,EAACK,EAAAA,IAAoBL,GAC7B,IAAK,iBACH,OAAM,EAACM,EAAAA,IAA2BN,GACpC,IAAK,cACH,OAAM,EAACO,EAAAA,IAAwBP,GACjC,IAAK,WACH,OAAM,EAACQ,EAAAA,IAAsBR,GAC/B,IAAK,SACH,OAAM,EAACS,EAAAA,IAAoBT,GAC7B,IAAK,QACH,OAAM,EAACU,EAAAA,MACT,IAAK,QACH,OAAM,EAACC,EAAAA,IAAmBX,GAC5B,IAAK,eACH,OAAM,EAACY,EAAAA,IAAeZ,GACxB,IAAK,UACH,OAAM,EAACa,EAAAA,IAAUb,GACnB,QACE,OAAM,EAACc,EAAAA,IAAkBd,I,yLAIhBD,EAAf,O,6FAtCMA,EAAAA,gBAAAA,wF,mkGCMAgB,SAAW,WAAsB,IAArB1P,EAAqB,wDAGrC,MAAO,CAFQA,EAAW,aAAe,kBAC1BA,EAAW,eAAiB,sBAIvC2P,YAAc,SAAC5M,GACnB,IAAQ3L,EAAuB2L,EAAvB3L,MAAOwY,EAAgB7M,EAAhB6M,YACf,MAAc,KAAVxY,EAAqB,KACjB,2DAAC,2CAAD,CAAYA,MAAOA,EAAOgX,KAAMwB,EAAa5P,SAAU+C,EAAI/C,YAG/D6O,uBAAyB,SAAzBA,uBAA0B9L,KAC9B,IAAMhG,OAAUgG,IAAI/H,OAAS+H,IAAI/H,MAAM+B,QAAW,GAC9C8S,QAAU,EACVC,QAAU,KACVC,WAAahN,IAAIiN,QAEfC,WAAAA,EAAYzU,oCAAAA,QAAOuB,QAAQ,SAAA5C,GAAC,MAAgB,YAAXA,EAAE/D,MAAiC,mBAAX+D,EAAE/D,QAC3D8Z,KAAO,iBAEPC,UAAapN,IAAIiN,SAAWjN,IAAIiN,QAAQI,MAAMF,MAASnN,IAAIiN,QAAQI,MAAMF,MAAMG,MAAK,SAAC5c,EAAG6c,GAAJ,OAAUA,EAAE3U,OAASlI,EAAEkI,UAAU,GAa3H,GAXAwU,UAAUhX,SAAQ,SAACoX,GACjB,IAEMC,EAFDjT,MAAMgT,KAELC,EAAWP,UAAUrS,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAUmT,KAE/CR,gBAAAA,IADSS,GAAwC,MAAZA,EACxBT,WAAWpE,QAAQ4E,EAAI,GAEJ,mBAAlBC,EAASpa,KAA6B2Z,WAAWpE,QAAQ4E,EAAIE,YAAW,EAAAC,0CAAAA,IAAeF,IAAa,IAAMT,WAAWpE,QAAQ4E,EAAIE,WAAWD,EAAStb,OAAS,QAI/J,kBAAb6N,IAAI3M,KACN,IACEyZ,QAAUc,KAAKZ,YACfD,QAAWvS,MAAMsS,SAA4C,EAAjCY,WAAWZ,QAAQe,QAAQ,IACvD,MAAO7P,GACHA,aAAa8P,cACff,QAAU/O,EAAE+P,SAIlB,IAAMpF,IAAMgE,SAAS3M,IAAI/C,UACzB,OACE,2DAAC,6CAAAhK,UAAD,CAAWH,UAAW6V,IAAI,IACvBiE,YAAY5M,KACb,2DAAC,6CAAA7M,WAAD,CAAYL,UAAW6V,IAAI,IACzB,2DAAC,6CAAAvV,YAAD,CACEC,KAAK,OACLlB,MAAO4a,QACPrX,SAAUsK,IAAItK,SACd5C,UAAU,WACVkb,SAAS,WACTC,UAAAA,EACA9Y,YAAa6K,IAAI7K,YACjB+Y,IAAK,IAEP,2DAAC,6CAAA/a,WAAA,OAAD,KACE,2DAAC,6CAAAkJ,eAAD,CACEC,UAAU,SACVC,QAAS,2DAAC,6CAAAC,QAAD,CAASxD,GAAG,4BAAZ,WAET,2DAAC,6CAAArH,OAAD,CAAQwc,QAAAA,EAAOrb,UAAU,eAAejB,QAAS,kBAAMmO,IAAItK,SAASqX,WAClE,gEAAGja,UAAU,oBAAoBY,cAAY,YAInD,2DAAC,6CAAAN,YAAD,CACEC,KAAK,OACLlB,MAAO6N,IAAI7N,MACXuD,SAAUsK,IAAItK,SACduY,UAAAA,EACA9Y,YAAa6K,IAAI7K,YACjB+Y,IAAK,OAOTrC,sBAAwB,SAAC7L,GAC7B,OAAIA,EAAI/C,SAEJ,2DAAC,6CAAAhK,UAAD,CAAWH,UAAU,sCAClB8Z,YAAY5M,GACb,2DAAC,6CAAAoO,SAAD,CACElZ,KAAM8K,EAAI3F,MACVgF,QAASW,EAAI7N,MACbuD,SAAUsK,EAAItK,SACdwD,SAAU8G,EAAIgO,SACdlb,UAAU,kBAMhB,2DAAC,6CAAAG,UAAD,KACE,2DAAC,6CAAAmb,SAAD,CACElZ,KAAM8K,EAAI3F,MACVgF,QAASW,EAAI7N,MACbuD,SAAUsK,EAAItK,SACdwD,SAAU8G,EAAIgO,UAEd,2DAAC,6CAAA5a,YAAA,OAAD,KAAqB4M,EAAI3L,UAM3B2X,kBAAoB,SAAChM,GACzB,IAAMlN,EAAYkN,EAAIqO,WAAa,yCAA2C,0BAE1EC,EAAY,KAgBVC,IAAAA,IAfFvO,EAAI7N,MAAMwG,SACZ2V,EACE,kEAAKxb,UAAU,iBACb,2DAAC,6CAAAuJ,eAAD,CAAgBC,UAAU,MAAMC,QAAS,2DAAC,6CAAAC,QAAD,CAASxD,IAAAA,EAAIa,kCAAAA,MAAb,+BACvC,2DAAC,6CAAA2U,MAAD,CAAOtZ,KAAI,gBAAW8K,EAAI7N,MAAMwR,OAASzK,UAAAA,IAAU8G,EAAI7N,MAAMqT,QAAkBnG,QAA8B,IAArBW,EAAI7N,MAAM6T,OAActQ,SAAU,kBAAMsK,EAAItK,SAAJ,+BAAkBsK,EAAI7N,OAAtB,IAA6B6T,OAAQ,MAAMyI,QAAAA,GAA3K,YAEF,2DAAC,6CAAApS,eAAD,CAAgBC,UAAU,MAAMC,QAAS,2DAAC,6CAAAC,QAAD,CAASxD,IAAAA,EAAIa,kCAAAA,MAAb,2DACvC,2DAAC,6CAAA2U,MAAD,CAAOtZ,KAAI,gBAAW8K,EAAI7N,MAAMwR,OAAStE,QAA8B,IAArBW,EAAI7N,MAAM6T,OAActQ,SAAU,kBAAMsK,EAAItK,SAAJ,+BAAkBsK,EAAI7N,OAAtB,IAA6B6T,OAAQ,MAAMyI,QAAAA,GAArI,UAEF,2DAAC,6CAAApS,eAAD,CAAgBC,UAAU,MAAMC,QAAS,2DAAC,6CAAAC,QAAD,CAASxD,IAAAA,EAAIa,kCAAAA,MAAb,0DACvC,2DAAC,6CAAA2U,MAAD,CAAOtZ,KAAI,gBAAW8K,EAAI7N,MAAMwR,OAAStE,QAA8B,IAArBW,EAAI7N,MAAM6T,OAActQ,SAAU,kBAAMsK,EAAItK,SAAJ,+BAAkBsK,EAAI7N,OAAtB,IAA6B6T,OAAQ,MAAMyI,QAAAA,GAArI,WAKyB,iBAAbzO,EAAI3M,KAA0B,mEAAMP,UAAU,0CAA6C,mEAAMA,UAAU,2BAG/H,OAFM4b,GAAAA,IAAa1O,EAAIvE,UAAqB,kEAAK3I,UAAU,UAAUyb,GAAqB,2DAAC,wDAAD,CAAqBvO,IAAKA,EAAK2G,OAAQ3G,EAAItK,WAGnI,2DAAC,6CAAAzC,UAAD,KACG2Z,YAAY5M,GACb,2DAAC,6CAAA5M,YAAA,OAAD,CAAoBR,MAAO,CAAE+b,cAAe,QAC1C,kEAAK7b,UAAWA,GACb4b,EACAJ,EACD,sEACE,2DAAC,6CAAAjS,eAAD,CAAgBC,UAAU,MAAMC,QAAS,2DAAC,6CAAAC,QAAD,CAASxD,IAAAA,EAAIa,kCAAAA,MAAb,WACvC,2DAAC,6CAAAlI,OAAD,CAAQmB,UAAU,UAAUlB,QAAQ,SAASkD,OAAO,SAASjD,QAAS,kBAAMmO,EAAItK,SAAS,MAAK,gEAAG5C,UAAU,gBAAgBY,cAAY,gBAS/I4Y,SAAW,kBACf,2DAAC,6CAAArZ,UAAD,CAAWH,UAAU,2BACnB,2DAAC,6CAAAM,YAAD,CAAaC,KAAK,OAAOP,UAAU,QAAQkb,UAAAA,MAIzC7B,wBAA0B,SAACnM,GAC/B,IAYM4O,EAAO5O,EAAI6O,OAAS7O,EAAI6O,MAAMtO,YAAcP,EAAI6O,MAAMtO,WAAWlK,KAAI,SAAC2H,GAC1E,MAAe,UAAXA,EAAE3K,MAbK2K,EAa2BA,EAbtB,kEAAK5J,KAAAA,EAAKyF,kCAAAA,KAAQ/G,UAAU,oCAAoCkL,EAAE7L,QAavB,mBAAX6L,EAAE3K,MAXtC2K,EAWgFA,EAV5F,mEAAM5J,IAAG,UAAK4J,EAAEhF,GAAP,4BAAqClG,UAAU,cAAcF,MAAO,CAAE6R,MAAO,SACpF,2DAAC,6CAAArR,YAAD,CAAagB,IAAK4J,EAAEhF,GAAI3F,KAAK,SAAS6B,KAAM8I,EAAEhF,GAAI7G,MAAO6L,EAAE7L,MAAOuD,SAAU,SAAA0B,GAAC,OAAI4I,EAAI8O,YAAY1X,EAAG4G,EAAEhF,GAAIgH,EAAI6O,QAAQX,IAAK,IAC3H,2DAAC,6CAAA/a,WAAA,OAAD,KACE,2DAAC,6CAAAxB,OAAD,CAAQwc,QAAAA,EAAOtc,QAAS,kBAAMmO,EAAI8O,YAAY9Q,EAAGA,EAAEhF,GAAIgH,EAAI6O,QAAQjd,QAAQ,cACxEmd,0CAAAA,KAAAA,EAAWC,0CAAAA,IAAQhR,EAAEpD,cAAeoD,EAAEjD,cAAc1G,QAAU,QAN1D2J,EAYmGA,EAZ9F,2DAAC,6CAAA5K,YAAD,CAAaN,UAAU,gBAAgBsB,IAAK4J,EAAEhF,GAAI3F,KAAM2K,EAAE3K,KAAM6B,KAAM8I,EAAEhF,GAAI7G,MAAO6L,EAAE7L,MAAOuD,SAAU,SAAA0B,GAAC,OAAI4I,EAAI8O,YAAY1X,EAAG4G,EAAEhF,GAAIgH,EAAI6O,WAD7I,IAAA7Q,EAECA,EADDA,KAcP2K,EAAMgE,SAAS3M,EAAI/C,UACzB,OACE,2DAAC,6CAAAhK,UAAD,CAAWH,UAAW6V,EAAI,IACvBiE,YAAY5M,GACb,2DAAC,6CAAA7M,WAAD,CAAYP,MAAO,CAAEoC,QAAS,SAC3B4Z,KAMH3C,oBAAsB,SAACjM,GAC3B,IAAIlN,EAAYkN,EAAIiP,WAAa,WAAa,WAExCtG,GADN7V,EAAYkN,EAAIqO,YAAcrO,EAAIiP,WAAa,WAAanc,EAChD6Z,SAAS3M,EAAI/C,WACzB,OACE,2DAAC,6CAAAhK,UAAD,CAAWH,UAAW6V,EAAI,IACvBiE,YAAY5M,GACb,2DAAC,6CAAA5M,YAAD,CACEC,KAAK,SACLlB,MAAO6N,EAAI7N,MACXuD,SAAUsK,EAAItK,SACd5C,UAAWA,EACXkb,SAAUhO,EAAIgO,SACdC,SAAUjO,EAAIqO,WACdlZ,YAAa6K,EAAI7K,YACjB+Y,IAAK,MAMPnC,oBAAsB,SAAC/L,GAC3B,IAAMrL,EAAUqL,EAAIrL,QAAQ0B,KAAI,SAAAgB,GAAE,MAAK,CAAElF,MAAOkF,EAAGjD,IAAKc,KAAMmC,EAAGjD,IAAKC,MAAOgD,EAAGhD,UAC5EvB,EAAYkN,EAAIiP,WAAa,qCAAuC,qCAGlEC,GAFNpc,EAAYkN,EAAIqO,YAAcrO,EAAIiP,WAAa,qCAAuCnc,EACtFA,EAAY,GAAH,OAAMA,EAAN,kBACG6B,EAAQkG,MAAK,SAAAzD,GAAC,OAAIA,EAAEjF,QAAU6N,EAAI7N,UAAU,MAClDwW,EAAMgE,SAAS3M,EAAI/C,UACnBkS,EAAe,CACnBC,WAAY,SAAAC,GAAI,sCAAUA,GAAV,IAAgBC,OAAQ,QACxCC,KAAM,SAAAF,GAAI,sCAAUA,GAAV,IAAgBC,OAAQ,SAEpC,OACE,2DAAC,6CAAArc,UAAD,CAAWH,UAAW6V,EAAI,IACvBiE,YAAY5M,GACb,mEAAMlN,UAAW6V,EAAI,IACnB,2DAAC,oDAAD,CACE6G,aAAAA,EACAta,KAAM8K,EAAI3F,MACVoV,OAAAA,EACA9a,QAASA,EACTxC,MAAO+c,EACPxZ,SAAUsK,EAAItK,SACd5C,UAAWA,EACX4c,WAAY1P,EAAIgO,SAChB2B,iBAAkBC,SAASC,KAC3BC,OAAQX,OAOZjD,2BAA6B,SAAClM,GAClC,IAAIlN,EAAYkN,EAAIiP,WAAa,WAAa,WAExCtG,GADN7V,EAAYkN,EAAIqO,YAAcrO,EAAIiP,WAAa,WAAanc,EAChD6Z,SAAS3M,EAAI/C,WACzB,OACE,2DAAC,6CAAAhK,UAAD,CAAWH,UAAW6V,EAAI,IACvBiE,YAAY5M,GACb,2DAAC,6CAAA7M,WAAD,CAAYL,UAAW6V,EAAI,IACzB,2DAAC,6CAAAvV,YAAD,CACEC,KAAK,SACLlB,MAAO6N,EAAI7N,MACXuD,SAAUsK,EAAItK,SACd5C,UAAS,UAAKA,EAAL,YAAkB6V,EAAI,IAC/BqF,SAAUhO,EAAIgO,SACdC,SAAUjO,EAAIqO,WACdlZ,YAAa6K,EAAI7K,YACjB+Y,IAAK,IAEP,2DAAC,6CAAA/a,WAAA,OAAD,KACE,2DAAC,6CAAAxB,OAAD,CAAQuH,SAAU8G,EAAIgO,SAAUG,QAAAA,EAAOtc,QAASmO,EAAInO,QAASD,QAAQ,cAClEmd,0CAAAA,KAAAA,EAAWC,0CAAAA,IAAQhP,EAAIpF,cAAeoF,EAAIjF,cAAc1G,QAAU,QAQzEkY,mBAAqB,SAAAvM,GAAG,OAC5B,2DAAC,6CAAA/M,UAAD,KACG2Z,YAAY5M,GACb,2DAAC,kDAAD,CAAa5L,IAAG,eAAU4L,EAAI6O,MAAMxU,OAAS2F,IAAKA,MAIhD0M,kBAAoB,SAAC1M,GACzB,IAAIlN,EAAYkN,EAAIiP,WAAa,WAAa,WAExCtG,GADN7V,EAAYkN,EAAIqO,YAAcrO,EAAIiP,WAAa,WAAanc,EAChD6Z,SAAS3M,EAAI/C,WACzB,OACE,2DAAC,6CAAAhK,UAAD,CAAWH,UAAS,kCAA6B6V,EAAI,KAClDiE,YAAY5M,GACb,2DAAC,6CAAA5M,YAAD,CACEC,KAAK,OACLlB,MAAO6N,EAAI7N,MACXuD,SAAUsK,EAAItK,SACd5C,UAAS,UAAKA,EAAL,YAAkB6V,EAAI,IAC/BqF,SAAUhO,EAAIgO,SACdC,SAAUjO,EAAIqO,WACdlZ,YAAa6K,EAAI7K,gBAMnBiX,sBAAwB,SAACpM,GAC7B,IAAIlN,EAAYkN,EAAIiP,WAAa,WAAa,WAExCtG,GADN7V,EAAYkN,EAAIqO,YAAcrO,EAAIiP,WAAa,WAAanc,EAChD6Z,SAAS3M,EAAI/C,WACzB,OACE,2DAAC,6CAAAhK,UAAD,CAAWH,UAAS,kCAA6B6V,EAAI,KAClDiE,YAAY5M,GACb,2DAAC,6CAAA5M,YAAD,CACE2c,eAAe,WACf5d,MAAO6N,EAAI7N,MACXuD,SAAUsK,EAAItK,SACd5C,UAAWA,EACXkb,SAAUhO,EAAIgO,SACdC,SAAUjO,EAAIqO,WACdlZ,YAAa6K,EAAI7K,gBAMnBqX,eAAiB,SAACxM,GACtB,IAAQ1H,EAAW0H,EAAX1H,OACFsW,EAAO,GAmBPjG,IAlBL3I,EAAI6O,OAAS7O,EAAI6O,MAAMmB,iBAAiB3Z,KAAI,SAAC2H,GAC5C,IAGUiS,EAHFhY,EAA4B+F,EAA5B/F,MAAOoC,EAAqB2D,EAArB3D,MAAO6V,EAAclS,EAAdkS,UAetB,OAdI7V,GAAmB,KAAVA,IACPA,EAAMlB,SAAS,SACX8W,EAAM5V,EAAM8J,MAAM,UACE,IAAf8L,EAAIrX,UACPuX,IAAQ7X,EAAOL,IAAU,IAAI+B,QAAU,IAAIa,MAAK,SAAAvE,GAAC,OAAIA,EAAE+D,QAAU4V,EAAI,IAAiB,UAAX3Z,EAAEjD,UAC1E8c,EAAI1P,YAAe,IAAIrK,SAAQ,SAACga,GACnCA,GAAOA,EAAIH,EAAI,KAAuB,KAAhBG,EAAIH,EAAI,MAAcrB,EAAKha,KAAKwb,EAAIH,EAAI,KAAMrB,EAAKha,KAAKsb,QAIhFG,IAAO/X,EAAOL,IAAU,IAAI+B,QAAU,IAAIa,MAAK,SAAAvE,GAAC,OAAIA,EAAE+D,QAAUA,OAC5DgW,EAAGle,OAAsB,KAAbke,EAAGle,QAAgByc,EAAKha,KAAKyb,EAAGle,OAAQyc,EAAKha,KAAKsb,MAAAA,KAKlEvD,SAAS3M,EAAI/C,WACzB,OACE,2DAAC,6CAAAhK,UAAD,CAAWH,UAAS,kCAA6B6V,EAAI,KAClDiE,YAAY5M,GACb,2DAAC,6CAAA5M,YAAD,CACEC,KAAK,OACLlB,MAAOyc,EAAK0B,KAAK,IACjBxd,UAAS,mBAAc6V,EAAI,IAC3BqF,UAAAA,EACAC,UAAAA,MAMFsC,oBAAsB,SAACvQ,EAAKwQ,GAChC,IAAMC,EACJ,2DAAC,6CAAA9e,OAAD,CAAQmD,OAAO,SAASkE,GAAIwX,EAAW7Q,IAAK7M,UAAU,eAAejB,QAAS,kBAAMmO,EAAItK,SAAJ,+BAAkBsK,EAAI7N,OAAtB,IAA6BwK,OAAQ,IAAKgD,IAAK6Q,EAAW7Q,SAC5I,gEAAG7M,UAAU,cAAcY,cAAY,UAGrCgd,EAAWF,EAAWG,IACvB,gEAAG9e,QAAS,oBAAM+e,0CAAAA,IAAa,CAAEC,SAAU,uBAAF,OAAyBL,EAAWG,KAAOzb,KAAMsb,EAAWE,YAAa9d,MAAO,CAAEiS,OAAQ,YAAc2L,EAAWE,UAAiBF,EAAWE,SAC7L,OACE,kEAAK5d,UAAU,gBACb,sEACE,sEAAM2d,GACN,kEAAK3d,UAAU,oBAAoB4d,GACnC,kEAAK5d,UAAU,oBACb,2DAAC,6CAAAG,UAAD,CAAW6B,OAAO,SAChB,2DAAC,6CAAA1B,YAAD,CACEC,KAAK,OACLlB,MAAOqe,EAAWnc,OAAS,GAC3BqB,SAAU,SAAAsI,GAAC,OAAIgC,EAAItK,SAAJ,+BACVsK,EAAI7N,OADM,IACCwK,OAAQ,IAAKgD,IAAK6Q,EAAW7Q,IAAKuP,IAAKlR,aAU/DqO,oBAAsB,SAACrM,GAC3B,IAAM8Q,EAAe9Q,EAAI7N,OAAS6N,EAAI7N,MAAMsN,OAAU,GACtD,OAAIO,EAAItE,SAAkB,6FAGxB,2DAAC,6CAAAzI,UAAD,CAAWH,UAAU,2BAClB8Z,YAAY5M,GACb,2DAAC,6CAAA5M,YAAA,OAAD,CAAoBR,MAAO,CAAE+b,cAAe,QAC1C,2DAAC,sDAAD,CACE3V,GAAG,WACH2N,OAAQ,SAAA3I,GAAC,OAAIgC,EAAItK,SAAJ,+BACRsK,EAAI7N,OADI,IACGwK,OAAQ,IAAKuS,IAAKlR,MAElCpL,MAAO,CAAE4R,OAAQ,GAAIC,MAAO,OAAQsM,OAAQ,yBAE5C,kEAAKne,MAAO,CAAEoe,UAAW,SAAUC,WAAY,EAAGC,MAAO,SAAzD,oCAKJ,2DAAC,6CAAAC,UAAD,KACGL,EAAYza,KAAI,SAAAma,GAAU,OACzB,2DAAC,6CAAAY,cAAD,CAAehd,IAAKoc,EAAWxX,GAAIlG,UAAU,iBAC1Cyd,oBAAoBvQ,EAAKwQ,UAQhC/D,UAAY,SAACzM,GACjB,IAAMrL,GAAWqL,EAAI6O,MAAMwC,YAAc,IAAIhb,KAAI,SAACgB,GAChD,IAAMhD,EAAQgD,EAAGhD,MAAMgZ,MAAM,cAC7B,MAAQ,CAAElb,MAAOkF,EAAGjD,IAAKc,KAAMmC,EAAGjD,IAAKC,MAAoB,KAAbA,EAAM,GAAYA,EAAM,GAAKA,EAAM,OAE/EvB,EAAYkN,EAAIiP,WAAa,qCAAuC,qCAGlEC,GAFNpc,EAAYkN,EAAIqO,YAAcrO,EAAIiP,WAAa,qCAAuCnc,EACtFA,EAAY,GAAH,OAAMA,EAAN,kBACG6B,EAAQkG,MAAK,SAAAzD,GAAC,OAAIA,EAAEjF,QAAU6N,EAAI7N,UAAU,MACxD,OACE,2DAAC,6CAAAc,UAAD,KACG2Z,YAAY5M,GACb,2DAAC,oDAAD,CACEsR,mBAAoB,CAAEvV,SAAU,YAChC7G,KAAM8K,EAAI3F,MACVoV,OAAAA,EACA9a,QAASA,EACTxC,MAAO+c,EACPxZ,SAAUsK,EAAItK,SACd5C,UAAWA,EACXoG,SAAU8G,EAAIgO,c,6GA5ahBrB,SAAAA,WAAAA,8F,WAMAC,YAAAA,cAAAA,8F,WAMAd,uBAAAA,yBAAAA,8F,WAsEAD,sBAAAA,wBAAAA,8F,WA6BAG,kBAAAA,oBAAAA,8F,WAwCAM,SAAAA,WAAAA,8F,WAMAH,wBAAAA,0BAAAA,8F,WA2BAF,oBAAAA,sBAAAA,8F,WAqBAF,oBAAAA,sBAAAA,8F,WAgCAG,2BAAAA,6BAAAA,8F,WA4BAK,mBAAAA,qBAAAA,8F,WAOAG,kBAAAA,oBAAAA,8F,WAoBAN,sBAAAA,wBAAAA,8F,WAoBAI,eAAAA,iBAAAA,8F,WAoCA+D,oBAAAA,sBAAAA,8F,WA6BAlE,oBAAAA,sBAAAA,8F,WA+BAI,UAAAA,YAAAA,+F,wqCCzaW,SAAX8E,EAAWvf,GACf,IAAQqG,EAAmCrG,EAAnCqG,WAAYsB,EAAuB3H,EAAvB2H,mBACpB,OAAkDnI,EAAAA,UAAS,MAA3D,GAAOggB,EAAP,KAA0BC,EAA1B,KACOC,GAAP,OAAgClgB,EAAAA,UAAS,IAAzC,OAAiBmgB,EAAjB,KAyBA,OAAM,EApBNC,EAAAA,YAAU,WACR,IACAC,EAA2B,GAAjBA,GAAAA,EADIC,EAAAA,IAAW9f,IACP4G,OAAaiZ,EAAUE,EAAAA,GAEzCJ,EAAYE,KACX,CAACxZ,EAAYsB,KAAAA,EAEhBiY,EAAAA,YAAU,WACR,IACAC,EAA2B,GAAjBA,GAAAA,EADIC,EAAAA,IAAW9f,IACP4G,OAAaiZ,EAAUE,EAAAA,GAEzCJ,EAAYE,KACX,OAEHD,EAAAA,YAAU,WACJJ,GAAqBE,EAAS9Y,QAChC4Y,EAAkBQ,YAEnB,CAACR,EAAmBE,EAAS9Y,SAG9B,kBAAC,EAAAqZ,kBAAD,KACE,kBAAC,IAAD,CACEP,SAAUA,EACVQ,OA5BS,SAAAC,GACbV,EAAqBU,IA4BjBC,eAAgBC,EAAAA,eAAAA,MAChBC,UAAW,CAAEC,aAAcC,EAAAA,GAC3BC,cAAe,IAEf,kBAAC,EAAAC,SAAD,Q,gNArCFnB,EAAAA,2IA2CNA,EAAS3d,UAAY,CACnByE,WAAYxE,IAAAA,OAAAA,Y,EAGC0d,EAAf,O,6FA/CMA,EAAAA,WAAAA,iF,uOCEkB,SAAlBoB,EAAkB3gB,GACtB,IAAQS,EAAuBT,EAAvBS,KAAMmgB,EAAiB5gB,EAAjB4gB,KACd,GADoB7a,EAAW/F,EAAX+F,QACftF,EAAM,OAAO,KAClB,IAAQkH,EAA+CiZ,EAA/CjZ,mBAAoBtB,EAA2Bua,EAA3Bva,WAC5B,OADwCwa,EAAeD,EAAfC,WACpC3c,OAAOC,KAAKwD,GAAoBf,OAAS,EAAU,KAClD1C,OAAOC,KAAKwD,EAAmB2D,MAAQ,IAAI1E,OAAS,IACpDe,EAAmB2D,KAAKoU,UAAY,IAAI9Y,OAAS,EAElD,kBAAC,EAAArG,MAAD,CAAOE,KAAMA,EAAMqC,OAAO,QAAQpC,OAAQqF,GACxC,kBAAC,EAAAxF,MAAA,OAAD,CAAcI,aAAAA,GACZ,kBAAC,EAAAJ,MAAA,MAAD,eAAiBsgB,EAAjB,eAEF,kBAAC,EAAAtgB,MAAA,KAAD,6BAMJ,kBAAC,IAAD,CAAWugB,OAAO,gBAAgBC,OAAO,QACvC,yBAAKjgB,UAAU,uBACb,kBAAC,EAAA2D,MAAD,CAAO7E,QAAQ,WACb,kBAAC,EAAA6E,MAAA,QAAD,CAAe3D,UAAU,gBAAzB,UACM+f,EADN,aAEE,kBAAC,EAAAlhB,OAAD,CAAQC,QAAQ,SAASkD,OAAO,SAAShC,UAAU,kBAAkBjB,QAASkG,GAAQ,kBAAC,EAAA+Q,gBAAD,CAAiBC,KAAMiK,EAAAA,YAE/G,kBAAC,EAAAvc,MAAA,KAAD,KACE,yBAAK3D,UAAU,WACb,yBAAKA,UAAU,eAAc,kBAAC,IAAD,CAAUuF,WAAYA,EAAYsB,mBAAoBA,U,8RASjGgZ,EAAgB/e,UAAY,CAC1BnB,KAAMoB,IAAAA,KAAAA,WACN+e,KAAM/e,IAAAA,MAAgB,CACpB8F,mBAAoB9F,IAAAA,OAAkBwE,WAAYxE,IAAAA,OAAkBgf,WAAYhf,IAAAA,SAC/Ewa,WACHtW,OAAQlE,IAAAA,KAAAA,Y,EAGK8e,EAAf,O,6FA5CMA,EAAAA,kBAAAA,wF,i7BCHY,SAAZM,EAAYC,GAAM,OAAIpT,QAAQC,IAAI,mBAAoBmT,GAE1C,SAAZV,EAAa,GAAD,OAAGI,EAAH,EAAGA,KACnB,oCACE,kBAAC,EAAAO,OAAD,CAAQ9f,KAAK,SAAS0I,SAAUqX,EAAAA,SAAAA,IAAcxgB,MAAOygB,EAAmBJ,UAAWA,IACnF,6BACE,yBAAKrgB,MAAO,CAAE0gB,YAAa,kBAAmBC,YAAa,QAASC,YAAa,UAAW,2BAAIZ,EAAK3a,MAAM5D,QAC3G,iCAEGue,EAAK3a,MAAM7D,IAFd,MAMF,kBAAC,EAAA+e,OAAD,CAAQ9f,KAAK,SAAS0I,SAAUqX,EAAAA,SAAAA,OAAiBpa,GAAG,IAAIpG,MAAO6gB,K,2LAf7DJ,EAAoB,CAAEK,WAAY,QAClCD,EAAqB,EAAH,KAAQJ,GAAR,IAA2BM,IAAK,K,KAkBzCC,EAAAA,MAAKpB,GAApB,O,6FAnBMa,EAAAA,oBAAAA,kF,WACAI,EAAAA,qBAAAA,kF,WACAR,EAAAA,YAAAA,kF,WAEAT,EAAAA,YAAAA,kF,q7GCKeqB,mBAAAA,SAAAA,Y,qFACnB,4BAAY7hB,GAAO,iDACjB,mBAAMA,IACDwW,aAAe,EAAKA,aAAajP,KAAlB,2BACpB,EAAKua,gBAAkB,EAAKA,gBAAgBva,KAArB,2BACvB,EAAKwa,UAAY,EAAKA,UAAUxa,KAAf,2BAJA,E,kEAOnB,SAAayE,EAAG1H,EAAG0d,EAAGxgB,IAAAA,EACCzB,KAAKC,MAAlB0D,UACCsI,EAAG1H,EAAG0d,EAAGxgB,K,6BAGpB,SAAgBwK,EAAGhF,EAAI1C,GAAsB,IAKjC4D,EACF+Z,EANgBC,EAAmB,wDACnCpF,EAAgB/c,KAAKC,MAArB8c,YACFtO,EAAMlK,EAAEiK,WAAW1F,MAAK,SAAAyF,GAAC,OAAIA,EAAEtH,KAAOA,KACvCkb,IACY,mBAAXlW,EAAE3K,OAEA4gB,GADE/Z,GAAAA,EAAQS,0CAAAA,IAASqD,EAAEpD,gBACRzD,WAAU,SAAA2D,GAAC,OAAIA,EAAE1G,MAAQ4J,EAAEjD,iBACjCb,EAAMtB,OAAS,EAAGqb,GAAQ,EAAQA,EAAO,EACpDzT,EAAIzF,aAA8B,EAAfb,EAAMtB,OAAasB,EAAM+Z,GAAM7f,IAAM,GACxDoM,EAAIrO,OAAAA,EAAQyO,0CAAAA,IAAe5C,EAAEpD,cAAe4F,EAAIzF,aAAciD,EAAE7L,QAEhEqO,EAAIrO,MAAQ6L,EAAE1G,OAAOnF,OAKzB2c,EAFkB/c,KAAKC,MAAfiG,MAEU7D,IADN,CAAEkC,EAAAA,EAAGkK,IAAAA,GACW0T,K,yBAG9B,SAAYC,EAAUhU,EAAK+O,GACzB,IAAQrd,EAAYE,KAAKC,MAAjBH,QACFqI,GAAAA,EAAQS,0CAAAA,IAASwF,EAAIvF,eACvBqZ,EAAO/Z,EAAM/C,WAAU,SAAA6G,GAAC,OAAIA,EAAE5J,MAAQ8a,KACtC+E,EAAO/Z,EAAMtB,OAAS,EAAGqb,GAAQ,EAAQA,EAAO,EAEpDG,EAAOrZ,aAA8B,EAAfb,EAAMtB,OAAasB,EAAM+Z,GAAM7f,IAAM,GAC3DvC,EAAQsiB,EAAUC,K,mBAGpB,WAAQ,WAEJnc,GADF,EAEIlG,KAAKC,OADPiG,MAAOoc,EADT,EACSA,cAAerb,EADxB,EACwBA,GAAIV,EAD5B,EAC4BA,OAAQmD,EADpC,EACoCA,UAAWC,EAD/C,EAC+CA,SAAU4H,EADzD,EACyDA,OAAQrG,EADjE,EACiEA,SAEzDjD,EAAoB/B,EAApB+B,OAAQ5F,EAAY6D,EAAZ7D,IAAKkgB,EAAOrc,EAAPqc,GACfC,EAAStc,EAATsc,KAEAC,GADgBD,EAAlBtX,GAAcqX,EAAW,EACdC,IAAQ,EACjBE,EAAMxW,KAAKyW,MAAM,GAAKF,GACtBG,EAAuB,EAAf,GAAKH,EAAc,UAAY,GACvCra,EAAK,GACP9C,EAAK,GACLud,EAAS,EACTC,EAAQ,EA2DZ,OA1DC7a,GAAU,IAAI5D,SAAQ,SAACE,EAAG7F,GACzB,IACQqkB,EAEAC,EASAC,GAAAA,EAZJC,0CAAAA,IAAe3e,EAAGgC,IACdwc,GAAAA,EAAOna,0CAAAA,IAASrE,EAAEsE,eAAe,IAAM,GACvCsa,IAAU5e,EAAEie,MAAQ,GACpBQ,EAAmB,UAAXze,EAAEjD,KAAqB,IAAM6hB,GAAU,GAAMT,EAC3DG,EAAqB,UAAXte,EAAEjD,KAAoBuhB,EAAWJ,GAAUU,GAAU,GAAMN,EAAU,EAElEJ,EAATI,IACFza,EAAGvF,KAAK,2DAAC,6CAAAugB,IAAD,CAAK/gB,IAAKygB,GAAQxd,IAC1Bwd,GAAS,EACTxd,EAAK,GACLud,EAAqB,UAAXte,EAAEjD,KAA8BmhB,GAAUU,GAAU,GAAe,GAEzEF,EACJ,2DAAC,6CAAAI,IAAD,CAAKhhB,IAAG,eAAUA,EAAV,YAAiBkC,EAAE+e,SAAnB,YAA+B/e,EAAE+D,OAASib,GAAIP,EAAMQ,GAAIR,EAAMjiB,UAAsB,UAAXwD,EAAEjD,KAAmB,GAAKshB,GACzG,2DAAC,qDAAD,CACEvgB,IAAG,UAAK4E,EAAL,YAAWf,EAAX,YAAoB3B,EAAE+D,MAAtB,uBACH/B,OAAQA,EACRU,GAAIA,EACJf,MAAOA,EACP4W,MAAOvY,EACPjC,MAAOiC,EAAEjC,MACTlC,MAAOmE,EAAEnE,OAAS,GAClB0a,YAAavW,EAAEuW,aAAe,GAC9BxZ,KAAMiD,EAAEjD,MAAQ,OAChBgH,MAAO/D,EAAE+D,OAAS,QAClB4S,QAAS3W,EAAE2W,SAAW,GACtBtY,QAAU0f,GAAiBA,EAAc/d,EAAEsE,gBAAkByZ,EAAc/d,EAAEsE,eAAejG,SAAY,GACxGe,SAAU,SAAAC,GAAK,OAAI,EAAK6S,aAAa7S,EAAOW,EAAE+D,MAAOjG,EAAKkC,EAAEjD,OAC5Dyb,YAAa,EAAKgF,gBAClB7E,YAAAA,EACAxT,UAAWA,EACXC,SAAUA,EACVsS,UAAAA,EACAK,WAAY/X,EAAE2X,WAAAA,EACd9Y,YAAamB,EAAEnB,aAAe,GAC9ByF,cAAetE,EAAEsE,cACjBG,aAAczE,EAAEyE,cAAgB+Z,EAAK1gB,IACrCvC,QAAS,kBAAM,EAAK2jB,YAAYphB,EAAKkC,EAAIA,EAAEyE,cAAgB+Z,EAAK1gB,MAChEigB,cAAeA,GAAiB,GAChC/Q,OAAQA,EACRrG,SAAUA,KAIhB5F,EAAGzC,KAAKogB,GAEQ,KADWJ,EAAvBA,EAASJ,GAAW,EAAY,EAC/BI,IAAkB5a,EAAOpB,SAAYnI,EAAI,IAC5C0J,EAAGvF,KAAK,2DAAC,6CAAAugB,IAAD,CAAK/gB,IAAKygB,GAAQxd,IAC1Bwd,GAAS,EACTxd,EAAK,KAEE2C,EAAOpB,SAAYnI,EAAI,IAChC0J,EAAGvF,KAAK,2DAAC,6CAAAugB,IAAD,CAAK/gB,IAAKygB,GAAQxd,IAC1Bwd,GAAS,EACTxd,EAAK,OAGF8C,I,uBAGT,SAAUoK,EAAK6D,GACbrW,KAAKyW,aAAa,KAAMjE,EAAK6D,EAAK,gB,oBAGpC,WACE,IACEpP,GADF,EAEIjH,KAAKC,OADPgH,GAAIf,EADN,EACMA,MAAO6I,EADb,EACaA,SAAUC,EADvB,EACuBA,MAAO7D,EAD9B,EAC8BA,OAEtBgU,EAAwBjZ,EAAxBiZ,MAAOte,EAAiBqF,EAAjBrF,MAAOyB,EAAU4D,EAAV5D,MAyBtB,OAvBIoU,EAAKyI,GAAS,UACZuE,GAAM7iB,GAAS,yBAAyBgW,QAAQ,wBAAyB,8BAEzE8M,EACJ,2DAAC,6CAAD,CACEriB,KAAK,YACL4E,MAAOA,EACPoC,MAAM,QACN6N,SAAU,CAAElP,GAAIf,EAAM7D,KACtB+T,WAAYpW,KAAKgiB,UACjB/a,GAAIA,EACJwP,aAAczW,KAAKyW,aACnBC,GAAIA,EACJ1H,MAAOA,IAGL4I,EAAwB,KAAVtV,EAAgB,wEAClC,2DAAC,6CAAAoC,MAAA,QAAD,CAAe3D,UAAW2iB,GACxB,2DAAC,6CAAAhf,MAAA,MAAD,CAAaE,QAAAA,GAAQtC,IAGnBshB,EAAmB,SAAPlN,EAAgB,qBAAuB,GAC9C,SAAPA,IAAeA,EAAK,WAEtB,2DAAC,6CAAAmN,WAAD,CAAYC,WAAAA,EAAU7c,GAAG,0BAA0B8c,iBAAiB,IAAIljB,MAAO,CAAEmC,aAAc,QAC7F,2DAAC,6CAAA0B,MAAD,CAAO7E,QAAS6W,EAAI3V,UAAS,mCAA8B6iB,GAAaI,SAAS,KAC9EjV,EAAW4U,EAAW/L,EACvB,2DAAC,6CAAAlT,MAAA,SAAD,KACE,2DAAC,6CAAAA,MAAA,KAAD,CAAY3D,UAAU,iCACnBf,KAAKikB,QACL9Y,GAAUA,EAAOjF,EAAM7D,W,8IA7JjByf,CAA2BlgB,mCAAAA,WAsKhDkgB,mBAAmBjgB,UAAY,CAC7BoF,GAAInF,kDAAAA,UAAoB,CAACA,kDAAAA,OAAkBA,kDAAAA,SAC3CoE,MAAOpE,kDAAAA,OACPwgB,cAAexgB,kDAAAA,OACf6B,SAAU7B,kDAAAA,KAAAA,WACVib,YAAajb,kDAAAA,KAAAA,WACbhC,QAASgC,kDAAAA,KACTyE,OAAQzE,kDAAAA,OAAAA,WACR4H,UAAW5H,kDAAAA,KACX6H,SAAU7H,kDAAAA,KACViN,SAAUjN,kDAAAA,KACVoJ,SAAUpJ,kDAAAA,KACVyP,OAAQzP,kDAAAA,KACRkN,MAAOlN,kDAAAA,KACPqJ,OAAQrJ,kDAAAA,KAGVggB,mBAAmBrc,aAAe,CAChCwB,GAAI,EACJqb,cAAe,GACfxiB,QAAS,aACT4J,WAAU,EACVC,UAAS,EACToF,UAAS,EACT7D,UAAS,EACTqG,OAAQ,aACRvC,OAAM,EACN7D,OAAQ,M,4GAjMW2W,mBAAAA,qBAAAA,6F,wJCiBF,SAAboC,EAAc3d,EAAQ4I,GAC1B,IAAMgV,EAAS,GAEf,OADA5d,EAAOlC,SAAQ,SAAA6B,GAAWie,EAAOthB,KAAK,yBAAKR,IAAK6D,EAAM7D,KAAM+hB,EAAMle,EAAOiJ,QAClEgV,EAGU,SAAbE,EAAapkB,GACjB,IACES,EACET,EADFS,KAAM6F,EACJtG,EADIsG,OAAQhG,EACZN,EADYM,QAEhB,OAFyB4O,EACrBlP,EADqBkP,OAEpBzO,IACCqL,GAAAA,EAAeC,EAAAA,QAAOzF,EAAQ,CAAC,WAAY,iBAAmB,IACnDM,OAAS,EAFR,MAGZsd,EAASD,EAAWnY,EAAcoD,GAEtC,kBAAC,EAAA3O,MAAD,CAAOE,KAAMA,EAAMC,OAAQJ,GACzB,kBAAC,EAAAC,MAAA,OAAD,CAAcI,aAAAA,GAAY,kBAAC,EAAAJ,MAAA,MAAD,sBAC1B,kBAAC,EAAAA,MAAA,KAAD,KACE,yBAAKK,MAAO,CAAEwG,UAAW,OAAQvG,SAAU,SACzC,yBAAKC,UAAU,gBAAgBojB,O,oFAtCnCC,G,uLAAQ,SAACle,EAAOiJ,GAAR,OACZ,yBAAKpO,UAAU,wBACb,6BACE,6BACE,2BAAImF,EAAM5D,OACV,6BAFF,IAIG4D,EAAM7D,IAJT,KAOA,kBAAC,EAAAiI,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,MAAMC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,GAAG,mBAAZ,uBACxD,kBAAC,EAAArH,OAAD,CAAQC,QAAQ,UAAUC,QAAS,SAAA8D,GAAK,OAAIuL,EAAMvL,EAAOsC,KACvD,kBAAC,EAAA6Q,gBAAD,CAAiBC,KAAMC,EAAAA,eAiCjCoN,EAAWxiB,UAAY,CACrBnB,KAAMoB,IAAAA,KAAAA,WACNyE,OAAQzE,IAAAA,OAAAA,WACRvB,QAASuB,IAAAA,KAAAA,WACTqN,MAAOrN,IAAAA,KAAAA,Y,EAGMuiB,EAAf,O,6FApDMD,EAAAA,QAAAA,qF,WAmBAF,EAAAA,aAAAA,qF,WAMAG,EAAAA,aAAAA,qF,2OC9Be,SAAfpV,EAAgBhP,GACpB,IACEsG,EAEEtG,EAFFsG,OAAQ3D,EAEN3C,EAFM2C,QAASyI,EAEfpL,EAFeoL,WAAY8C,EAE3BlO,EAF2BkO,cAAeQ,EAE1C1O,EAF0C0O,UAC5CG,EACE7O,EADF6O,OAAQ7H,EACNhH,EADMgH,GAAIyC,EACVzJ,EADUyJ,UAAWqF,EACrB9O,EADqB8O,SAAUpF,EAC/B1J,EAD+B0J,SAAUsB,EACzChL,EADyCgL,OAAQC,EACjDjL,EADiDiL,SAAU8D,EAC3D/O,EAD2D+O,MAAO7D,EAClElL,EADkEkL,OAmBhEgZ,GAfAG,EAAcpZ,EAAW,GAAK4D,EAAOxK,KAAI,SAAA2H,GAAC,OAC9C,kBAAC,IAAD,CACE5J,IAAG,UAAK4J,EAAEjK,QAAQiF,GAAf,YAAqBgF,EAAE3D,MAAvB,2BACHA,MAAO2D,EAAE3D,MACThG,MAAO2J,EAAE3J,OAAS,GAClBwY,YAAa7O,EAAEjK,QAAQ8Y,aAAe,GACtC1a,MAAO6L,EAAEjK,QAAQiK,EAAE3D,QAAU,GAC7BhH,KAAM2K,EAAE3K,KACR4b,WAAYjR,EAAEiR,aAAAA,EACdjB,SAAUhQ,EAAEgQ,WAAAA,EACZK,WAAYrQ,EAAEqQ,aAAAA,EACd3Y,SAAU,SAAAC,GAAK,OAAIyH,EAAWzH,EAAOqI,EAAE3D,MAAO,GAAI2D,EAAE3K,YAGlDyK,GAAAA,EAAeC,EAAAA,QAAOzF,EAAQ,CAAC,WAAY,iBAAmB,GACrD,GAAGoH,OAAO2W,IAmEzB,OAlEAvY,EAAa1H,SAAQ,SAAC6B,EAAOf,GAE3B,IAAI+F,GAAahF,EAAMqc,GAEvB,GADMgC,EAAK,GAAH,OAAMre,EAAM7D,IAAZ,YAAmB8C,QAC3B,IAAWe,EAAMse,aAAoD,MAArBte,EAAMse,aAAoD,IAA7Bte,EAAMse,YAAY3d,OAAc,CAC3G,IAAM4d,EACJ,kBAAC,IAAD,CACExd,GAAIA,EACJ5E,IAAKkiB,EACLre,MAAOA,EACPvC,SAAU0H,EACV0R,YAAa5O,EACbmU,cAAe1f,EACf9C,QAAS6O,EACTpI,OAAQA,EACRmD,UAAWA,EACXC,SAAUA,EACVoF,SAAUA,EACVwC,OAAQtG,EACRC,SAAUA,EACV8D,MAAOA,EACP7D,OAAQA,IAGZgZ,EAAOthB,KAAK4hB,QACP,GAAIve,EAAMse,aAA0C,EAA3Bte,EAAMse,YAAY3d,OAAY,CAG5D,IAFA,IAAI6d,GAAAA,EAEKhmB,EAAI,EAAGA,EAAIwH,EAAMse,YAAY3d,QAAgB,UAHM,SAGnDnI,GACP,IAAMimB,EAAOze,EAAMse,YAAY9lB,IAAM,GAGrC,MAAgB,cAFV4f,IAAO/X,EAAOoe,EAAKze,QAAU,IAAI+B,QAAU,IAC9Ca,MAAK,SAAAvE,GAAC,OAAIA,EAAE+D,QAAUqc,EAAKrc,UAAU,IACjChH,OAAyB,CAAC,QAAS,KAAM,IAAK,KAAK8F,UAAUud,EAAKvkB,OAAS,IAAIC,OAAOukB,sBAAAA,KAA2BtG,GAAMA,EAAGle,SAAAA,IAA0Bke,EAAGle,QAC1J,CAAC,OAAQ,MAAO,IAAK,KAAKgH,UAAUud,EAAKvkB,OAAS,IAAIC,OAAOukB,qBAAAA,IAA0BtG,EAAGle,QAAAA,IAAyBke,EAAGle,QAG/G,CAAC,OAAQ,UAAUgH,SAASkX,EAAGhd,YAAAA,KAAkBgd,GAAMA,EAAGle,SAA2Bke,EAAGle,OAAS,IAAIC,UAAYskB,EAAKvkB,OAAS,IAAIC,QAF5IqkB,GAAAA,EACA,gBAVwD,CAGnDhmB,GAAqCA,GAAK,IAUzC,IAINgmB,IACIG,EACJ,kBAAC,IAAD,CACE5d,GAAIA,EACJ5E,IAAKkiB,EACLre,MAAOA,EACPvC,SAAU0H,EACV0R,YAAa5O,EACbmU,cAAe1f,EACf9C,QAAS6O,EACTpI,OAAQA,EACRmD,UAAWA,EACXC,SAAUA,EACVoF,SAAUA,EACVwC,OAAQtG,EACRC,SAAUA,EACV8D,MAAOA,EACP7D,OAAQA,IAGZgZ,EAAOthB,KAAKgiB,QAIXV,E,8OAGMlV,EAAf,O,6FA5FMA,EAAAA,eAAAA,uF,8lDCHe6V,WAAAA,WACnB,oBAAYC,GAAM,iCAChB5gB,OAAO6gB,OAAOhlB,KAAM+kB,GACf/kB,KAAKiH,KAAMjH,KAAKiH,GAAK6d,WAAWG,W,iDAevC,WACE,OAAM,IAACjlB,KAAK4G,S,uBAGd,WACE,OAAO,KAAP,kEAAuB,CACrB+X,SAAU3e,KAAK2e,SACfuG,WAAYllB,KAAKklB,WACjBC,KAAMnlB,KAAKmlB,KACXC,MAAOplB,KAAKolB,MACZC,aAAcrlB,KAAKqlB,aACnBC,WAAYtlB,KAAKslB,WACjBre,GAAIjH,KAAKiH,GACTL,OAAQ5G,KAAKulB,QAAAA,M,gJAzBjB,WAAmB,OAAM,EAACzd,kCAAAA,O,sBAE1B,SAAgBqd,GACd,OAAO,IAAIL,WAAW,CACpBK,KAAAA,EACAhiB,KAAMgiB,EAAKhiB,KACXwb,SAAUwG,EAAKhiB,KACf+hB,WAAYC,EAAKle,GACjBqe,YAAW,Q,WAdIR,I,4GAAAA,WAAAA,aAAAA,qF,ogCCAAU,gBAAAA,WACnB,yBAAYT,GAAM,sCAChB5gB,OAAO6gB,OAAOhlB,KAAM+kB,GACf/kB,KAAKiH,KAAMjH,KAAKiH,GAAKue,gBAAgBP,W,qLAG5C,WAAmB,OAAM,EAACnd,kCAAAA,S,gBANP0d,I,4GAAAA,gBAAAA,kBAAAA,0F,wJCKI,SAAnBC,EAAoBxlB,GACxB,IAAQylB,EAAyBzlB,EAAzBylB,OAAQC,EAAiB1lB,EAAjB0lB,KAAMpU,EAAWtR,EAAXsR,OAChBqU,IAAQD,EAAK9E,KAAK6E,EAAOze,KAAO,IAAI7G,OAAS,IAAIwR,OAAS,GAEhE,OADMiU,IAASF,EAAK9E,KAAK6E,EAAOze,KAAO,IAAI7G,OAAS,IAAI0lB,gBAAkB,IAC9D,KAARF,EAAmB,8BAErB,uBAAG/S,KAAK,OAAO/S,QAAS,kBAAMyR,EAAO,SAAUqU,IAAM/kB,MAAO,CAAEiS,OAAQ,YACpE,0BAAM/R,UAAU,0BAA0B8kB,I,iOAKhDJ,EAAiB5jB,UAAY,CAC3B6jB,OAAQ5jB,IAAAA,OAAAA,WACR6jB,KAAM7jB,IAAAA,OAAAA,WACNyP,OAAQzP,IAAAA,MAGV2jB,EAAiBhgB,aAAe,CAAE8L,OAAQ,c,EAC3BkU,EAAf,O,6FAnBMA,EAAAA,mBAAAA,0F,gPCDe,SAAfM,EAAe9lB,GACnB,IACEgO,EACEhO,EADFgO,IAAKyX,EACHzlB,EADGylB,OAAQ/hB,EACX1D,EADW0D,SAEf,OAFyBgiB,EACrB1lB,EADqB0lB,KAEpB,CAAC,gBAAiB,eAAeve,SAASse,EAAOpkB,OAC9Cuf,EAAS8E,EAAT9E,KACR5S,EAAIoH,SAAW,CAACqQ,EAAOpkB,KAAK8Q,MAAM,KAAK,IACvCnE,EAAIyX,OAASA,EACbzX,EAAI4S,KAAOA,EACLmF,GAAAA,EAAOvjB,EAAAA,WAAUwL,GAErB,yBAAKlN,UAAU,mDACb,kBAAC,IAAD,CAA0BkN,IAAK+X,EAAMpR,OAAQjR,MARmB,K,uPAatEoiB,EAAalkB,UAAY,CACvB6jB,OAAQ5jB,IAAAA,OAAAA,WACRmM,IAAKnM,IAAAA,OAAAA,WACL6B,SAAU7B,IAAAA,KAAAA,WACV6jB,KAAM7jB,IAAAA,OAAAA,Y,EAGOikB,EAAf,O,6FAxBMA,EAAAA,eAAAA,sF,4OCDmB,SAAnBE,EAAmBhmB,GACvB,IAAQimB,EAAuBjmB,EAAvBimB,KAAMR,EAAiBzlB,EAAjBylB,OAGd,OAFIS,IAD2BlmB,EAAT0lB,KACI9E,KAAK6E,EAAOze,KAAO,IAAI7G,OAAS,IAAvC,aAAiD8lB,EAAK9lB,SAAY,GACrF+lB,EAA+B,qBAAfD,EAAK9lB,OAAiD,KAAjB+lB,EAAuBA,EAAarK,QAAQ,GAAKqK,EAEpG,kBAAC,EAAA7b,eAAD,CAAgBC,UAAU,MAAMC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,GAAG,kBAAZ,sBACvC,yBAAK4L,KAAK,SAASuT,sBAAqBD,EAAcplB,UAAU,eAAeF,MAAO,CAAEwlB,UAAW,YAAavT,OAAQ,SACrHqT,I,6OAMTF,EAAiBpkB,UAAY,CAC3BqkB,KAAMpkB,IAAAA,OAAAA,WACN4jB,OAAQ5jB,IAAAA,OAAAA,WACR6jB,KAAM7jB,IAAAA,OAAAA,Y,EAGOmkB,EAAf,O,6FAnBMA,EAAAA,mBAAAA,0F,wgHCOA3I,KAAO,SAACrP,EAAKqD,GAA8C,IA4B/CK,EAAM9M,EA5BM+P,EAAmC,uDAA1B,aAAUuM,EAAgB,uDAAP,GACxD,OAAIlT,EAAI7N,OAAS6N,EAAI7N,MAAMwR,OACnBtP,EAAQ2L,EAAI7N,MAAMwS,SACpBf,EAAQ5D,EAAI7N,MAAM0R,QAGlBD,EAFsB,WAAtB5D,EAAI7N,MAAM2R,SACRF,IAAUA,EAAMG,SAAS,SAAW/D,EAAI7N,MAAM6R,aACxC/K,8CAAAA,EAAAA,4BAGR2K,KAAUA,EAAMG,SAAS,UAASH,EAAQ3K,8CAAAA,EAAAA,uBACxCwK,EACJ,2DAAC,6CAAAY,QAAD,CAASrL,GAAG,cAAclB,MAAOzD,EAAOzB,MAAO,CAAE0R,SAAU,OAAQlL,UAAW,SAC5E,kEAAKmL,IAAKX,EAAOhR,MAAO,CAAE4R,OAAQ,OAAQC,MAAO,QAAUC,IAAI,MAgB/C9N,EAgBDvC,GAhBLqP,EAgBFE,IAhBmC,KAATF,EACpC,kEAAK5Q,UAAU,UAdD4Q,EAeHA,KAfsBzK,8CAAAA,EAAAA,6BAAAA,EAC/BkM,0CAAAA,IAAQ,QAAD,OAAS9B,GAAa,CAAEoB,MAAO,MAAO4T,SAAU,YACvD,2DAAC,6CAAAhc,eAAD,CACE2I,UAAW,IACXC,QAAS,CAAC,SACV3I,UAAU,MACV4I,WAAAA,EACAxS,OAAQ,KACR6J,QAASkH,GAET,kEAAK3Q,UAAU,mBAAmByR,IAAKb,EAAMgB,IAAI,MAMnD,kEAAK5R,UAAU,WACb,2DAAC,6CAAAuJ,eAAD,CACE2I,UAAW,IACX1I,UAAU,MACVC,QAAS,2DAAC,6CAAAC,QAAD,CAASxD,IAAAA,EAAIa,kCAAAA,MAAb,yBAET,2DAAC,6CAAAlI,OAAD,CAAQmB,UAAU,UAAUgC,OAAO,SAASjD,QAAS,kBAAM8U,EAAO,GAAIuM,KACpE,gEAAGpgB,UAAU,gBAAgBY,cAAY,aAK9C,kEAAKZ,UAAU,OAAOF,MAAO,CAAE6R,MAAO,QAAU7N,KAAAA,EAG/CuO,0CAAAA,IAAQ,QAAD,OAAS9B,EAAT,cAAgC,CAAEoB,MAAO,MAAO4T,SAAU,aAGrE5lB,KAAO,SAACuN,EAAKqD,EAAWsD,GAC5B,IACQ8Q,EACAa,EACE1F,EAHV,MAAiB,UAAb5S,EAAI3M,MACAokB,EAASzX,EAAIyX,QAAU,GACvBa,EAAStY,EAAI4S,KAAK6E,EAAOze,IACvB4Z,EAAS5S,EAAT4S,KACDvD,KAAKiJ,EAAQjV,EAAWsD,EAAQ,CAAE8Q,OAAAA,EAAQ7E,KAAAA,KAE5CvD,KAAKrP,EAAKqD,IAGb+B,OAAS,SAAC/R,EAAMrB,EAAOgH,GAC3B,IACMqM,EAAYrT,GAASA,EAAMsT,KAAOtT,EAAMsT,IAAIC,eAAkB,GAElEC,IADEH,EAASI,SAAWJ,EAASI,QAAQzM,KAAOA,KAGjCqM,EAASK,aAAeL,EAASM,cAAgBN,EAASI,UAGzE,OAAQpS,GACN,IAAK,WACH,MAAO,CACLsQ,MAAO3R,EAAM4T,SAAS5M,GACtB8K,QAAS,WACTa,SAAU3S,EAAM4T,SAASG,aAAe/T,EAAMumB,kBAAoBvmB,EAAM6T,oBACxE2S,YAAaxmB,EAAM4T,SAASE,SAC5B2S,UAAWzmB,EAAM4T,SAASG,YAC1B2S,SAAU1mB,EAAM4T,SAAS+S,WACzBC,oBAAqB5mB,EAAM4T,SAASiT,iBACpChV,OAAQ,qBAAF,OAAuB7R,EAAM4T,SAASkT,oBAEhD,IAAK,SACH,MAAO,CACLnV,MAAO3R,EAAMgH,GACbL,QAAO,EACPqN,OAAQ,EACRR,QAAAA,EACA1B,QAAS,SACTa,SAAU3S,EAAMiU,YAChB4R,eAAgB7lB,EAAMiU,YACtB8S,QAAS/mB,EAAMkD,KACf8jB,kBAAmBhnB,EAAMinB,eACzBL,oBAAqB5mB,EAAMknB,0BAC3BrV,OAAQ7R,EAAMmnB,gBAAN,0BAA2CnnB,EAAMmnB,iBAAjD,4BAA0FnnB,EAAM4T,SAASkT,mBACjH9U,aAAchS,EAAMkU,YAAAA,GAExB,QACE,MAAO,CACLvC,MAAO3R,EAAMgH,GACbL,QAAO,EACPqN,OAAQ,EACRlC,QAAS9R,EAAMqB,KACfsR,SAAU3S,EAAMiU,eAKlBG,WAAa,CACjBC,KADiB,SACZC,EAAaC,GACVC,EAAcD,EAAQE,UAAUhB,QAAtC,IACMpS,EAAOiT,EAAYtG,IAAIyX,OAAOpkB,KAAK8Q,MAAM,KAAK,GAC9CuC,EAAYtB,OAAO/R,EAAMmT,EAAaF,EAAYtG,IAAIhH,IAC5DsN,EAAYK,OAAOD,EAAWJ,EAAYtG,MAE5C4G,QAPiB,SAOTN,EAAaC,GACnB,OAAM,IAIJQ,YAAc,SAACC,EAAST,GAAV,MAAuB,CACzCU,kBAAmBD,EAAQZ,aAC3Bc,OAAQX,EAAQW,SAChBN,QAASL,EAAQK,YAGbwS,yBAAAA,SAAAA,Y,0RACJ,WACE,IACEnS,GADF,EAEIlV,KAAKC,OADPiV,kBAAmBC,EADrB,EACqBA,OAAQN,EAD7B,EAC6BA,QAAS5G,EADtC,EACsCA,IAAK2G,EAD3C,EAC2CA,OAG3C,OADM7T,EAAY,SAAH,OAAYoU,EAAS,WAAa,IAAlC,OAAuCN,EAAU,YAAc,IACvEK,EAAkB,kEAAKnU,UAAWA,EAAWF,MAAO,CAAEoC,QAAS,cAAeqkB,eAAgB,WAAa5mB,KAAKuN,EAAK,SAAU2G,O,oJANpIyS,CAAiCzlB,mCAAAA,W,YAWvC0T,uCAAAA,aAAW,SAAArV,GAAK,OAAIA,EAAMgO,IAAIoH,WAAUhB,WAAYW,Y,CAAaqS,0BADjE,+BAGAA,yBAAyBxlB,UAAY,CACnCqT,kBAAmBpT,kDAAAA,KAAAA,WACnBqT,OAAQrT,kDAAAA,KAAAA,WACR+S,QAAS/S,kDAAAA,KAAAA,WACTmM,IAAKnM,kDAAAA,OAAAA,WACL8S,OAAQ9S,kDAAAA,MAGVulB,yBAAyB5hB,aAAe,CAAEmP,OAAQ,c,6GAjJ5C0I,KAAAA,OAAAA,kG,WAiDA5c,KAAAA,OAAAA,kG,WAUA2S,OAAAA,SAAAA,kG,WA+CAgB,WAAAA,aAAAA,kG,WAYAW,YAAAA,cAAAA,kG,WAMAqS,yBAAAA,2BAAAA,kG,4cCjIAE,G,uLAAY,SAAC,GAAD,IAAGC,EAAH,EAAGA,OAAH,OAChB,kBAAC,EAAAld,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,MAAMC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,IAAAA,EAAIa,EAAAA,MAAb,cACxD,kBAAC,EAAAlI,OAAD,CAAQE,QAAS,kBAAM0nB,KAAUzkB,OAAO,SAASlD,QAAQ,WAAU,uBAAGkB,UAAU,aAAaY,cAAY,aAMvG8lB,GAFNF,EAAU1lB,UAAY,CAAE2lB,OAAQ1lB,IAAAA,KAAAA,YAEd,SAAC,GAAqB,IAAnB4lB,EAAmB,EAAnBA,OACX7G,EAD8B,EAAX8E,KACnB9E,KACR,OACE,kBAAC,EAAAvW,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,MAAMC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,IAAAA,EAAIa,EAAAA,MAAb,WACxD,kBAAC,EAAAlI,OAAD,CAAQE,QAAS,kBAAM4nB,EAAO7G,IAAO9d,OAAO,UAAS,uBAAGhC,UAAU,cAAcY,cAAY,aAO5FgmB,GAFNF,EAAU5lB,UAAY,CAAE6lB,OAAQ5lB,IAAAA,KAAAA,WAA2B6jB,KAAM7jB,IAAAA,OAAAA,YAE9C,kBAAO,yBAAKf,UAAU,iBAAgB,0BAAMA,UAAU,oBAEnE6mB,EAAY,SAAC,GAAD,IAChBC,EADgB,EAChBA,QAASvf,EADO,EACPA,MAAOhH,EADA,EACAA,KADA,OACMqkB,EADN,EACMA,KAEtB,kBAAC,IAAD,CAASrd,MAAOA,EAAOhH,KAAMA,EAAM6U,SAAUwP,EAAK9E,KAAMzK,WAAYyR,KAGtED,EAAU/lB,UAAY,CACpBgmB,QAAS/lB,IAAAA,KAAAA,WACTwG,MAAOxG,IAAAA,OAAAA,WACPR,KAAMQ,IAAAA,OAAAA,WACN6jB,KAAM7jB,IAAAA,OAAAA,a,6FA/BFylB,EAAAA,YAAAA,iF,WAQAE,EAAAA,YAAAA,iF,WAWAE,EAAAA,aAAAA,iF,WAEAC,EAAAA,YAAAA,mF,i5BCxBU,SAAVE,EAAWC,EAAW5R,GAC1B,IACE7U,EACEymB,EADFzmB,KAAMgH,EACJyf,EADIzf,MAAO0f,EACXD,EADWC,aAAcC,EACzBF,EADyBE,aAAcC,EACvCH,EADuCG,WAE3C,OAAQ5mB,GACN,IAAK,OACH,OACE,kBAAC,EAAAD,YAAD,CAAaC,KAAK,OAAOlB,MAAO+V,EAAS7N,IAAU,GAAI3E,SAAU,SAAAsI,GAAC,OAAI+b,EAAa,CAAE/b,EAAAA,EAAG8b,UAAAA,EAAW5R,SAAAA,OAEvG,IAAK,iBACH,OACE,kBAAC,EAAA/U,WAAD,KACE,kBAAC,EAAAC,YAAD,CAAaC,KAAK,SAASlB,MAAO+V,EAAS7N,GAAOlI,OAAS,GAAIuD,SAAU,SAAAsI,GAAC,OAAI+b,EAAa,CAAE/b,EAAAA,EAAG8b,UAAAA,EAAW5R,SAAAA,OAC3G,kBAAC,EAAA/U,WAAA,OAAD,KACG6mB,EAAa,EAAD,KAAMC,GAAN,IAAkBvC,KAAM,CAAE9E,KAAM1K,QAIrD,IAAK,SACL,IAAK,gBACL,IAAK,cACL,IAAK,MACH,OAAQ8R,EAAa,EAAD,KAAMC,GAAN,IAAkBvC,KAAM,CAAE9E,KAAM1K,MACtD,QACE,OAAO,gC,2LAIPgS,EAAe,SAAAC,GACnB,IACMC,EAAK,GAeX,OAhBmBD,EAeR/jB,SAAQ,SAACqe,EAAKvd,GAAN,OAAckjB,EAAGxlB,MAbpBsC,EAagCA,EAX5CuN,GAFOgQ,EAagCA,GAXvChQ,MAAO4V,EACL5F,EADK4F,WAAYC,EACjB7F,EADiB6F,gBAAiBC,EAClC9F,EADkC8F,aAEhCC,EAAS,GACX/V,GAASvO,OAAO6gB,OAAOyD,EAAQ,CAAE/V,MAAAA,EAAOgW,SAAUhW,IAEpD,yBAAKrQ,IAAG,wBAAmBqgB,EAAIiG,OAASjG,EAAIpa,MAApC,YAA6CnD,GAAOpE,UAAU,sBAAsBF,MAAO4nB,GAChGF,EAAkBA,EAAgBC,GAAgB,KACnD,yBAAK3nB,MAAO4nB,GAASH,MATjB,IAEN5V,EAAO4V,EAAYC,EAAiBC,EAEhCC,KAUA,yBAAK1nB,UAAU,eAAeF,MAAO,CAAE+nB,aAAc,mBAAoB,6BAAMP,KAGnFQ,EAAY,SAACT,EAAaU,GAC9B,IACM3S,EAAW2S,EACXT,EAAK,GAcX,OAhBmBD,EAeR/jB,SAAQ,SAACqe,EAAKvd,GAAN,OAAckjB,EAAGxlB,MAZpBsa,EAYgChH,EAZ3BhR,EAYqCA,EAVtDmD,GAFOoa,EAYgCA,GAVvCpa,MAAOoK,EACLgQ,EADKhQ,MAAOwV,EACZxF,EADYwF,WAAYD,EACxBvF,EADwBuF,aAEtBQ,EAAS,GACX/V,GAASvO,OAAO6gB,OAAOyD,EAAQ,CAAE/V,MAAAA,EAAOgW,SAAUhW,IAEpD,yBAAKrQ,IAAG,qBAAgB8a,EAAIlW,GAApB,YAA0Byb,EAAIiG,OAASjG,EAAIpa,MAA3C,YAAoDnD,GAAOpE,UAAU,mBAAmBF,MAAO4nB,GACpGngB,EAASwf,EAAQpF,EAAKvF,IAAQ,GAAO8K,EAAa,EAAD,KAAMC,GAAN,IAAkBvC,KAAM,CAAE9E,KAAM1D,OAAY,MAR1F,IAAMA,EAEZ7U,EAAOoK,EAAOwV,EAAYD,EAEtBQ,KASA,yBAAKpmB,IAAG,qBAAgB8T,EAASlP,IAAMlG,UAAU,gBAAe,6BAAMsnB,KAG1EU,EAAQ,SAAAhiB,GAEZ,OADeA,GACe,EADfA,EACMF,OAAmB,KAChC,yBAAK9F,UAAU,gBAAe,6BAAK,yBAAKA,UAAU,mBAAmBF,MAAO,CAAE6R,MAAO,SAAlD,iB,6FAvEvCoV,EAAAA,UAAAA,mF,WA4BAK,EAAAA,eAAAA,mF,WAoBAU,EAAAA,YAAAA,mF,WAoBAE,EAAAA,QAAAA,qF,6HClEY,SAAZC,EAAY/oB,GAChB,IAAQylB,EAA2BzlB,EAA3BylB,OAAQC,EAAmB1lB,EAAnB0lB,KAAMhiB,EAAa1D,EAAb0D,SAGtB,KAAKslB,GADWpI,EADC8E,EAAT9E,MACa6E,EAAOze,KAAO4Z,EAAK6E,EAAOze,IAAI7G,OAAU,IACjDwG,OAAQ,OAAO,8BAC3B,IAAMsiB,GAAAA,EAAQphB,EAAAA,KACd,OACE,yBAAK/G,UAAU,uBACb,kBAAC,EAAAuJ,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,QAAQC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,IAAAA,EAAIa,EAAAA,MAAb,+BAC1D,kBAAC,EAAA2U,MAAD,CACEtZ,KAAI,gBAAW+lB,GACf/hB,SAAU8hB,EAAOxV,QACjBnG,QAA2B,IAAlB2b,EAAOhV,OAChBtQ,SAAU,kBAAMA,EAAS,CAAEgiB,KAAAA,EAAMwD,SAAUzD,EAAQ0D,MAAO,MAJ5D,YASF,kBAAC,EAAA9e,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,QAAQC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,IAAAA,EAAIa,EAAAA,MAAb,2DAC1D,kBAAC,EAAA2U,MAAD,CACEtZ,KAAI,gBAAW+lB,GACf5b,QAA2B,IAAlB2b,EAAOhV,OAChBtQ,SAAU,kBAAMA,EAAS,CAAEgiB,KAAAA,EAAMwD,SAAUzD,EAAQ0D,MAAO,MAH5D,UAQF,kBAAC,EAAA9e,eAAD,CAAgB2I,UAAW,IAAM1I,UAAU,QAAQC,QAAS,kBAAC,EAAAC,QAAD,CAASxD,IAAAA,EAAIa,EAAAA,MAAb,0DAC1D,kBAAC,EAAA2U,MAAD,CACEtZ,KAAI,gBAAW+lB,GACf5b,QAA2B,IAAlB2b,EAAOhV,OAChBtQ,SAAU,kBAAMA,EAAS,CAAEgiB,KAAAA,EAAMwD,SAAUzD,EAAQ0D,MAAO,MAH5D,U,uPAYRJ,EAAUnnB,UAAY,CACpB6jB,OAAQ5jB,IAAAA,OAAAA,WACR6jB,KAAM7jB,IAAAA,OAAAA,WACN6B,SAAU7B,IAAAA,KAAAA,Y,EAGGknB,EAAf,O,6FA9CMA,EAAAA,YAAAA,mF,wOCDiB,SAAjBK,EAAiBppB,GACrB,IACEylB,EACEzlB,EADFylB,OAAQ/hB,EACN1D,EADM0D,SAAU2lB,EAChBrpB,EADgBqpB,SAAU3D,EAC1B1lB,EAD0B0lB,KAE9B,GAAoB,WAAhBD,EAAOpkB,MAAqBgoB,EAASziB,OAAS,EAAG,OAAO,KAC5D,IAAQga,EAAS8E,EAAT9E,KAER,OADM1D,EAAMmM,EAASxgB,MAAK,SAAAzD,GAAC,OAAIA,EAAEjF,QAAUygB,EAAK6E,EAAOze,IAAI7G,UAAU,KAEnE,kBAAC,IAAD,CACEqd,aAAAA,EACA8B,mBAAoB,CAAEvV,SAAU,YAChC0T,OAAAA,EACA9a,QAAS0mB,EACTlpB,MAAO+c,EACPxZ,SAAU,SAAAsI,GAAC,OAAItI,EAASsI,EAAGyZ,EAAQC,IACnC5kB,UAAU,gBACVF,MAAO,CAAEoe,UAAW,U,qPAK1BoK,EAAexnB,UAAY,CACzB6jB,OAAQ5jB,IAAAA,OAAAA,WACR6B,SAAU7B,IAAAA,KAAAA,WACV6jB,KAAM7jB,IAAAA,OAAAA,WACNwnB,SAAUxnB,IAAAA,QAAkBA,IAAAA,QAAkBwa,Y,EAGjC+M,EAAf,O,6FA5BMA,EAAAA,iBAAAA,wF,ssJCiBeE,YAAAA,SAAAA,kB,6EACnB,qBAAYtpB,GAAO,0CACjB,mBAAMA,IACDynB,OAAS,EAAKA,OAAOlgB,KAAZ,2BACd,EAAKggB,OAAS,EAAKA,OAAOhgB,KAAZ,2BACd,EAAKqgB,QAAU,EAAKA,QAAQrgB,KAAb,2BACf,EAAKwgB,aAAe,EAAKA,aAAaxgB,KAAlB,2BACpB,EAAKgiB,cAAgB,EAAKA,cAAchiB,KAAnB,2BACrB,EAAKiiB,YAAc,EAAKA,YAAYjiB,KAAjB,2BACnB,EAAKoN,OAAS,EAAKA,OAAOpN,KAAZ,2BACd,EAAKkiB,MAAQ,EAAKA,MAAMliB,KAAX,2BACb,EAAKmiB,WAAa,EAAKA,WAAWniB,KAAhB,2BAVD,E,2DAanB,SAAa2Z,GACX,IAAQlV,EAA2BkV,EAA3BlV,EAAG8b,EAAwB5G,EAAxB4G,UAAW5R,EAAagL,EAAbhL,SAGtB,GAFMyT,EAAW3d,EAAE1G,OAAOnF,OACpBypB,EAAW1T,EAAS4R,EAAUzf,OAAOlI,SAC1BwpB,EAAjB,CAIA,GAHuB,SAAnB7B,EAAUzmB,OACZ6U,EAAS4R,EAAUzf,OAASshB,GAEP,mBAAnB7B,EAAUzmB,KAA2B,CACvC,GAAImH,MAAMmhB,GAAW,OACrBzT,EAAS4R,EAAUzf,OAAOlI,MAAQ0pB,8CAAAA,CAAQF,GAAUxpB,QAIhD+E,GADA4kB,GADE9b,EAAQjO,KAAKC,MAAbgO,KACY6O,MAAMpO,YAAc,IACpBtJ,WAAU,SAAAmR,GAAC,OAAIA,EAAEtP,KAAOkP,EAASlP,MACrD8iB,EAAQvkB,OAAOL,EAAK,EAAGgR,GACvBlI,EAAI6O,MAAMpO,WAAaqb,EACvB9b,EAAI8O,YAAY,EAAG,EAAG9O,EAAI6O,OAAM,M,2BAGlC,SAAc7Q,EAAGkd,EAAUxD,GACzB,IAAQ9E,EAAS8E,EAAT9E,KAEFkJ,GADE9b,EAAQjO,KAAKC,MAAbgO,KACY6O,MAAMpO,YAAc,GAClC6X,EAASwD,EAAQjhB,MAAK,SAAAyN,GAAC,OAAIA,EAAEtP,KAAO4Z,EAAK5Z,MAC/Csf,EAAO4C,EAASliB,IAAM,CAAE7G,MAAO6L,EAAIA,EAAE7L,MAAQ,IACvC+E,EAAM4kB,EAAQ3kB,WAAU,SAAAmR,GAAC,OAAIA,EAAEtP,KAAO4Z,EAAK5Z,MACjD8iB,EAAQvkB,OAAOL,EAAK,EAAGohB,GACvBtY,EAAI6O,MAAMpO,WAAaqb,EACvB9b,EAAI8O,YAAYoM,EAAUA,EAASliB,GAAIgH,EAAI6O,OAAM,K,yBAGnD,SAAYqM,EAAUxD,GACpB,IAAQ9E,EAAS8E,EAAT9E,KAEFkJ,GADE9b,EAAQjO,KAAKC,MAAbgO,KACY6O,MAAMpO,YAAc,GAClC6X,EAASwD,EAAQjhB,MAAK,SAAAyN,GAAC,OAAIA,EAAEtP,KAAO4Z,EAAK5Z,MAE3Cib,GADE/Z,GAAAA,EAAQS,0CAAAA,IAASugB,EAAStgB,gBACfzD,WAAU,SAAA2D,GAAC,OAAIA,EAAE1G,MAAQkkB,EAAO4C,EAASliB,IAAI+B,gBAExDZ,GADF8Z,EAAO/Z,EAAMtB,OAAS,EAAGqb,GAAQ,EAAQA,EAAO,EAC1B,EAAf/Z,EAAMtB,OAAasB,EAAM+Z,GAAM7f,IAAM,IAC1C2nB,GAAAA,EAAInb,0CAAAA,IAAesa,EAAStgB,cAAeT,EAAIme,EAAO4C,EAASliB,IAAI7G,OACzEmmB,EAAO4C,EAASliB,IAAM,CAAE7G,MAAO4pB,EAAGhhB,aAAcZ,GAC1CjD,EAAM4kB,EAAQ3kB,WAAU,SAAAmR,GAAC,OAAIA,EAAEtP,KAAO4Z,EAAK5Z,MACjD8iB,EAAQvkB,OAAOL,EAAK,EAAGohB,GACvBtY,EAAI6O,MAAMpO,WAAaqb,EACvB9b,EAAI8O,YAAYoM,EAAUA,EAASliB,GAAIgH,EAAI6O,OAAM,K,oBAGnD,SAAOvI,EAAa0V,GAClB,IAAQhc,EAAQjO,KAAKC,MAAbgO,IACFkb,EAAWc,EAAUvE,OACrBqE,EAAU9b,EAAI6O,MAAMpO,YAAc,GAClC6X,EAASwD,EAAQjhB,MAAK,SAAAyN,GAAC,OAAIA,EAAEtP,KAAOgjB,EAAUpJ,KAAK5Z,MACzDsf,EAAO4C,EAASliB,IAAM,CAAE7G,MAAOmU,GACzBpP,EAAM4kB,EAAQ3kB,WAAU,SAAAmR,GAAC,OAAIA,EAAEtP,KAAOgjB,EAAUpJ,KAAK5Z,MAC3D8iB,EAAQvkB,OAAOL,EAAK,EAAGohB,GACvBtY,EAAI6O,MAAMpO,WAAaqb,EACvB9b,EAAI8O,YAAYoM,EAAUA,EAASliB,GAAIgH,EAAI6O,OAAM,K,mBAGnD,SAAMqE,GACJ,IAAQwE,EAA0BxE,EAA1BwE,KAAMwD,EAAoBhI,EAApBgI,SACNlb,GADgBmb,EAAUjI,EAAViI,MACRppB,KAAKC,MAAbgO,KACF8b,EAAU9b,EAAI6O,MAAMpO,YAAc,GAClC6X,EAASwD,EAAQjhB,MAAK,SAAAyN,GAAC,OAAIA,EAAEtP,KAAO0e,EAAK9E,KAAK5Z,MACpD0e,EAAK9E,KAAKsI,EAASliB,IAAI7G,MAAM6T,OAASmV,EACtC7C,EAAO4C,EAASliB,IAAM,CAAE7G,MAAOulB,EAAK9E,KAAKsI,EAASliB,IAAI7G,OAChD+E,EAAM4kB,EAAQ3kB,WAAU,SAAAmR,GAAC,OAAIA,EAAEtP,KAAO0e,EAAK9E,KAAK5Z,MACtD8iB,EAAQvkB,OAAOL,EAAK,EAAGohB,GACvBtY,EAAI6O,MAAMpO,WAAaqb,EACvB9b,EAAI8O,YAAYoM,EAAUA,EAASliB,GAAIgH,EAAI6O,OAAM,K,wBAGnD,WAAa,WACH7O,EAAQjO,KAAKC,MAAbgO,IACAqU,EAA0BrU,EAA1BqU,cAAe/Q,EAAWtD,EAAXsD,OACjB2Y,EAAWjc,EAAI6O,MAAMpO,YAAc,GACrCyb,EAAa,GAmEXC,IAlELnc,EAAI6O,MAAMtO,YAAc,IAAInK,SAAQ,SAAAgmB,GACnC,IA2CQC,EAIAC,EA/CJC,EAAS,CACXlpB,KAAM+oB,EAAG/oB,KAAMgnB,WAAY+B,EAAGI,SAAUniB,MAAO+hB,EAAGpjB,IAE9CyjB,EAAY,GACF,SAAZL,EAAG/oB,OACLkpB,EAAS,cAAH,iBAAQA,GAAR,IAAgBG,UAAS,EAAO3C,aAAc,EAAKA,gBAE3C,WAAZqC,EAAG/oB,OAELgoB,GAAWA,EADKhH,EAAc+H,EAAGxhB,gBAAkByZ,EAAc+H,EAAGxhB,eAAejG,SAAY,IAC3E0B,KAAI,SAAAgB,GAAE,MAAK,CAAElF,MAAOkF,EAAGjD,IAAKc,KAAMmC,EAAGjD,IAAKC,MAAOgD,EAAGhD,UAClE4lB,EAAa,CAAExC,OAAQ2E,EAAI1mB,SAAU,EAAK6lB,cAAeF,SAAAA,GAC/DkB,EAAS,cAAH,iBACDA,GADC,IACOvC,aAAcoB,8CAAAA,EAAgBnB,WAAAA,EAAYF,aAAc,EAAKA,gBAG5D,mBAAZqC,EAAG/oB,OACC4mB,EAAa,CAAExC,OAAQ2E,EAAI1mB,SAAU,EAAK8lB,aAChDe,EAAS,cAAH,iBACDA,GADC,IACOvC,aAAc2C,iDAAAA,EAAoB1C,WAAAA,EAAYF,aAAc,EAAKA,gBAGhE,kBAAZqC,EAAG/oB,OACC4mB,EAAa,CAAExC,OAAQ2E,EAAIpc,IAAAA,EAAKtK,SAAU,EAAKiR,QACrD4V,EAAS,cAAH,iBACDA,GADC,IACOvC,aAAclC,2CAAAA,EAAcmC,WAAAA,EAAYF,aAAc,EAAKA,aAActV,MAAO,UAE9E2X,EAAGjqB,OAAS,IAAIgS,MAAM,MAAQ,IACxC/N,SAAQ,SAAAoM,GACX,IAAMyV,EAAO2E,0CAAAA,GAAAA,MAAgB,SAAAtc,GAAC,OAAIA,EAAEnO,QAAUqQ,KAC1CyV,IACI4E,EAAM,CACVnC,MAAOlY,EAAGka,UAAS,EAAQrpB,KAAM,OAAQgnB,WAAYpC,EAAK5jB,MAAO2lB,aAAchC,+CAAAA,EAAkBiC,WAAY,CAAEhC,KAAAA,EAAMR,OAAQ2E,IAE/HK,EAAU7nB,KAAKioB,QAIL,gBAAZT,EAAG/oB,OACCypB,EAAOb,EAAQxjB,QAAO,SAAArB,GAAC,OAAIA,EAAEglB,EAAGpjB,KAAO5B,EAAEglB,EAAGpjB,IAAI7G,OAASiF,EAAEglB,EAAGpjB,IAAI7G,MAAMwG,UACxEshB,EAAa,CAAExC,OAAQ2E,EAAIpc,IAAAA,EAAKtK,SAAU,EAAKiR,QACrD4V,EAAS,cAAH,iBACDA,GADC,IACOvC,aAAclC,2CAAAA,EAAcmC,WAAAA,EAAYF,aAAc,EAAKA,aAActV,MAAO,QAEvF4X,EAAY,CAChB3B,MAAO,aAAcgC,UAAS,EAAQrpB,KAAM,OAAQgnB,WAAY,GAAIL,aAAc+C,yCAAAA,EAAY9C,WAAY,CAAExC,OAAQ2E,EAAI1mB,SAAU,EAAK+lB,OAAShX,MAAO,OAEvI,EAAdqY,EAAKlkB,QAAY6jB,EAAU7nB,KAAKynB,GAC9BC,EAAU,CACd5B,MAAO,WAAYgC,UAAS,EAAQrpB,KAAM,OAAQgnB,WAAY,cAAeL,aAAcxC,+CAAAA,EAAkByC,WAAY,CAAExC,OAAQ2E,EAAI9Y,OAAAA,GAAUmB,MAAO,OAE1JgY,EAAU7nB,KAAK0nB,KACAF,EAAGjqB,OAAS,IAAIgS,MAAM,MAAQ,IACxC/N,SAAQ,SAAAoM,GACX,IAAMyV,EAAO+E,0CAAAA,GAAAA,MAAgB,SAAA1c,GAAC,OAAIA,EAAEnO,QAAUqQ,KAC1CyV,IACI4E,EAAM,CACVnC,MAAOlY,EAAGka,UAAS,EAAQrpB,KAAM,OAAQgnB,WAAYpC,EAAK5jB,MAAO2lB,aAAchC,+CAAAA,EAAkBiC,WAAY,CAAEhC,KAAAA,EAAMR,OAAQ2E,IAE/HK,EAAU7nB,KAAKioB,QAIrBX,EAAWtnB,KAAK2nB,GACO,EAAnBE,EAAU7jB,SAAYsjB,EAAaA,EAAWxc,OAAO+c,OAE/C,CACVppB,KAAM,SACNgnB,WAAY,GACZK,MAAO1a,EAAI6O,MAAMxU,MACjBigB,gBAAiBhB,sCAAAA,GACjBiB,aAAc,CAAEhB,OAAQxnB,KAAKwnB,QAC7BS,aAAcR,sCAAAA,GACdS,WAAY,CAAER,OAAQ1nB,KAAK0nB,QAC3BhV,MAAO,UAeT,OAbAyX,EAAW3kB,OAAO,EAAG,EAAG4kB,GAClBc,EAAQ,GAAH,OAAMC,qDAAAA,EAAAA,aAAN,YAAwCld,EAAI/H,MAAM7D,IAAlD,YAAyD4L,EAAI6O,MAAMxU,OACxE8iB,EAAO,CACX9pB,KAAM,MACNgH,MAAO2F,EAAI6O,MAAMxU,MACjBggB,WAAY,GACZK,MAAO,GAAF,OAAK1a,EAAI6O,MAAMxU,MAAf,QACLigB,gBAAiBZ,sCAAAA,GACjBM,aAAcL,sCAAAA,GACdM,WAAY,CAAEL,QAAS7nB,KAAK6nB,QAASvf,MAAO2F,EAAI6O,MAAMxU,MAAOhH,KAAM4pB,GACnExY,MAAO,SAETyX,EAAW3kB,OAAO,EAAG,EAAG4lB,GACjBjB,I,qBAGT,SAAQ9W,EAAQ9N,GACd,IAAQ0I,EAAQjO,KAAKC,MAAbgO,IACFod,EAAQpd,EAAI6O,MAAMpO,WAClB4c,EAAMD,EAAMjmB,WAAU,SAAA6G,GAAC,OAAIA,EAAEhF,KAAOoM,KACpCkY,EAAMF,EAAMjmB,WAAU,SAAA6G,GAAC,OAAIA,EAAEhF,KAAO1B,KACpCimB,EAAOH,EAAMC,GACnBD,EAAMC,GAAOD,EAAME,GACnBF,EAAME,GAAOC,EACbvd,EAAI8O,YAAY,EAAG,EAAG9O,EAAI6O,OAAM,K,oBAGlC,SAAO2O,GACL,IAAQxd,EAAQjO,KAAKC,MAAbgO,IACRA,EAAI6O,MAAMpO,WAAaT,EAAI6O,MAAMpO,WAAWhI,QAAO,SAAA6P,GAAC,OAAIA,EAAEtP,KAAOwkB,EAAQxkB,MACzEgH,EAAI8O,YAAY,EAAG,EAAG9O,EAAI6O,OAAM,K,oBAGlC,WACE,IAAQ7O,EAAQjO,KAAKC,MAAbgO,IACFI,EAAYJ,EAAI6O,MAAMtO,YAAc,GACpCkd,EAAS,IAAIlG,qDAAAA,EACnBnX,EAAU/J,KAAI,SAAA2H,GACZ,MAAe,SAAXA,EAAE3K,KAAwB6C,OAAO6gB,OAAO0G,EAAd,mBAAyBzf,EAAEhF,GAAK,KACvD9C,OAAO6gB,OAAO0G,EAAd,mBAAyBzf,EAAEhF,GAAK,CAAE7G,MAAO,GAAI4I,aAAciD,EAAEjD,mBAEtEiF,EAAI6O,MAAMpO,WAAaT,EAAI6O,MAAMpO,YAAc,GAC/CT,EAAI6O,MAAMpO,WAAW7L,KAAK6oB,GAC1Bzd,EAAI8O,YAAY,EAAG,EAAG9O,EAAI6O,OAAM,K,oBAGlC,WACE,IAAQ7O,EAAQjO,KAAKC,MAAbgO,IACR,GAAIA,EAAItE,SAAU,OAAQ,2FAC1B,IAAKsE,EAAI6O,MAAMtO,YAAc,IAAI3H,OAAS,EAAG,OAAO,KACpD,IAAMsjB,EAAanqB,KAAK2pB,aACxB,OACE,yEACGxB,wCAAAA,IAAagC,GACd,yEAAMpB,wCAAAA,IAAM9a,EAAI6O,MAAMpO,aACtB,uEAAOT,EAAI6O,MAAMpO,YAAc,IAAIpK,KAAI,SAAAiS,GAAC,SAAIsS,wCAAAA,IAAUsB,EAAY5T,U,uIAhOrDgT,CAAoBoC,6CAAAA,WAsOzCpC,YAAY1nB,UAAY,CACtBoM,IAAKnM,mDAAAA,OAAAA,Y,4GAvOcynB,YAAAA,cAAAA,qF,uJChBM,SAArBqB,EAAqB3qB,GACzB,IAAQylB,EAA2BzlB,EAA3BylB,OAAQ/hB,EAAmB1D,EAAnB0D,SAAUgiB,EAAS1lB,EAAT0lB,KAC1B,MAAoB,mBAAhBD,EAAOpkB,KAAkC,MACrCuf,EAAS8E,EAAT9E,KAEN,kBAAC,EAAAjhB,OAAD,CAAQyC,IAAG,cAASwe,EAAK5Z,IAAMmV,QAAAA,EAAOtc,QAAS,kBAAM6D,EAAS+hB,EAAQC,IAAO9lB,QAAQ,cAClFmd,EAAAA,KAAAA,EAAWC,EAAAA,IAAQyI,EAAO7c,cAAegY,EAAK6E,EAAOze,IAAI+B,cAAc1G,QAAU,K,uPAKxFsoB,EAAmB/oB,UAAY,CAC7B6jB,OAAQ5jB,IAAAA,OAAAA,WACR6B,SAAU7B,IAAAA,KAAAA,WACV6jB,KAAM7jB,IAAAA,OAAAA,Y,EAGO8oB,EAAf,O,6FAjBMA,EAAAA,qBAAAA,4F,2aCNSzmB,OAAOoV,OAAO,CAC3BqS,YAAa,OACbC,cAAe,SACfC,sBAAuB,sCACvBC,4BAA6B,8CAJ/B,O,mdCIsB,SAAhBC,EAAiBC,EAAeC,EAAgBC,GACpD,IAAMC,EAAS,GACXV,EAAS,IAAIlG,EAAAA,EAEX6G,GADNJ,EAAc3nB,KAAI,SAAA2H,GAAC,OAAI9H,OAAO6gB,OAAO0G,EAAd,KAAyBzf,EAAEhF,GAAK,QAC/B9C,OAAOC,KAAKsnB,IAC9BY,EAAoBnoB,OAAOC,KAAK+nB,EAAe,IAC/CI,EAAeD,EAAkB5lB,QAAO,SAAAuF,GAAC,OAAKogB,EAAgBjlB,SAAS6E,MACvEugB,EAAU,GAsChB,OArCAP,EAAc3nB,KAAI,SAAAmM,GAChB,MAAe,SAAXA,EAAEnP,KAAwB6C,OAAO6gB,OAAOwH,EAAd,KAA0B/b,EAAExJ,GAAK,KACxD9C,OAAO6gB,OAAOwH,EAAd,KAA0B/b,EAAExJ,GAAK,CAAE7G,MAAO,GAAI4I,aAAcyH,EAAEzH,mBAEvEmjB,EAAe9nB,SAAQ,SAAA4H,GACrByf,EAAS,IAAIlG,EAAAA,EACbrhB,OAAO6gB,OAAO0G,EAAQc,EAASvgB,GAC/BsgB,EAAaloB,SAAQ,SAAAoM,GAAC,cAAWib,EAAOjb,MACxC6b,EAAkBjoB,SAAQ,SAAAooB,GACxB,IACMC,EACAC,OAAAA,IAFFjB,EAAOe,IAAoC,OAAXA,IAC9BC,EAAOT,EAAcnjB,MAAK,SAAAvE,GAAC,OAAIA,EAAE0C,KAAOwlB,KACxCE,EAAOT,EAAepjB,MAAK,SAAAvE,GAAC,OAAIA,EAAE0C,KAAOwlB,KAC7B,kBAAdC,EAAKprB,MACH,CAAC,OAAQ,iBAAkB,eAAe8F,SAASulB,EAAKrrB,QAC1DoqB,EAAOe,GAAU,CAAErsB,WAAM,IAGX,SAAdssB,EAAKprB,OACW,mBAAdqrB,EAAKrrB,OACPoqB,EAAOe,GAAUf,EAAOe,GAAQrsB,OAE9B,CAAC,gBAAiB,eAAegH,SAASulB,EAAKrrB,QACjDoqB,EAAOe,GAAU,KAGH,mBAAdC,EAAKprB,OACW,mBAAdqrB,EAAKrrB,MAA8BorB,EAAK7jB,gBAAkB8jB,EAAK9jB,gBACjE6iB,EAAOe,GAAQzjB,aAAe0jB,EAAK1jB,cAEjC,CAAC,OAAQ,gBAAiB,eAAe5B,SAASulB,EAAKrrB,QACzDoqB,EAAOe,GAAU,CAAErsB,MAAO,GAAI4I,aAAc0jB,EAAK1jB,eAEnD0iB,EAAOe,GAAQrsB,OAAAA,EAAQyO,EAAAA,IAAe6d,EAAKE,aAAclB,EAAOe,GAAQzjB,aAAc0iB,EAAOe,GAAQrsB,YAGzGgsB,EAAOvpB,KAAK6oB,MAEPU,EAGiB,SAApB1b,EAAqBmc,EAAKC,GACxBb,GAAAA,EAAgBxpB,EAAAA,WAAUoqB,EAAIre,YAAc,IAAlD,IACM0d,GAAAA,EAAiBzpB,EAAAA,WAAUqqB,EAAIte,YAAc,IAEnD,OADM2d,GAAAA,EAAiB1pB,EAAAA,WAAUqqB,EAAIpe,YAAc,IAC/Cud,EAAcplB,OAAS,GACtBqlB,EAAerlB,OAAS,GAAKslB,EAAetlB,OAAS,EACjD,GAEFmlB,EAAcC,EAAeC,EAAgBC,G,yLAGvCzb,EAAf,O,6FA3DMsb,EAAAA,gBAAAA,iF,WAgDAtb,EAAAA,oBAAAA,iF,uOC0CmB,SAAnBqc,EAAoBxmB,EAAQymB,GAChC,IAAIC,EAAM,GASV,OARA9oB,OAAOC,KAAKmC,GAAQlC,SAAQ,SAAA4H,GACtB9H,OAAO+oB,UAAUC,eAAeC,KAAK7mB,EAAQ0F,KAC3C1F,EAAO0F,GAAG5J,MAAQ2qB,EAAOC,EAAMA,EAAItf,OAAOqf,GACrCzmB,EAAO0F,GAAGohB,SAAY9mB,EAAO0F,GAAGohB,QAAQC,eAAiBN,IAChEC,EAAMA,EAAItf,OAAOof,EAAiBxmB,EAAQA,EAAO0F,GAAG5J,WAInD4qB,E,yMArGH5f,G,uLAAY,SAACkgB,EAAOC,GAAR,OAAmBD,EAAM5N,SAASjZ,QAAO,SAAAuF,GAAC,OAAIA,EAAEhF,KAAOumB,KAAQ,KAG3EtgB,EAAe,SAACugB,EAAcD,EAAQE,EAAaC,GAGvD,IADMC,GADAriB,GAAAA,EAAO9I,EAAAA,WAAUgrB,IACP9N,SAASjZ,QAAO,SAAAuF,GAAC,OAAIA,EAAEhF,KAAOumB,MACvC3mB,OAAS,EAAG,OAAO,KAC1B,IAAQX,EAAU0nB,EAAG,GAAG/M,KAAhB3a,MACF2nB,EAAKtiB,EAAKoU,SAASjZ,QAAO,SAAAuF,GAAC,OAAIA,EAAE6hB,YAEjCC,GADAC,EAAKziB,EAAKoU,SAASjZ,QAAO,SAAAuF,GAAC,MAAe,YAAXA,EAAE3K,MAAsB2K,EAAE4U,QAClDgN,EAAGnnB,QAAO,SAAAuF,GAAC,OAAIA,EAAEoH,SAAWma,KAAQlpB,KAAI,SAAA2H,GAAC,OAAIA,EAAE1G,WAU5D,OARoB,GADd0oB,EAASD,EAAGtnB,QAAO,SAAAwnB,GAAC,OAAIH,EAAK3mB,SAAS8mB,EAAEjnB,OAAK3C,KAAI,SAAA2H,GAAC,MAAK,CAAE5J,IAAK4J,EAAEhF,GAAI3E,MAAO,GAAF,OAAK2J,EAAE4U,KAAK3a,MAAM5D,MAAlB,YAA2B2J,EAAE4U,KAAK3a,MAAM7D,IAAxC,UACpEwE,SACHmD,GAAY9D,EAAM+B,QAAU,IAAIpB,OAAS,EAC/CX,EAAM+B,OAAOpF,KAAK,CAChBvB,KAAM,UAAW6sB,QAAS,GAAI7lB,MAAO,WAAYhG,MAAO,OAAQ4Z,UAAS,EAAQ1N,WAAY,GAAIyP,gBAAiB,GAAIjU,SAAAA,EAAUsV,WAAY2O,KAGhJ/nB,EAAMmnB,QAAU,CAAEe,QAASZ,EAAQF,aAAcI,GACjDxnB,EAAMoG,YAAcqhB,EAAO,EACpBznB,GAGHuG,EAAiB,WAErB,OAFuC,uDAAP,IAElB4hB,QAAO,SAAChD,EAAOloB,GAC3B,IACMmrB,EAAKnqB,OAAOC,KAAKmqB,GASvB,OARID,EAAGlnB,SAASjE,EAAKd,MACbkN,EAAM+e,EAAG5nB,QAAO,SAAAuF,GAAC,OAAIA,IAAM9I,EAAKd,KAAO4J,EAAE6B,WAAF,UAAgB3K,EAAKd,IAArB,SAA8BwE,OACrE2nB,EAAQ,GAAH,OAAMrrB,EAAKd,IAAX,YAAkBkN,GAE7Bgf,EADAprB,EAAKd,IAAMmsB,GACErrB,GAEborB,EAAIprB,EAAKd,KAAOc,EAEXorB,IACN,KAGC7e,EAAmB,SAACN,EAAQqf,GAChC,IAAMvoB,EAAQkJ,EAqBd,OApBAlJ,EAAM+B,OAAO3D,KAAI,SAAAoqB,GACf,IACIC,EAAQpqB,EAAEigB,YAEd,OAAKmK,GAASA,EAAM9nB,OAAS,GAAK8nB,EAAMjoB,QAAO,SAAArB,GAAC,OAAKA,EAAEiD,OAAqB,KAAZjD,EAAEiD,SAAczB,SAAW8nB,EAAM9nB,UACjG8nB,EAAQA,EAAMjoB,QAAO,SAAArB,GAAC,OAAIA,EAAEa,QAAUuoB,MAE5B5nB,OAAS,SACVtC,EAAEigB,aAIXmK,EAAQA,EAAMrqB,KAAI,SAAAe,GAGhB,OADA6oB,EAAEhoB,MAAQA,EAAM7D,IACT6rB,KAET3pB,EAAEigB,YAAcmK,IAbgGpqB,KAgB3G2B,EAAM+B,QAGTkF,EAAc,SAACiB,EAAK/L,EAAKusB,GAC7B,IAAMpD,EAAO,GACP8C,EAAKnqB,OAAOC,KAAKgK,GAqBvB,OApBAjK,OAAOC,KAAKgK,GAAK/J,SAAQ,SAAA4H,GACvB,IAIUsD,EAKEsf,EATR1qB,OAAO+oB,UAAUC,eAAeC,KAAKhf,EAAKnC,KAC5Cuf,EAAKvf,GAAKmC,EAAInC,GACVA,IAAM5J,IACFysB,EAActD,EAAKvf,GAAGjC,SAEhB,KADNuF,EAAM+e,EAAG5nB,QAAO,SAAArB,GAAC,OAAIA,IAAMupB,EAASvsB,KAAOgD,EAAEyI,WAAF,UAAgB8gB,EAASvsB,IAAzB,SAAkCwE,SAEjF2kB,EAAKoD,EAASvsB,KAAOusB,EACrBpD,EAAKoD,EAASvsB,KAAK2H,SAAW8kB,IAExBD,EAAOD,EAASvsB,IACtBmpB,EAAK,GAAD,OAAIoD,EAASvsB,IAAb,YAAoBkN,IAASqf,EACjCpD,EAAK,GAAD,OAAIoD,EAASvsB,IAAb,YAAoBkN,IAAOvF,SAAW8kB,EAC1CtD,EAAK,GAAD,OAAIoD,EAASvsB,IAAb,YAAoBkN,IAAOlN,IAA/B,UAAwCusB,EAASvsB,IAAjD,YAAwDkN,GACxDic,EAAKoD,EAASvsB,KAAK4F,OAASyH,EAAiBkf,EAAUC,SAK/B,IAA5B1qB,OAAOC,KAAKgK,GAAKvH,SAAc2kB,EAAKoD,EAASvsB,KAAOusB,GACjDpD,GAgBHpe,EAAmB,WAAwD,IAAvD2hB,EAAuD,uDAAnC,GAAIC,EAA+B,uDAApB,GAAIC,EAAgB,uDAAP,GAClE1oB,EAASwoB,EAEf,KADgBE,EAAOpO,MAAQoO,EAAOpO,KAAK3a,OAAQ+oB,EAAOpO,KAAK3a,MAAM7D,KACvD,MAAO,GACrB,IAAI4qB,EAAM,GAUV,OATA9oB,OAAOC,KAAKmC,GAAQlC,SAAQ,SAAA4H,GAC1B,IACQuD,EADJrL,OAAO+oB,UAAUC,eAAeC,KAAK7mB,EAAQ0F,KACzCuD,EAAKjJ,EAAO0F,GAAGohB,UACV7d,EAAG8d,eAAiB0B,GAAcxf,EAAG4e,UAAYa,EAAOhoB,KACjEgmB,EAAMA,EAAItf,OAAOof,EAAiBxmB,EAAQA,EAAO0F,GAAG5J,UAI1D4qB,EAAI5oB,SAAQ,SAAA4H,GAAC,cAAW1F,EAAO0F,MACxB1F,GAGH2oB,EAAc,SAACC,GACnB,IAMQtB,EACAG,EACAoB,EACAC,EACAjD,EATA7lB,GADF+oB,GAAAA,EAAO7sB,EAAAA,WAAU0sB,IACf5oB,OAAQgF,EAAS+jB,EAAT/jB,KACVQ,GAAAA,EAAeC,EAAAA,QAAOzF,GAAQ,SAAAgpB,GAAC,OAAIA,EAAEvlB,YAoC3C,OAnCIuB,GAAQA,EAAKoU,SAASjZ,QAAO,SAAAuF,GAAC,OAAmD,GAA9C,CAAC,QAAS,UAAU7E,SAAS6E,EAAE3K,MAAMuF,WAEpE2oB,EAAMjkB,EAAKoU,SACXkO,EAAK2B,EAAI9oB,QAAO,SAAAuF,GAAC,OAAIA,EAAE6hB,YACvBE,EAAKwB,EAAI9oB,QAAO,SAAAuF,GAAC,MAAe,YAAXA,EAAE3K,MAAsB2K,EAAE4U,QAC/CuO,EAAMvB,EAAGnnB,QAAO,SAAAuF,GAAC,MAAiB,MAAbA,EAAEoH,UAAgB/O,KAAI,SAAA2H,GAAC,OAAIA,EAAE1G,UAClD8pB,EAAYrB,EAAGtnB,QAAO,SAAAwnB,GAAC,OAAIkB,EAAIhoB,SAAS8mB,EAAEjnB,OAC1CmlB,EAAS,GACfrgB,EAAa1H,SAAQ,SAACorB,GACpB,IAEQzlB,EAFF0lB,EAASD,EACXC,EAAOlgB,IACHxF,GAAY0lB,EAAOznB,QAAU,IAAIpB,OAAS,EACjCwoB,EAAU3oB,QAAO,SAAAwnB,GAAC,OAAIA,EAAErN,KAAK3a,MAAM7D,MAAQqtB,EAAOrtB,OAC1DgC,SAAQ,SAACsrB,GACd,IAAMC,EAAc/B,EAAGnnB,QAAO,SAAAuF,GAAC,OAAIA,EAAEoH,SAAWsc,EAAI1oB,IAAMgF,EAAEoH,SAAWpH,EAAE1G,UAAQjB,KAAI,SAAA2H,GAAC,OAAIA,EAAE1G,UACtF0oB,EAASD,EAAGtnB,QAAO,SAAAwnB,GAAC,OAAI0B,EAAYxoB,SAAS8mB,EAAEjnB,OAAK3C,KAAI,SAAA2H,GAAC,MAAK,CAAE5J,IAAK4J,EAAEhF,GAAI3E,MAAO,GAAF,OAAK2J,EAAE4U,KAAK3a,MAAM5D,MAAlB,YAA2B2J,EAAE4U,KAAK3a,MAAM7D,IAAxC,SAClE,EAAhB4rB,EAAOpnB,QACT6oB,EAAOznB,OAAOpF,KAAK,CACjBvB,KAAM,UAAW6sB,QAAS,GAAI7lB,MAAO,WAAYhG,MAAO,OAAQ4Z,UAAS,EAAQ1N,WAAY,GAAIyP,gBAAiB,GAAIjU,SAAAA,EAAUsV,WAAY2O,IAGhJyB,EAAOrC,QAAU,CAAEe,QAASuB,EAAI1oB,IAChCyoB,EAAOpjB,YAAc,EACrBojB,EAAOjgB,SAAAA,EAAU3H,EAAAA,KACjBskB,EAAOvpB,KAAK6sB,OAGdtD,EAAOvpB,KAAK6sB,MAGVljB,EAAKC,EAAe2f,GAC1BkD,EAAK/oB,OAASiG,GAEd8iB,EAAK/oB,OAASA,EAET+oB,I,6FAhKHjiB,EAAAA,YAAAA,+E,WAGAH,EAAAA,eAAAA,+E,WAoBAT,EAAAA,iBAAAA,+E,WAiBAiD,EAAAA,mBAAAA,+E,WAyBAvC,EAAAA,cAAAA,+E,WA0BA4f,EAAAA,mBAAAA,+E,WAaA3f,EAAAA,mBAAAA,+E,WAiBA8hB,EAAAA,cAAAA,iF,siCCtHkB,SAAlBjW,EAAmBjX,EAAS0F,GAChC,KAAK1F,GAAY0F,GAAU1F,EAAQsE,YAAeoB,EAAME,oBACtD,MAAO,MAAC,OAAAioB,GAEV,IAAMpoB,GAAAA,EAAWhF,EAAAA,WAAUiF,EAAME,oBAqFjC,OApFAH,EAASC,MAAQ1F,EAAQsE,WAAWoB,MACpCD,EAASI,WAAaH,EAAMI,KAC5B3D,OAAOC,KAAKqD,EAASlB,QAAQlC,SAAQ,SAAChC,GACpC,IAAM0F,EAAWN,EAASlB,OAAOlE,IAAQ,GACnC2F,EAAahG,EAAQsE,WAAWC,OAAOlE,IAAQL,EAAQsE,WAAWC,OAAOlE,GAAK4F,QAC/E,IACJF,EAASE,QAAU,IAAI5D,SAAQ,SAACE,EAAGY,GAClC,IAEQ+C,EAgBEC,EAUEgI,EACAC,EACAC,EA9BNhI,GAAAA,EAASjD,EAAAA,WAAU4C,GAAW,SAAA3C,GAAC,OAAIA,EAAEiD,QAAU/D,EAAE+D,SACzC,GAAVD,IAEIE,EAAU,EADVL,EAASlG,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQjI,OAEzD,CAAC,SAAU,OAAQ,WAAY,iBAAiBgH,SAASK,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,QAC5FmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAoB,cAAZmI,EAA0BL,EAAOM,WAAa,IAE3C,YAA1Cf,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OACnCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAqB,cAAZmI,GAAuC,YAAZA,GAAyBE,MAAMP,GAAW,EAAIQ,SAASR,EAAQ,KAExF,aAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OACnCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAoB,cAAZmI,IAAAA,EAA0BI,EAAAA,IAAOT,KAE7B,gBAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,MAAiF,gBAAvDU,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQ/G,MAChE,kBAA1CmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,MAAmF,kBAAvDU,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQ/G,YAAAA,IAClG4G,IAAwBT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAQ8H,GAEhC,mBAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAE7B8G,GADAD,GAAAA,EAAQS,EAAAA,IAASnB,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK0D,gBACvCC,MAAK,SAAAC,GAAC,OAAIA,EAAE1G,MAAQL,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQW,gBACnFvB,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK6D,aAAgBZ,GAAMA,EAAG/F,KAAQ8F,EAAM,GAAG9F,IAC3EoF,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,OAAAA,EAAQ6I,EAAAA,IAAMf,IAEH,gBAA1CT,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAC/BU,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQ/G,OAC5CmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,KACrCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,WAAAA,GAE3B+P,EAAQ1I,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAKqJ,YAAc,GACvD4B,EAAQpO,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQmG,YAAc,GACpE6B,EAAS,GACXF,EAAMtJ,OAAS,EACjBY,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,WAAAA,EAEjC+P,EAAM9L,SAAQ,SAACiM,GACb,IAQQC,EARFC,EAASJ,EAAMtH,MAAK,SAAA2H,GAAC,OAAIA,EAAExJ,KAAOqJ,EAAKrJ,OAAO,GAClC,UAAdqJ,EAAKhP,MAAoB+O,EAAOxN,KAAKyN,GACvB,SAAdA,EAAKhP,OACa,UAAhBkP,EAAOlP,KACT+O,EAAOxN,KAAKyN,GACLD,EAAOxN,KAAP,OAAiByN,GAAjB,IAAuBlQ,OAAQoQ,EAAOpQ,OAAS,IAAIoI,eAE1D,CAAC,SAAU,kBAAkBpB,SAASkJ,EAAKhP,QACvCiP,OAAAA,IAAcC,EAAOpQ,OAAyC,MAAhBoQ,EAAOpQ,OAAyC,IAAxBoQ,EAAOpQ,MAAMyG,OAAgB,MAAKoC,EAAAA,IAAMuH,EAAOpQ,OACvHkQ,EAAKzH,gBAAkB2H,EAAO3H,cAChCwH,EAAOxN,KAAP,OAAiByN,GAAjB,IAAuBlQ,MAAOmQ,EAAKvH,aAAcwH,EAAOxH,gBAExDqH,EAAOxN,KAAP,OAAiByN,GAAjB,IAAuBlQ,MAAOmQ,SAKtC9I,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAKqJ,WAAa6B,IAGJ,WAA1C5I,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAC/BU,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQ/G,OAC5CmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,KACrCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAQ4B,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQjI,MAEvFqH,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK/E,MAAQ,IAGC,UAA1CqH,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,OAC/BU,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,GAAQ/G,OAC5CmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAK7D,KACrCmG,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAKuJ,WAAa,GAE9CjH,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAAKuJ,YAAAA,EAAagC,EAAAA,GAC5CjJ,EAASlB,OAAOlE,GAAK4F,OAAO9C,GAC5BnD,EAAQsE,WAAWC,OAAOlE,GAAK4F,OAAOI,YAO3C,CAACrG,EAAQsE,WAAYmB,G,yLAGfwR,EAAf,O,6FA5FMA,EAAAA,kBAAAA,yF,0rCCJyB,SAAzBnO,EAA0BJ,EAASK,EAAc+kB,GACrD,IAAMC,GAAAA,EAAcC,EAAAA,UACbrlB,GAAP,OAA0BslB,EAAAA,YAAWvlB,EAASK,EAAc+kB,GAA5D,OAAc9kB,EAAd,KAcA,OAAM,EAZN6U,EAAAA,YAAU,WACJkQ,EAAYG,UACdH,EAAYG,QAAQvlB,GACpBolB,EAAYG,QAAU,QAEvB,CAACvlB,IAOG,CAACA,EALe,SAACC,EAAQulB,GAC9BJ,EAAYG,QAAUC,EACtBnlB,EAASJ,K,gNAbPE,EAAAA,iF,EAmBSA,EAAf,O,6FAnBMA,EAAAA,yBAAAA,gG,qjFCUAsI,QAAU,SAACwD,EAAKwZ,GAAN,OAAkB,mEAAMrvB,UAAW6V,EAAK/V,MAAOuvB,KAGzD3iB,YAAc,SAACnH,EAAY1C,EAAO0E,EAAOpC,GAC7C,IAAMwH,EAAQ,GAERtN,GADWkG,EAAWC,OAAX,UAAqBL,IAAS+B,OAAOa,MAAK,SAAAmD,GAAC,OAAIA,EAAE3D,QAAUA,MAAU,IAC/DlI,OAAS,GAChC,OAAQwD,EAAMgH,QACZ,IAAK,IACH,IAAMylB,GAAAA,EAASjrB,oCAAAA,WAAWhF,EAAMsN,OAAS,IAAK,SAAArI,GAAC,OAAIA,EAAEuI,MAAQhK,EAAMgK,OAC7DtL,EAAQsB,GAASA,EAAMuZ,KAAOvZ,EAAMuZ,IAAI5X,QAAU3B,EAAMuZ,IAAI5X,OAAOnF,MACrEA,EAAMsN,MAAM2iB,IAAW/tB,IAAOlC,EAAMsN,MAAM2iB,GAAQ/tB,MAAQA,GAC9D,MAEF,IAAK,KACFsB,EAAMuZ,KAAO,IAAI9Y,SAAQ,SAAC8gB,GACzB,IAAMvX,GAAAA,EAAM9F,kCAAAA,UAAAA,IACD1H,EAAMsN,OAAyC,OAAhBtN,EAAMsN,QAAgBtN,EAAMsN,MAAQ,IAC9EtN,EAAMsN,MAAM7K,KAAK,CAAE+K,IAAAA,EAAK+Q,SAAUwG,EAAKhiB,OACvCuK,EAAM7K,KAAK,CAAE+K,IAAAA,EAAK+Q,SAAUwG,EAAKhiB,KAAMgiB,KAAML,gDAAAA,EAAAA,SAAoBK,QAEnE,MAEF,IAAK,IAGH,OAFMkL,GAAAA,EAASjrB,oCAAAA,WAAWhF,EAAMsN,OAAS,IAAK,SAAArI,GAAC,OAAIA,EAAEuI,MAAQhK,EAAMgK,OACrD,GAAVyiB,GAAejwB,EAAMsN,OAA8B,EAArBtN,EAAMsN,MAAM7G,QAAYzG,EAAMsN,MAAMlI,OAAO6qB,EAAQ,GAC9E,CAACjwB,EAAOsN,EAAO9J,EAAMgK,KAE9B,QACEG,QAAQC,IAAIpK,GAEhB,MAAO,CAACxD,EAAOsN,IAIXwV,eAAiB,SAACoN,EAAM/pB,GAC5B,IAAIgqB,GAAAA,EACJ,GAAID,GAAQA,EAAK9L,aAAyC,EAA1B8L,EAAK9L,YAAY3d,OAAY,CAC3D0pB,GAAAA,EACA,IAF2D,IAElD7xB,EAAI,EAAGA,EAAI4xB,EAAK9L,YAAY3d,QAAgB,UAFM,SAElDnI,GACP,IACQwH,GADFye,EAAO2L,EAAK9L,YAAY9lB,IAAM,IAC5BwH,MAAOoC,EAAiBqc,EAAjBrc,MACf,GADsBlI,EAAUukB,EAAVvkB,MAClBkI,GAAmB,KAAVA,EAEX,MAAgB,cADVgW,IAAO/X,EAAOL,IAAU,IAAI+B,QAAU,IAAIa,MAAK,SAAAvE,GAAC,OAAIA,EAAE+D,QAAUA,MAAU,IACzEhH,OAAyB,CAAC,QAAS,KAAM,IAAK,KAAK8F,UAAUhH,GAAS,IAAIC,OAAOukB,sBAAAA,KAA2BtG,GAAMA,EAAGle,SAAAA,IAA0Bke,EAAGle,QACrJ,CAAC,OAAQ,MAAO,IAAK,KAAKgH,UAAUhH,GAAS,IAAIC,OAAOukB,qBAAAA,KAA2BtG,GAAMA,EAAGle,SAAAA,IAA0Bke,EAAGle,QAGlH,CAAC,OAAQ,UAAUgH,SAASkX,GAAMA,EAAGhd,YAAAA,KAAkBgd,GAAMA,EAAGle,SAA4Bke,GAAMA,EAAGle,OAAU,IAAIC,UAAYD,GAAS,IAAIC,QAFrJkwB,GAAAA,EACA,gBAVqD,CAElD7xB,GAAoCA,GAAK,IAgBpD,OAAO6xB,GAGHC,aAAAA,WACJ,wBAAc,mCACZxwB,KAAKsB,KAAO,QACZtB,KAAKsI,OAAAA,EAAQR,kCAAAA,KACb9H,KAAKgK,SAAW,IAChBhK,KAAKsC,MAAQ,GACbtC,KAAKmuB,QAAU,GACfnuB,KAAKkc,UAAAA,E,0KAPHsU,GAWAC,cAAgB,SAAC7sB,EAAOtC,GAC5B,MAAa,WAATA,EACKsC,EAAQA,EAAMxD,MAAQ,KACzBkB,EAAKwM,WAAW,QACblK,EACM,aAATtC,EACGsC,EAAM2B,OAAO+H,QACP,kBAAThM,EACAsC,EAAM2B,OACD3B,EAAM2B,OAAOnF,MAEfwD,EAEFA,EAAM2B,QAAU3B,EAAM2B,OAAOnF,OAGhCswB,aAAe,SAAAvT,GAAG,OAAKA,GAAO,IAAI/K,MAAM,KAAK,GAAG/R,QAChD+J,gBAAkB,SAAA+S,GAAG,OAAIA,EAAItG,QAAQ6Z,aAAavT,GAAM,IAAItG,QAAQ,IAAK,IAAIxW,QAC7E4I,MAAQ,SAAAkU,GAEZ,OADMwT,EAAQC,OAAQzT,GAAO,IACtByT,OAAOnoB,MAAMkoB,GAAS,EAAIA,GAG7B3T,WAAa,SAAAG,GACjB,OAAI,MAAOA,EAA4C,IAEjD0T,EADO1T,EAAI7B,MAAM,iEACNhX,KAAI,SAAA0lB,GACnB,IAAM8G,EAAS9G,EAAE1O,MAAM,4BACvB,OAAIwV,EAAe,kEAAKzuB,KAAAA,EAAKyF,kCAAAA,MAASgpB,EAAO,KACvCvK,EAASyD,EAAE1O,MAAM,6BACJ,kEAAKjZ,KAAAA,EAAKyF,kCAAAA,MAASye,EAAO,IACtCyD,KAEF,uEAAO6G,KAGVloB,OAAS,SAAAwU,GAEb,UADM4T,EAAWC,OAAO7T,GAAKyH,gBACM,UAAbmM,GAAqC,MAAbA,IAG1CE,eAAiB,kBAAOC,+CAAAA,EAAAA,cAA4B,IAAIjpB,QAAU,IAElEW,SAAW,SAAAN,GAAK,OAAK2oB,iBAAiBnoB,MAAK,SAAAC,GAAC,OAAIA,EAAET,QAAUA,MAAU,IAAIH,OAAS,IAEnF8U,QAAU,SAAC3U,EAAOjG,GAEtB,OADcuG,SAASN,GACVQ,MAAK,SAAAC,GAAC,OAAIA,EAAE1G,MAAQA,MAAQ,IAGrC8uB,OAAS,SAACC,EAAaC,GAC3B,IAEMC,GADAC,GADAC,EAAaJ,EAAYnpB,QAAU,IAChBa,MAAK,SAAA2oB,GAAI,OAAIA,EAAKnpB,QAAU+oB,OACrBE,EAAOjpB,OAAU,GAEjD,OADMopB,EAA6B,EAAnBF,EAAU3qB,OAAa2qB,EAAU,GAAGlpB,MAAQ,GACrC,KAAhBgpB,EAAqBI,EAAUJ,GAGlCK,YAAc,SAACtvB,EAAK8a,GACxB,OAAQ9a,GACN,IAAK,IACH,OAA2B,IAAlBsZ,WAAWwB,GAAc,IAAIrB,QAAQ,GAChD,IAAK,IACH,OAAsC,GAA5BH,WAAWwB,GAAO,QAAe,GAAGrB,QAAQ,GACxD,IAAK,IACH,OAAQH,WAAWwB,GAAO,QAAQrB,QAAQ,GAC5C,QACE,OAAOqB,IAIPvB,eAAiB,WAAgB,IAAftT,EAAe,uDAAP,GACxBH,EAAQS,SAASN,EAAMO,eAC7B,GAAIV,EAAMtB,QAAU,EAClB,OAAOyB,EAAMlI,MAEf,IAAM+E,GAAAA,EAAMC,oCAAAA,WAAU+C,GAAO,SAAAY,GAAC,OAAIA,EAAE1G,MAAQiG,EAAMU,gBAClD,OAAI7D,GAAO,EAAUmD,EAAMlI,MAClBkI,EAAMlI,MAAQ+H,EAAM,GAAGypB,IAAQzpB,EAAMhD,IAAQgD,EAAMhD,GAAKysB,IAAO,IAAM,GAG1E/iB,eAAiB,SAACvG,EAAOjG,EAAK8a,GAClC,YAAWA,GAA8B,MAAPA,GAAuB,IAARA,GAAqB,KAARA,EAC5D,OAAOA,EAET,GAAc,gBAAV7U,EACF,OAAOqpB,YAAYtvB,EAAK8a,GAG1B,IADMhV,EAAQS,SAASN,IACbzB,QAAU,EAClB,OAAOsW,EAET,IAAMhY,GAAAA,EAAMC,oCAAAA,WAAU+C,GAAO,SAAAY,GAAC,OAAIA,EAAE1G,MAAQA,KAC5C,IAAa,IAAT8C,EACF,OAAOgY,EAET,IACM2P,EAAO3kB,GADP0pB,EAAe,IAAR1sB,EAAagD,EAAMtB,OAAU1B,GAChB,IAAMgD,EAAM0pB,EAAO,GAAGD,IAAO,EAEvD,OADMlF,EAAQvkB,EAAMhD,IAAQgD,EAAMhD,GAAKysB,IAAO,EACvCjW,YAAYA,WAAWwB,IAAQuP,EAAOI,IAAMhR,QAAQ,KAgDvDgW,cAAgB,SAAAvlB,GACpB,IAAKA,EAAI,OAAOA,EAChB,IACQhG,EAAWwrB,EAAUrvB,oBAArB6D,OAYR,OAXapC,OAAOC,KAAKmC,GACpBlC,SAAQ,SAAAhC,GACGkE,EAAOlE,GACf4F,OAAOvB,QAAO,SAAAuF,GAAC,MAAe,gBAAXA,EAAE3K,QACxB+C,SAAQ,SAAA4H,GACPA,EAAEuC,WAAWnK,SAAQ,SAAAkS,GAEH,SAAZyb,EAAG1wB,OAAmB0wB,EAAG5xB,MAAQ,aAItC2xB,GAGHlH,WAAa,CAAC,CAAEvoB,MAAO,WAAYlC,MAAO,YAAc,CAAEkC,MAAO,SAAUlC,MAAO,UAAY,CAAEkC,MAAO,QAASlC,MAAO,SAAW,CAAEkC,MAAO,OAAQlC,MAAO,qBAC1J6qB,WAAa,CAAC,CAAE3oB,MAAO,OAAQlC,MAAO,QAAU,CAAEkC,MAAO,aAAclC,MAAO,kBAAoB,CAAEkC,MAAO,OAAQlC,MAAO,qBAE1H6xB,gBAAkB,SAAlBA,EAAmBC,EAASC,GAChC,IACMC,EAAKD,EAAWzrB,QAAO,SAAArB,GAAC,OAAIA,EAAEmK,IAAMnK,EAAEgoB,SAAWhoB,EAAEgoB,QAAQC,eAAiB4E,KAClF,GAAgB,EAAZE,EAAGvrB,OACLurB,EAAG/tB,SAAQ,SAAAgB,GACT4sB,EAAgB5sB,EAAG8sB,WAEhB,GAAkB,IAAdC,EAAGvrB,OACZ,OAAOorB,EAAgBG,EAAG,GAAG/vB,IAAK8vB,GAEpC,MAAO,CAACD,IAGJG,aAAe,SAACC,EAAWC,GAC/B,IAAKD,GAAaA,EAAUzrB,OAAS,EAAG,OAAOyrB,EAC/C,IAAM/jB,EAAI,CACRoT,WAAY,UACZxC,MAAO,QAeT,OAVAQ,EAASrb,KAAI,SAAA2H,GACX,GAAI,CAAC,QAAS,UAAU7E,SAAS6E,EAAE3K,OAAS2K,EAAE6hB,SAAU,OAAO7hB,EAC/D,IAAMumB,EAAKvmB,EAAE4U,KAAK4R,KAElB,SADWC,oCAAAA,SAAQH,GAAS,SAAAltB,GAAC,OAAIA,EAAEmK,KAAOnK,EAAEhD,MAAQmwB,GAAMntB,EAAEhD,IAAIyL,WAAN,UAAoB0kB,EAApB,YAExDvmB,EAAEpL,MAAQ0N,GACHtC,KAIJ0T,GAGHI,WAAa,SAAA9f,GACjB,IAAQqG,EAAmCrG,EAAnCqG,WACAiF,GADY3D,EAAuB3H,EAAvB2H,oBACZ2D,KAAMhF,EAAWqB,EAAXrB,OAwBd,OAtBMosB,GADAnwB,GAAAA,EAAOC,oCAAAA,WAAU8I,KACF/I,EAAKmd,UAAa,IACnCrb,KAAI,SAAAsuB,GACN,IACUH,EAGFvsB,EACAsG,EAaR,MAlBI,CAAC,WAAWpF,SAASwrB,EAAEtxB,OAASsxB,EAAE/R,OAC5B4R,EAASG,EAAE/R,KAAX4R,KAEFI,GAAAA,EADKH,oCAAAA,SAASpsB,EAAWC,QAAU,IAAK,SAAAlB,GAAC,OAAIA,EAAEmK,KAAOnK,EAAEhD,MAAQowB,GAAQptB,EAAEhD,IAAIyL,WAAN,UAAoB2kB,EAApB,UAC5D,kEAAK5xB,MAAO,CAAEmJ,SAAU,WAAY4X,IAAK,MAAOkR,MAAO,MAAO3T,MAAO,QAAS5B,OAAQ,QAAS,2DAAC,4DAAAxG,gBAAD,CAAiBC,KAAM+b,iEAAAA,iBAA2B,KAC7J7sB,EAAQK,EAAOksB,IAAS,GACxBjmB,EACJ,sEACGqmB,EACD,kEAAKhyB,MAAO,CAAE0gB,YAAa,kBAAmBC,YAAa,QAASC,YAAa,UAAW,oEAAIvb,EAAM5D,QACtG,0EAEG4D,EAAM7D,IAFT,MAOJuwB,EAAE/R,KAAO,CAAEve,MAAOkK,EAAIimB,KAAMvsB,EAAM7D,MAE7BuwB,KAEFD,GAGHK,UAAY,SAAA/yB,GAUhB,OATQ0f,EAAa1f,EAAb0f,UACFgT,GAAAA,EAAMlwB,oCAAAA,WAAUkd,IAClBrb,KAAI,SAAAsuB,GAKN,MAJI,CAAC,WAAWxrB,SAASwrB,EAAEtxB,OAASsxB,EAAE/R,cAC7B+R,EAAE/R,KAAKve,aACPswB,EAAE/R,KAAK3a,OAET0sB,KAEFD,GAGH3S,YAAc,CAClB,CACE/Y,GAAI,IAAK3F,KAAM,QAASuf,KAAM,CAAEve,MAAO,SAAW0H,SAAU,CAAErD,EAAG,IAAKssB,EAAG,KAE3E,CACEhsB,GAAI,IAAK3F,KAAM,SAAUuf,KAAM,CAAEve,MAAO,OAAS0H,SAAU,CAAErD,EAAG,IAAKssB,EAAG,OAItEC,YAAc,SAACC,EAAUC,GAG7B,OAAuB,IAFND,EAASzwB,oBAAlB6I,MACgB,IAAIoU,UAAY,IAAIjZ,QAAO,SAAAuF,GAAC,MAAe,YAAXA,EAAE3K,OAAuB2K,EAAE4U,MAAQ,IAAI4R,OAASW,KAC1FvsB,QA2BVuF,WAAa,SAACinB,EAAMC,EAAMC,GAC9B,IACM/H,EAAOgI,EAAIF,GAGjB,OAFAE,EAAIF,GAAQE,EAAID,GAChBC,EAAID,GAAQ/H,EACLgI,GAoBH3U,aAAe,SAAAsG,GACnB,IAAQrG,EAAmBqG,EAAnBrG,SACF2U,GADYtwB,EAASgiB,EAAThiB,KACL0a,SAAS6V,cAAc,MACpCD,EAAKE,SAAWxwB,EAChBswB,EAAKG,KAAO9U,EACNlb,EAAQ,IAAIiwB,OAAOC,WAAW,QAAS,CAC3CC,KAAMF,OACNG,SAAQ,EACRC,YAAW,IAEbR,EAAKS,cAActwB,K,6GApYfwP,QAAAA,UAAAA,+E,WAGA3F,YAAAA,cAAAA,+E,WAgCAyV,eAAAA,iBAAAA,+E,WAuBAsN,aAAAA,eAAAA,+E,WAWAC,cAAAA,gBAAAA,+E,WAgBAC,aAAAA,eAAAA,+E,WACAtmB,gBAAAA,kBAAAA,+E,WACAnB,MAAAA,QAAAA,+E,WAKA+T,WAAAA,aAAAA,+E,WAaArU,OAAAA,SAAAA,+E,WAKAsoB,eAAAA,iBAAAA,+E,WAEAroB,SAAAA,WAAAA,+E,WAEAqU,QAAAA,UAAAA,+E,WAKAkU,OAAAA,SAAAA,+E,WAQAQ,YAAAA,cAAAA,+E,WAaA/V,eAAAA,iBAAAA,+E,WAUA/M,eAAAA,iBAAAA,+E,WAkEAijB,cAAAA,gBAAAA,+E,WAkBAjH,WAAAA,aAAAA,+E,WACAI,WAAAA,aAAAA,+E,WAEAgH,gBAAAA,kBAAAA,+E,WAaAI,aAAAA,eAAAA,+E,WAsBAtS,WAAAA,aAAAA,+E,WA6BAiT,UAAAA,YAAAA,+E,WAaAhT,YAAAA,cAAAA,+E,WASAkT,YAAAA,cAAAA,+E,WA8BA9mB,WAAAA,aAAAA,+E,WAyBAyS,aAAAA,eAAAA,gF,iVCtYS,CACbsV,aACA,CACElsB,OAAQ,CACN,CACE3G,KAAM,UACNgH,MAAO,eACPhG,MAAO,eACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,eACb+E,MAAO,CACL,CAAE9F,IAAK,QAASC,MAAO,sBAG3B,CACEhB,KAAM,UACNgH,MAAO,YACPhG,MAAO,YACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,YACb+E,MAAO,CACL,CAAE9F,IAAK,MAAOC,MAAO,SAGzB,CACEhB,KAAM,UACNgH,MAAO,gBACPhG,MAAO,4BACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,4BACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,GAC5B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,OAGlC,CACEtwB,KAAM,UACNgH,MAAO,WACPhG,MAAO,iCACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,WACb+E,MAAO,CACL,CAAE9F,IAAK,QAASC,MAAO,YAAasvB,GAAI,GACxC,CAAEvvB,IAAK,SAAUC,MAAO,cAAesvB,GAAI,KAC3C,CAAEvvB,IAAK,SAAUC,MAAO,cAAesvB,GAAI,KAC3C,CAAEvvB,IAAK,SAAUC,MAAO,cAAesvB,GAAI,OAG/C,CACEtwB,KAAM,UACNgH,MAAO,iBACPhG,MAAO,kBACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,kBACb+E,MAAO,CACL,CAAE9F,IAAK,WAAYC,MAAO,OAG9B,CACEhB,KAAM,UACNgH,MAAO,gBACPhG,MAAO,gBACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,gBACb+E,MAAO,CACL,CAAE9F,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,KAClC,CAAEvvB,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,KAClC,CAAEvvB,IAAK,MAAOC,MAAO,MAAOsvB,GAAI,KAGpC,CACEtwB,KAAM,UACNgH,MAAO,eACPhG,MAAO,eACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,eACb+E,MAAO,CACL,CAAE9F,IAAK,MAAOC,MAAO,MAAOsvB,GAAI,KAGpC,CACEtwB,KAAM,UACNgH,MAAO,UACPhG,MAAO,UACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,UACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,GAC5B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,OAGlC,CACEtwB,KAAM,UACNgH,MAAO,SACPhG,MAAO,SACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,SACb+E,MAAO,CACL,CAAE9F,IAAK,SAAUC,MAAO,OAG5B,CACEhB,KAAM,UACNgH,MAAO,UACPhG,MAAO,UACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,UACb+E,MAAO,CACL,CAAE9F,IAAK,QAASC,MAAO,mBAAoBsvB,GAAI,GAC/C,CAAEvvB,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,KAGtC,CACEtwB,KAAM,UACNgH,MAAO,WACPhG,MAAO,WACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,WACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,GAC5B,CAAEvvB,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,IAC5B,CAAEvvB,IAAK,MAAOC,MAAO,IAAKsvB,GAAI,MAC9B,CAAEvvB,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,SAGhC,CACEtwB,KAAM,UACNgH,MAAO,kBACPhG,MAAO,kBACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,kBACb+E,MAAO,CACL,CAAE9F,IAAK,OAAQC,MAAO,MAAOsvB,GAAI,GACjC,CAAEvvB,IAAK,OAAQC,MAAO,MAAOsvB,GAAI,KACjC,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,OAGlC,CACEtwB,KAAM,UACNgH,MAAO,iBACPhG,MAAO,iBACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,iBACb+E,MAAO,CACL,CAAE9F,IAAK,MAAOC,MAAO,MAAOsvB,GAAI,KAGpC,CACEtwB,KAAM,UACNgH,MAAO,SACPhG,MAAO,SACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,QACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,KAC5B,CAAEvvB,IAAK,MAAOC,MAAO,KAAMsvB,GAAI,KAGnC,CACEtwB,KAAM,UACNgH,MAAO,kBACPhG,MAAO,kBACP6rB,QAAS,GACTnkB,SAAU,GACV5G,YAAa,kBACb+E,MAAO,CACL,CAAE9F,IAAK,MAAOC,MAAO,MAAOsvB,GAAI,GAChC,CAAEvvB,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,OAGtC,CACEtwB,KAAM,UACNgH,MAAO,YACPhG,MAAO,YACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,YACb+E,MAAO,CACL,CAAE9F,IAAK,SAAUC,MAAO,SAAUsvB,GAAI,KACtC,CAAEvvB,IAAK,SAAUC,MAAO,SAAUsvB,GAAI,KACtC,CAAEvvB,IAAK,MAAOC,MAAO,MAAOsvB,GAAI,KAGpC,CACEtwB,KAAM,UACNgH,MAAO,YACPhG,MAAO,YACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,YACb+E,MAAO,CACL,CAAE9F,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,MAAOC,MAAO,MAAOsvB,GAAI,KAGpC,CACEtwB,KAAM,UACNgH,MAAO,eACPhG,MAAO,eACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,eACb+E,MAAO,CACL,CAAE9F,IAAK,QAASC,MAAO,QAASsvB,GAAI,KAGxC,CACEtwB,KAAM,UACNgH,MAAO,SACPhG,MAAO,SACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,SACb+E,MAAO,CACL,CAAE9F,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,KAGhC,CACEtwB,KAAM,UACNgH,MAAO,wBACPhG,MAAO,oCACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,GACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,KAGhC,CACEtwB,KAAM,UACNgH,MAAO,OACPhG,MAAO,OACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,OACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,GAC5B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,OAGlC,CACEtwB,KAAM,UACNgH,MAAO,gBACPhG,MAAO,mBACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,mBACb+E,MAAO,CACL,CAAE9F,IAAK,SAAUC,MAAO,IAAKsvB,GAAI,KACjC,CAAEvvB,IAAK,cAAeC,MAAO,KAAMsvB,GAAI,KAG3C,CACEtwB,KAAM,UACNgH,MAAO,mBACPhG,MAAO,mBACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,mBACb+E,MAAO,CACL,CAAE9F,IAAK,QAASC,MAAO,WAG3B,CACEhB,KAAM,UACNgH,MAAO,aACPhG,MAAO,aACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,aACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,KAGhC,CACEtwB,KAAM,UACNgH,MAAO,WACPhG,MAAO,WACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,WACb+E,MAAO,CACL,CAAE9F,IAAK,MAAOC,MAAO,MAAOsvB,GAAI,GAChC,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,QAC9B,CAAEvvB,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,OAGtC,CACEtwB,KAAM,UACNgH,MAAO,gBACPhG,MAAO,gBACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,gBACb+E,MAAO,CACL,CAAE9F,IAAK,WAAYC,MAAO,WAAYsvB,GAAI,GAC1C,CAAEvvB,IAAK,WAAYC,MAAO,SAAUsvB,GAAI,MAG5C,CACEtwB,KAAM,UACNgH,MAAO,kBACPhG,MAAO,kBACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,kBACb+E,MAAO,CACL,CAAE9F,IAAK,QAASC,MAAO,mBAAoBsvB,GAAI,KAGnD,CACEtwB,KAAM,UACNgH,MAAO,QACPhG,MAAO,QACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,QACb+E,MAAO,CACL,CAAE9F,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,GAClC,CAAEvvB,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,IAClC,CAAEvvB,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,MAClC,CAAEvvB,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,QAGtC,CACEtwB,KAAM,UACNgH,MAAO,UACPhG,MAAO,UACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,UACb+E,MAAO,CACL,CAAE9F,IAAK,MAAOC,MAAO,iBACrB,CAAED,IAAK,OAAQC,MAAO,kBACtB,CAAED,IAAK,OAAQC,MAAO,oBAG1B,CACEhB,KAAM,UACNgH,MAAO,cACPhG,MAAO,cACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,cACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,MACnB,CAAED,IAAK,IAAKC,MAAO,MACnB,CAAED,IAAK,IAAKC,MAAO,QAGvB,CACEhB,KAAM,UACNgH,MAAO,kBACPhG,MAAO,kBACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,kBACb+E,MAAO,CACL,CAAE9F,IAAK,MAAOC,MAAO,SAGzB,CACEhB,KAAM,UACNgH,MAAO,YACPhG,MAAO,oBACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,oBACb+E,MAAO,CACL,CAAE9F,IAAK,MAAOC,MAAO,MAAOsvB,GAAI,GAChC,CAAEvvB,IAAK,OAAQC,MAAO,OAAQsvB,GAAI,OAGtC,CACEtwB,KAAM,UACNgH,MAAO,sBACPhG,MAAO,sBACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,sBACb+E,MAAO,CACL,CAAE9F,IAAK,OAAQC,MAAO,kBAAmBsvB,GAAI,KAGjD,CACEtwB,KAAM,UACNgH,MAAO,UACPhG,MAAO,UACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,UACb+E,MAAO,CACL,CAAE9F,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,KAGhC,CACEtwB,KAAM,UACNgH,MAAO,UACPhG,MAAO,UACP6rB,QAAS,GACTnkB,SAAU,IACV5G,YAAa,SACb+E,MAAO,CACL,CAAE9F,IAAK,IAAKC,MAAO,IAAKsvB,GAAI,GAC5B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,KAC9B,CAAEvvB,IAAK,KAAMC,MAAO,KAAMsvB,GAAI,UA5axC,O,mVCGIwC,E,SAAsD,MAElCvxB,KAAK,CAACvE,EAAO2I,GAAI,ggRAAqgR,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,oCAAoC,MAAQ,GAAG,SAAW,wlHAAwlH,eAAiB,CAAC,46SAAg7S,WAAa,MAE1qrB,O,8BCDA3I,EAAOD,QAAU,SAAUg2B,GACzB,IAAIC,EAAO,GA6FX,OA3FAA,EAAK9rB,SAAW,WACd,OAAOxI,KAAKsE,KAAI,SAAUiwB,GACxB,IAAInb,EAAU,GACVob,OAAAA,IAAmBD,EAAK,GA4B5B,OA1BIA,EAAK,KACPnb,GAAW,cAAczL,OAAO4mB,EAAK,GAAI,QAGvCA,EAAK,KACPnb,GAAW,UAAUzL,OAAO4mB,EAAK,GAAI,OAGnCC,IACFpb,GAAW,SAASzL,OAAwB,EAAjB4mB,EAAK,GAAG1tB,OAAa,IAAI8G,OAAO4mB,EAAK,IAAM,GAAI,OAG5Enb,GAAWib,EAAuBE,GAE9BC,IACFpb,GAAW,KAGTmb,EAAK,KACPnb,GAAW,KAGTmb,EAAK,KACPnb,GAAW,KAGNA,KACNmF,KAAK,KAIV+V,EAAK51B,EAAI,SAAW+1B,EAASC,EAAOC,EAAQC,EAAU1uB,GAC7B,iBAAZuuB,IACTA,EAAU,CAAC,CAAC,KAAMA,OAAAA,KAGpB,IAAII,EAAyB,GAE7B,GAAIF,EACF,IAAK,IAAI1S,EAAI,EAAGA,EAAIjiB,KAAK6G,OAAQob,IAAK,CACpC,IAAIhb,EAAKjH,KAAKiiB,GAAG,GAEP,MAANhb,IACF4tB,EAAuB5tB,IAAAA,GAK7B,IAAK,IAAI6tB,EAAK,EAAGA,EAAKL,EAAQ5tB,OAAQiuB,IAAM,CAC1C,IAAIP,EAAO,GAAG5mB,OAAO8mB,EAAQK,IAEzBH,GAAUE,EAAuBN,EAAK,eAI/BruB,SAAAA,IACEquB,EAAK,KAGdA,EAAK,GAAK,SAAS5mB,OAAwB,EAAjB4mB,EAAK,GAAG1tB,OAAa,IAAI8G,OAAO4mB,EAAK,IAAM,GAAI,MAAM5mB,OAAO4mB,EAAK,GAAI,MAF/FA,EAAK,GAAKruB,GAOVwuB,IACGH,EAAK,KAGRA,EAAK,GAAK,UAAU5mB,OAAO4mB,EAAK,GAAI,MAAM5mB,OAAO4mB,EAAK,GAAI,MAC1DA,EAAK,GAAKG,GAIVE,IACGL,EAAK,IAGRA,EAAK,GAAK,cAAc5mB,OAAO4mB,EAAK,GAAI,OAAO5mB,OAAO4mB,EAAK,GAAI,KAC/DA,EAAK,GAAKK,GAHVL,EAAK,GAAK,GAAG5mB,OAAOinB,IAOxBN,EAAKzxB,KAAK0xB,MAIPD,I,8BClGTh2B,EAAOD,QAAU,SAAUk2B,GACzB,IAWMQ,EAXF3b,EAAUmb,EAAK,GACfS,EAAaT,EAAK,GAEtB,OAAKS,EAIe,mBAATC,MACLC,EAASD,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUN,MACzDnU,EAAO,+DAA+DlT,OAAOunB,GAC7EK,EAAgB,OAAO5nB,OAAOkT,EAAM,OACpCkU,EAAaC,EAAWQ,QAAQlxB,KAAI,SAAU+O,GAChD,MAAO,iBAAiB1F,OAAOqnB,EAAWS,YAAc,IAAI9nB,OAAO0F,EAAQ,UAEtE,CAAC+F,GAASzL,OAAOonB,GAAYpnB,OAAO,CAAC4nB,IAAgBhX,KAAK,OAG5D,CAACnF,GAASmF,KAAK,MAbbnF,I,qBCPX,gBAUsB,qBAAd,EAMA,WAKJ,IAAIsc,EACAC,EAEAC,EAAU,GACVC,EAAU,GACVC,EAAW,CACPC,cAAe,KACfC,WAAY,KACZC,WAAY,KACZC,cAAe,MACfC,mBAAmB,GAEvBvzB,EAAU,CACNmzB,cAAeD,EAASC,cACxBC,WAAYF,EAASE,WACrBC,WAAYH,EAASG,WACrBC,cAAeJ,EAASI,cACxBC,kBAAmBL,EAASK,mBASpC,SAASrM,EAAQ5nB,EAAOk0B,GACpBp2B,KAAKq2B,OAASn0B,EAEdlC,KAAKs2B,OAASF,GAGlBV,EAAU,SAASxzB,GACf,IAAI9B,EACA2J,EACAwsB,EACAC,EAEJ,GAAId,EAAQe,UAAUv0B,GAClB9B,EAAQ8B,EAAM9B,aACX,GAAc,IAAV8B,QAAgC,IAAVA,EAC7B9B,EAAQ,OACL,GAAc,OAAV8B,GAAkByzB,EAAEltB,MAAMvG,GACjC9B,EAAQ,UACL,GAAqB,iBAAV8B,EACd,GAAIU,EAAQozB,YAAc9zB,IAAUU,EAAQozB,WACxC51B,EAAQ,OACL,GAAIwC,EAAQqzB,YAAc/zB,IAAUU,EAAQqzB,aAAe/zB,EAAM2U,QAAQ,WAAY,IAAIhQ,OAC5FzG,EAAQ,SACL,CACH,IAAK2J,KAAQ6rB,EAGT,IAFAY,EAAmD,mBAAnCZ,EAAQ7rB,GAAM2sB,QAAQC,SAA0Bf,EAAQ7rB,GAAM2sB,QAAQC,WAAaf,EAAQ7rB,GAAM2sB,QAAQC,WAE3Gz0B,EAAMoZ,MAAMkb,GAAS,CAC/BD,EAAmBX,EAAQ7rB,GAAM4sB,SAEjC,MAMRv2B,GAFAm2B,EAAmBA,GAAoBb,EAAQC,EAAEiB,gBAExB10B,QAG7B9B,EAAQwwB,OAAO1uB,IAAS,KAG5B,OAAO,IAAI4nB,EAAQ5nB,EAAO9B,KAItBy2B,QAtEM,QAyEdnB,EAAQe,UAAY,SAASroB,GACzB,OAAOA,aAAe0b,GAI1B4L,EAAQC,EAAIA,EAAI,CAEZmB,eAAgB,SAAS12B,EAAO22B,EAAQC,GACpC,IAGIC,EAQAC,EACA/qB,EAIAgrB,EACAC,EACAC,EACAC,EACAte,EApBAue,EAAS1B,EAAQH,EAAQ9yB,QAAQmzB,eACjCyB,GAAO,EACPC,GAAS,EAETC,EAAO,GACPC,EAAW,KACXC,EAAU,IACVC,EAAU,IAEVC,EAAU,GACVC,GAAM,EAgGV,GAnFA33B,EAAQA,GAAS,EAEjB+L,EAAMD,KAAKC,IAAI/L,GAIXs1B,EAAQC,EAAEvuB,SAAS2vB,EAAQ,MAC3BS,GAAO,EACPT,EAASA,EAAOlgB,QAAQ,WAAY,MAC7B6e,EAAQC,EAAEvuB,SAAS2vB,EAAQ,MAAQrB,EAAQC,EAAEvuB,SAAS2vB,EAAQ,QACrEM,EAAS3B,EAAQC,EAAEvuB,SAAS2vB,EAAQ,KAAOA,EAAOiB,QAAQ,KAAO53B,EAAQ,EAAI22B,EAAOiB,QAAQ,MAAQ,EACpGjB,EAASA,EAAOlgB,QAAQ,WAAY,KAIpC6e,EAAQC,EAAEvuB,SAAS2vB,EAAQ,OAG3BG,KAFAA,EAAYH,EAAOzb,MAAM,iBAED4b,EAAU,GAG9BxB,EAAQC,EAAEvuB,SAAS2vB,EAAQ,QAC3BW,EAAO,KAGXX,EAASA,EAAOlgB,QAAQ,IAAIohB,OAAOP,EAAO,YAAa,IAEnDvrB,GAAOwrB,IAAaT,GAA2B,MAAdA,GAEjCQ,GAAQH,EAAOW,cAAcP,SAC7Bv3B,GAAgBu3B,GACTxrB,EAAMwrB,GAAYxrB,GAAOyrB,IAAYV,GAA2B,MAAdA,GAEzDQ,GAAQH,EAAOW,cAAcN,QAC7Bx3B,GAAgBw3B,GACTzrB,EAAMyrB,GAAWzrB,GAAO0rB,IAAYX,GAA2B,MAAdA,GAExDQ,GAAQH,EAAOW,cAAcL,QAC7Bz3B,GAAgBy3B,IACT1rB,EAAM0rB,GAAW1rB,GAtDjB,MAsDqC+qB,GAA2B,MAAdA,KAEzDQ,GAAQH,EAAOW,cAAcC,SAC7B/3B,GAzDO,MA8DXs1B,EAAQC,EAAEvuB,SAAS2vB,EAAQ,SAC3BU,GAAS,EACTV,EAASA,EAAOlgB,QAAQ,MAAO,MAInCsgB,EAAM/2B,EAAMoI,WAAW4J,MAAM,KAAK,GAClCglB,EAAYL,EAAO3kB,MAAM,KAAK,GAC9BklB,EAAYP,EAAOiB,QAAQ,KAC3Bf,GAAgBF,EAAO3kB,MAAM,KAAK,GAAGA,MAAM,KAAK,GAAGkJ,MAAM,OAAS,IAAIzU,OAElEuwB,GACI1B,EAAQC,EAAEvuB,SAASgwB,EAAW,MAE9BA,GADAA,EAAYA,EAAUvgB,QAAQ,IAAK,KACbzE,MAAM,KAC5B0lB,EAAUpC,EAAQC,EAAE7Z,QAAQ1b,EAAQg3B,EAAU,GAAGvwB,OAASuwB,EAAU,GAAGvwB,OAASmwB,EAAkBI,EAAU,GAAGvwB,SAE/GixB,EAAUpC,EAAQC,EAAE7Z,QAAQ1b,EAAOg3B,EAAUvwB,OAAQmwB,GAGzDG,EAAMW,EAAQ1lB,MAAM,KAAK,GAGrB0lB,EADApC,EAAQC,EAAEvuB,SAAS0wB,EAAS,KAClBP,EAAOa,WAAWN,QAAUA,EAAQ1lB,MAAM,KAAK,GAE/C,GAGVqlB,GAAuC,IAA7B7G,OAAOkH,EAAQO,MAAM,MAC/BP,EAAU,KAGdX,EAAMzB,EAAQC,EAAE7Z,QAAQ1b,EAAO,EAAG42B,GAIlCU,IAASR,GAAatG,OAAOuG,IAAQ,KAAQO,IAASH,EAAOW,cAAcP,SAG3E,OAFAR,EAAMnG,OAAOJ,OAAOuG,GAAO,KAEnBO,GACJ,KAAKH,EAAOW,cAAcC,SACtBT,EAAOH,EAAOW,cAAcL,QAC5B,MACJ,KAAKN,EAAOW,cAAcL,QACtBH,EAAOH,EAAOW,cAAcN,QAC5B,MACJ,KAAKL,EAAOW,cAAcN,QACtBF,EAAOH,EAAOW,cAAcP,SAYxC,GALIjC,EAAQC,EAAEvuB,SAAS+vB,EAAK,OACxBA,EAAMA,EAAIkB,MAAM,GAChBN,GAAM,GAGNZ,EAAItwB,OAASowB,EACb,IAAK,IAAIv4B,EAAIu4B,EAAeE,EAAItwB,OAAQnI,EAAI,EAAGA,IAC3Cy4B,EAAM,IAAMA,EAwBpB,OApBIG,GAAa,IACbH,EAAMA,EAAI3uB,WAAWqO,QAAQ,0BAA2B,KAAO0gB,EAAOa,WAAWd,YAGzD,IAAxBP,EAAOiB,QAAQ,OACfb,EAAM,IAGVne,EAASme,EAAMW,GAAWJ,GAAc,IAEpCF,EACAxe,GAAUwe,GAAQO,EAAM,IAAM,IAAM/e,GAAUwe,GAAQO,EAAM,IAAM,IAE9DV,GAAU,EACVre,EAAoB,IAAXqe,GAAgBU,EAAM,IAAM,KAAO/e,EAASA,GAAU+e,EAAM,IAAM,KACpEA,IACP/e,EAAS,IAAMA,GAIhBA,GAGX4d,eAAgB,SAAS0B,GACrB,IAQIC,EACAn4B,EAEAo2B,EAXAe,EAAS1B,EAAQjzB,EAAQmzB,eACzByC,EAAiBF,EACjBJ,EAAgB,CACZC,SAAU,EACVN,QAAS,EACTD,QAAS,EACTD,SAAU,IAOlB,GAAI/0B,EAAQozB,YAAcsC,IAAW11B,EAAQozB,WACzC51B,EAAQ,OACL,GAAIwC,EAAQqzB,YAAcqC,IAAW11B,EAAQqzB,aAAeqC,EAAOzhB,QAAQ,WAAY,IAAIhQ,OAC9FzG,EAAQ,SACL,CAOH,IAAKm4B,KANLn4B,EAAQ,EAE0B,MAA9Bm3B,EAAOa,WAAWN,UAClBQ,EAASA,EAAOzhB,QAAQ,MAAO,IAAIA,QAAQ0gB,EAAOa,WAAWN,QAAS,MAGrDI,EAGjB,GAFA1B,EAAS,IAAIyB,OAAO,YAAcV,EAAOW,cAAcK,GAAgB,aAAehB,EAAOkB,SAASC,OAAS,iBAE3GF,EAAeld,MAAMkb,GAAS,CAC9Bp2B,GAAS8L,KAAKysB,IAAI,GAAIT,EAAcK,IACpC,MAKRn4B,IAAUk4B,EAAOlmB,MAAM,KAAKvL,OAASqF,KAAKiQ,IAAImc,EAAOlmB,MAAM,KAAKvL,OAAS,EAAGyxB,EAAOlmB,MAAM,KAAKvL,OAAS,IAAM,EAAI,GAAK,EAGtHyxB,EAASA,EAAOzhB,QAAQ,aAAc,IAEtCzW,GAASwwB,OAAO0H,GAGpB,OAAOl4B,GAEXqI,MAAO,SAASrI,GACZ,MAAwB,iBAAVA,GAAsBqI,MAAMrI,IAE9CgH,SAAU,SAASkxB,EAAQM,GACvB,OAAmC,IAA5BN,EAAON,QAAQY,IAE1BC,OAAQ,SAASP,EAAQQ,EAAWC,GAChC,OAAOT,EAAOD,MAAM,EAAGU,GAASD,EAAYR,EAAOD,MAAMU,IAE7D1K,OAAQ,SAAS2K,EAAO7I,GACpB,GAAa,OAATnwB,KACA,MAAM,IAAIi5B,UAAU,sDAGxB,GAAwB,mBAAb9I,EACP,MAAM,IAAI8I,UAAU9I,EAAW,sBAGnC,IAGI/vB,EAHAqB,EAAI0C,OAAO60B,GACXE,EAAMz3B,EAAEoF,SAAW,EACnBob,EAAI,EAGR,GAAyB,IAArBkX,UAAUtyB,OACVzG,EAAQ+4B,UAAU,OACf,CACH,KAAOlX,EAAIiX,KAASjX,KAAKxgB,IACrBwgB,IAGJ,GAAIA,GAAKiX,EACL,MAAM,IAAID,UAAU,+CAGxB74B,EAAQqB,EAAEwgB,KAEd,KAAOA,EAAIiX,EAAKjX,IACRA,KAAKxgB,IACLrB,EAAQ+vB,EAAS/vB,EAAOqB,EAAEwgB,GAAIA,EAAGxgB,IAGzC,OAAOrB,GAOXg5B,WAAY,SAAUzyB,GAClB,IAAI0yB,EAAQ1yB,EAAE6B,WAAW4J,MAAM,KAE/B,OAAOinB,EAAMxyB,OAAS,EAAI,EAAIqF,KAAKysB,IAAI,GAAIU,EAAM,GAAGxyB,SAOxDyyB,iBAAkB,WACd,IAAIvU,EAAOwU,MAAMrM,UAAUmL,MAAMjL,KAAK+L,WAEtC,OAAOpU,EAAKsJ,QAAO,SAASmL,EAAOC,GAC/B,IAAIC,EAAK/D,EAAEyD,WAAWK,GACtB,OAAOD,EAAQE,EAAKF,EAAQE,IAC7B,IAQP5d,QAAS,SAAS1b,EAAOu5B,EAAa3C,EAAkB4C,GACpD,IAEIC,EACAC,EACAC,EACA/gB,EALAghB,EAAa55B,EAAMoI,WAAW4J,MAAM,KACpC6nB,EAAcN,GAAeC,GAAa,GAuB9C,OAfEC,EADwB,IAAtBG,EAAWnzB,OACMqF,KAAKiQ,IAAIjQ,KAAKguB,IAAIF,EAAW,GAAGnzB,OAAQozB,GAAcN,GAEtDM,EAGrBF,EAAQ7tB,KAAKysB,IAAI,GAAIkB,GAGrB7gB,GAAUge,EAAiB52B,EAAQ,KAAOy5B,GAAoBE,GAAOje,QAAQ+d,GAEzED,EAAYD,EAAcE,IAC1BC,EAAkB,IAAI7B,OAAO,YAAc2B,GAAaD,EAAcE,IAAqB,MAC3F7gB,EAASA,EAAOnC,QAAQijB,EAAiB,KAGtC9gB,IAKf0c,EAAQ9yB,QAAUA,EAGlB8yB,EAAQE,QAAUA,EAGlBF,EAAQG,QAAUA,EAKlBH,EAAQ6B,OAAS,SAASl1B,GAKtB,OAJIA,IACAO,EAAQmzB,cAAgB1zB,EAAIuiB,eAGzBhiB,EAAQmzB,eAMnBL,EAAQyE,WAAa,SAAS93B,GAC1B,IAAKA,EACD,OAAOwzB,EAAQjzB,EAAQmzB,eAK3B,GAFA1zB,EAAMA,EAAIuiB,eAELiR,EAAQxzB,GACT,MAAM,IAAI+3B,MAAM,oBAAsB/3B,GAG1C,OAAOwzB,EAAQxzB,IAGnBqzB,EAAQ2E,MAAQ,WACZ,IAAK,IAAIC,KAAYxE,EACjBlzB,EAAQ03B,GAAYxE,EAASwE,IAIrC5E,EAAQM,WAAa,SAASe,GAC1Bn0B,EAAQozB,WAAgC,iBAAb,EAAwBe,EAAS,MAGhErB,EAAQO,WAAa,SAAUc,GAC3Bn0B,EAAQqzB,WAAgC,iBAAb,EAAwBc,EAAS,MAGhErB,EAAQQ,cAAgB,SAASa,GAC7Bn0B,EAAQszB,cAAmC,iBAAb,EAAwBa,EAAS,OAGnErB,EAAQ6E,SAAW,SAASj5B,EAAM6B,EAAM4zB,GAGpC,GAFA5zB,EAAOA,EAAKyhB,cAER5kB,KAAKsB,EAAO,KAAK6B,GACjB,MAAM,IAAI81B,UAAU91B,EAAO,IAAM7B,EAAO,wBAK5C,OAFAtB,KAAKsB,EAAO,KAAK6B,GAAQ4zB,EAElBA,GAIXrB,EAAQ8E,SAAW,SAASrd,EAAKsd,GAC7B,IAAIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAZ,EACA3O,EAeJ,GAZmB,iBAARrO,IACPA,GAAO,GAEHpP,QAAQitB,MACRjtB,QAAQitB,KAAK,6DAA8D7d,KAKnFA,EAAMA,EAAI9c,QAGAib,MAAM,SACZ,OAAO,EAIX,GAAY,KAAR6B,EACA,OAAO,EAIX,IAEIgd,EAAazE,EAAQyE,WAAWM,GAClC,MAAOxuB,GACLkuB,EAAazE,EAAQyE,WAAWzE,EAAQ6B,UAe5C,OAXAqD,EAAcT,EAAW1B,SAASC,OAClCoC,EAAWX,EAAWjC,cACtBwC,EAAcP,EAAW/B,WAAWN,QAEhC6C,EADoC,MAApCR,EAAW/B,WAAWd,UACP,MAEA6C,EAAW/B,WAAWd,YAK5B,QADb9L,EAAOrO,EAAI7B,MAAM,cAEb6B,EAAMA,EAAI8d,OAAO,GACbzP,EAAK,KAAOoP,IAOP,QADbpP,EAAOrO,EAAI7B,MAAM,cAEb6B,EAAMA,EAAIkb,MAAM,GAAI,GAChB7M,EAAK,KAAOsP,EAAS3C,UAAY3M,EAAK,KAAOsP,EAASjD,SAAWrM,EAAK,KAAOsP,EAASlD,SAAWpM,EAAK,KAAOsP,EAASnD,YAK9HoD,EAAiB,IAAI9C,OAAO0C,EAAe,OAEtCxd,EAAI7B,MAAM,cACXuf,EAAY1d,EAAI/K,MAAMsoB,IACR7zB,OAAS,IAGfg0B,EAAUh0B,OAAS,GACPg0B,EAAU,GAAGvf,MAAM,cAAiBuf,EAAU,GAAGvf,MAAMyf,GAEvC,IAAxBF,EAAU,GAAGh0B,QACDg0B,EAAU,GAAGvf,MAAM,UAAauf,EAAU,GAAGvf,MAAMyf,KAAsBF,EAAU,GAAGvf,MAAM,UAE5Fuf,EAAU,GAAGvf,MAAM,cAAiBuf,EAAU,GAAGvf,MAAMyf,KAAsBF,EAAU,GAAGvf,MAAM,aAchIoa,EAAQwF,GAAKpR,EAAQoD,UAAY,CAC7BiO,MAAO,WACH,OAAOzF,EAAQ11B,OAEnB+2B,OAAQ,SAASqE,EAAapE,GAC1B,IAEIjtB,EACAiP,EACAqiB,EAJAj7B,EAAQJ,KAAKs2B,OACbS,EAASqE,GAAex4B,EAAQszB,cASpC,GAHAc,EAAmBA,GAAoB9qB,KAAKovB,MAG9B,IAAVl7B,GAAsC,OAAvBwC,EAAQozB,WACvBhd,EAASpW,EAAQozB,gBACd,GAAc,OAAV51B,GAAyC,OAAvBwC,EAAQqzB,WACjCjd,EAASpW,EAAQqzB,eACd,CACH,IAAKlsB,KAAQ6rB,EACT,GAAImB,EAAOzb,MAAMsa,EAAQ7rB,GAAM2sB,QAAQK,QAAS,CAC5CsE,EAAiBzF,EAAQ7rB,GAAMgtB,OAE/B,MAMR/d,GAFAqiB,EAAiBA,GAAkB3F,EAAQC,EAAEmB,gBAErB12B,EAAO22B,EAAQC,GAG3C,OAAOhe,GAEX5Y,MAAO,WACH,OAAOJ,KAAKs2B,QAEhBp0B,MAAO,WACH,OAAOlC,KAAKq2B,QAEhBkF,IAAK,SAASn7B,GAGV,OAFAJ,KAAKs2B,OAAS1F,OAAOxwB,GAEdJ,MAEXw7B,IAAK,SAASp7B,GACV,IAAIq7B,EAAa9F,EAAE2D,iBAAiBlM,KAAK,KAAMptB,KAAKs2B,OAAQl2B,GAQ5D,OAFAJ,KAAKs2B,OAASX,EAAEtH,OAAO,CAACruB,KAAKs2B,OAAQl2B,IAJrC,SAAeo5B,EAAO9M,EAAMgP,EAAOC,GAC/B,OAAOnC,EAAQttB,KAAKovB,MAAMG,EAAa/O,KAGS,GAAK+O,EAElDz7B,MAEX47B,SAAU,SAASx7B,GACf,IAAIq7B,EAAa9F,EAAE2D,iBAAiBlM,KAAK,KAAMptB,KAAKs2B,OAAQl2B,GAQ5D,OAFAJ,KAAKs2B,OAASX,EAAEtH,OAAO,CAACjuB,IAJxB,SAAeo5B,EAAO9M,EAAMgP,EAAOC,GAC/B,OAAOnC,EAAQttB,KAAKovB,MAAMG,EAAa/O,KAGJxgB,KAAKovB,MAAMt7B,KAAKs2B,OAASmF,IAAeA,EAExEz7B,MAEX67B,SAAU,SAASz7B,GAQf,OAFAJ,KAAKs2B,OAASX,EAAEtH,OAAO,CAACruB,KAAKs2B,OAAQl2B,IALrC,SAAeo5B,EAAO9M,EAAMgP,EAAOC,GAC/B,IAAIF,EAAa9F,EAAE2D,iBAAiBE,EAAO9M,GAC3C,OAAOxgB,KAAKovB,MAAM9B,EAAQiC,GAAcvvB,KAAKovB,MAAM5O,EAAO+O,GAAcvvB,KAAKovB,MAAMG,EAAaA,KAGhD,GAE7Cz7B,MAEX87B,OAAQ,SAAS17B,GAQb,OAFAJ,KAAKs2B,OAASX,EAAEtH,OAAO,CAACruB,KAAKs2B,OAAQl2B,IALrC,SAAeo5B,EAAO9M,EAAMgP,EAAOC,GAC/B,IAAIF,EAAa9F,EAAE2D,iBAAiBE,EAAO9M,GAC3C,OAAOxgB,KAAKovB,MAAM9B,EAAQiC,GAAcvvB,KAAKovB,MAAM5O,EAAO+O,MAKvDz7B,MAEX+7B,WAAY,SAAS37B,GACjB,OAAO8L,KAAKC,IAAIupB,EAAQ11B,KAAKs2B,QAAQsF,SAASx7B,GAAOA,WAQ7Ds1B,EAAQ6E,SAAS,SAAU,KAAM,CAC7BnC,WAAY,CACRd,UAAW,IACXQ,QAAS,KAEbI,cAAe,CACXC,SAAU,IACVN,QAAS,IACTD,QAAS,IACTD,SAAU,KAEdqE,QAAS,SAAS5F,GACd,IAAI5a,EAAI4a,EAAS,GACjB,OAAkC,MAAvBA,EAAS,IAAM,IAAa,KAC5B,IAAN5a,EAAW,KACL,IAANA,EAAW,KACL,IAANA,EAAW,KAAO,MAE3Bid,SAAU,CACNC,OAAQ,OAOZhD,EAAQ6E,SAAS,SAAU,MAAO,CAC9B7D,QAAS,CACLK,OAAQ,QACRJ,SAAU,SAEdI,OAAQ,SAAS32B,EAAO22B,EAAQC,GAC5B,IACIhe,EADAijB,EAAQvG,EAAQC,EAAEvuB,SAAS2vB,EAAQ,QAAU,IAAM,GAoBvD,OAjBA32B,GAAgB,IAGhB22B,EAASA,EAAOlgB,QAAQ,SAAU,IAElCmC,EAAS0c,EAAQC,EAAEmB,eAAe12B,EAAO22B,EAAQC,GAE7CtB,EAAQC,EAAEvuB,SAAS4R,EAAQ,OAC3BA,EAASA,EAAO5G,MAAM,KAEf5M,QAAQ,EAAG,EAAGy2B,EAAQ,OAE7BjjB,EAASA,EAAOuF,KAAK,KAErBvF,EAASA,EAASijB,EAAQ,MAGvBjjB,GAEX2d,SAAU,SAAS2B,GACf,QAA4C,KAAnC5C,EAAQC,EAAEiB,eAAe0B,IAAkBxc,QAAQ,OAOpE,IAAIgc,EAAU,CACVxa,KAAM,IACN4e,SAAU,CAAC,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAE9DC,EAAS,CACL7e,KAAM,KACN4e,SAAU,CAAC,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,QAMjEE,EAHWtE,EAAQoE,SAASvuB,OAAOwuB,EAAOD,SAASx1B,QAAO,SAAU6tB,GACpE,OAAOuD,EAAQoE,SAASlE,QAAQzD,GAAQ,MAEZhW,KAAK,KA6Q7C,OA3QQ6d,EAAgB,IAAMA,EAAcvlB,QAAQ,IAAK,WAAa,IAElE6e,EAAQ6E,SAAS,SAAU,QAAS,CAChC7D,QAAS,CACLK,OAAQ,aACRJ,SAAU,IAAIsB,OAAOmE,IAEzBrF,OAAQ,SAAS32B,EAAO22B,EAAQC,GAC5B,IAGI+C,EACA5d,EACA+d,EAJAmC,EAAQ3G,EAAQC,EAAEvuB,SAAS2vB,EAAQ,MAAQoF,EAASrE,EACpDwE,EAAS5G,EAAQC,EAAEvuB,SAAS2vB,EAAQ,OAASrB,EAAQC,EAAEvuB,SAAS2vB,EAAQ,OAAS,IAAM,GAQ3F,IAFAA,EAASA,EAAOlgB,QAAQ,SAAU,IAE7BkjB,EAAQ,EAAGA,GAASsC,EAAMH,SAASr1B,OAAQkzB,IAI5C,GAHA5d,EAAMjQ,KAAKysB,IAAI0D,EAAM/e,KAAMyc,GAC3BG,EAAMhuB,KAAKysB,IAAI0D,EAAM/e,KAAMyc,EAAQ,GAErB,OAAV35B,GAA4B,IAAVA,GAAeA,GAAS+b,GAAO/b,EAAQ85B,EAAK,CAC9DoC,GAAUD,EAAMH,SAASnC,GAErB5d,EAAM,IACN/b,GAAgB+b,GAGpB,MAMR,OAFSuZ,EAAQC,EAAEmB,eAAe12B,EAAO22B,EAAQC,GAEjCsF,GAEpB3F,SAAU,SAAS2B,GACf,IACIyB,EACAwC,EAFAn8B,EAAQs1B,EAAQC,EAAEiB,eAAe0B,GAIrC,GAAIl4B,EAAO,CACP,IAAK25B,EAAQjC,EAAQoE,SAASr1B,OAAS,EAAGkzB,GAAS,EAAGA,IAAS,CAC3D,GAAIrE,EAAQC,EAAEvuB,SAASkxB,EAAQR,EAAQoE,SAASnC,IAAS,CACrDwC,EAAkBrwB,KAAKysB,IAAIb,EAAQxa,KAAMyc,GAEzC,MAGJ,GAAIrE,EAAQC,EAAEvuB,SAASkxB,EAAQ6D,EAAOD,SAASnC,IAAS,CACpDwC,EAAkBrwB,KAAKysB,IAAIwD,EAAO7e,KAAMyc,GAExC,OAIR35B,GAAUm8B,GAAmB,EAGjC,OAAOn8B,KAOXs1B,EAAQ6E,SAAS,SAAU,WAAY,CACvC7D,QAAS,CACLK,OAAQ,QAEZA,OAAQ,SAAS32B,EAAO22B,EAAQC,GAC5B,IAKIhe,EAEAta,EAPA64B,EAAS7B,EAAQG,QAAQH,EAAQ9yB,QAAQmzB,eACzCyG,EAAU,CACNC,OAAQ1F,EAAOzb,MAAM,wBAAwB,GAC7CohB,MAAO3F,EAAOzb,MAAM,wBAAwB,IAqBpD,IAdAyb,EAASA,EAAOlgB,QAAQ,WAAY,IAGpCmC,EAAS0c,EAAQC,EAAEmB,eAAe12B,EAAO22B,EAAQC,GAG7C52B,GAAS,GACTo8B,EAAQC,OAASD,EAAQC,OAAO5lB,QAAQ,SAAU,IAClD2lB,EAAQE,MAAQF,EAAQE,MAAM7lB,QAAQ,SAAU,KACzCzW,EAAQ,IAAOs1B,EAAQC,EAAEvuB,SAASo1B,EAAQC,OAAQ,OAAS/G,EAAQC,EAAEvuB,SAASo1B,EAAQC,OAAQ,OACrGD,EAAQC,OAAS,IAAMD,EAAQC,QAI9B/9B,EAAI,EAAGA,EAAI89B,EAAQC,OAAO51B,OAAQnI,IAGnC,OAFS89B,EAAQC,OAAO/9B,IAGpB,IAAK,IACDsa,EAAS0c,EAAQC,EAAEkD,OAAO7f,EAAQue,EAAOkB,SAASC,OAAQh6B,GAC1D,MACJ,IAAK,IACDsa,EAAS0c,EAAQC,EAAEkD,OAAO7f,EAAQ,IAAKta,EAAI64B,EAAOkB,SAASC,OAAO7xB,OAAS,GAMvF,IAAKnI,EAAI89B,EAAQE,MAAM71B,OAAS,EAAGnI,GAAK,EAAGA,IAGvC,OAFS89B,EAAQE,MAAMh+B,IAGnB,IAAK,IACDsa,EAASta,IAAM89B,EAAQE,MAAM71B,OAAS,EAAImS,EAASue,EAAOkB,SAASC,OAAShD,EAAQC,EAAEkD,OAAO7f,EAAQue,EAAOkB,SAASC,SAAU8D,EAAQE,MAAM71B,QAAU,EAAInI,KAC3J,MACJ,IAAK,IACDsa,EAASta,IAAM89B,EAAQE,MAAM71B,OAAS,EAAImS,EAAS,IAAM0c,EAAQC,EAAEkD,OAAO7f,EAAQ,MAAOwjB,EAAQE,MAAM71B,QAAU,EAAInI,GAAK64B,EAAOkB,SAASC,OAAO7xB,OAAS,IAMtK,OAAOmS,KAOX0c,EAAQ6E,SAAS,SAAU,cAAe,CAC1C7D,QAAS,CACLK,OAAQ,WACRJ,SAAU,YAEdI,OAAQ,SAAS32B,EAAO22B,EAAQC,GAC5B,IAEIqC,GAD+B,iBAAVj5B,GAAuBs1B,EAAQC,EAAEltB,MAAMrI,GAAiC,OAAxBA,EAAMu8B,iBACvDvqB,MAAM,KAM9B,OAJA2kB,EAASA,EAAOlgB,QAAQ,eAAgB,IAE/B6e,EAAQC,EAAEmB,eAAelG,OAAOyI,EAAM,IAAKtC,EAAQC,GAE5C,IAAMqC,EAAM,IAEhC1C,SAAU,SAAS2B,GACf,IAAIe,EAAQ3D,EAAQC,EAAEvuB,SAASkxB,EAAQ,MAAQA,EAAOlmB,MAAM,MAAQkmB,EAAOlmB,MAAM,MAC7EhS,EAAQwwB,OAAOyI,EAAM,IACrBU,EAAQnJ,OAAOyI,EAAM,IAUzB,OARAU,EAAQrE,EAAQC,EAAEvuB,SAASkxB,EAAQ,MAAQyB,IAAU,EAAIA,EAQlDrE,EAAQC,EAAEtH,OAAO,CAACjuB,EAAO8L,KAAKysB,IAAI,GAAIoB,KAN7C,SAAeP,EAAO9M,EAAMgP,EAAOC,GAC/B,IAAIF,EAAa/F,EAAQC,EAAE2D,iBAAiBE,EAAO9M,GAEnD,OADW8M,EAAQiC,GAAe/O,EAAO+O,IAAeA,EAAaA,KAIZ,MAOjE/F,EAAQ6E,SAAS,SAAU,UAAW,CACtC7D,QAAS,CACLK,OAAQ,OAEZA,OAAQ,SAAS32B,EAAO22B,EAAQC,GAC5B,IAAIO,EAAS7B,EAAQG,QAAQH,EAAQ9yB,QAAQmzB,eAEzCiG,EAAUtG,EAAQC,EAAEvuB,SAAS2vB,EAAQ,MAAQ,IAAM,GASvD,OANAA,EAASA,EAAOlgB,QAAQ,OAAQ,IAEhCmlB,GAAWzE,EAAOyE,QAAQ57B,GAEjBs1B,EAAQC,EAAEmB,eAAe12B,EAAO22B,EAAQC,GAEjCgF,KAOpBtG,EAAQ6E,SAAS,SAAU,aAAc,CACzC7D,QAAS,CACLK,OAAQ,MACRJ,SAAU,OAEdI,OAAQ,SAAS32B,EAAO22B,EAAQC,GAC5B,IACIhe,EADAijB,EAAQvG,EAAQC,EAAEvuB,SAAS2vB,EAAQ,MAAQ,IAAM,GAsBrD,OAnBIrB,EAAQ9yB,QAAQuzB,oBAChB/1B,GAAgB,KAIpB22B,EAASA,EAAOlgB,QAAQ,QAAS,IAEjCmC,EAAS0c,EAAQC,EAAEmB,eAAe12B,EAAO22B,EAAQC,GAE7CtB,EAAQC,EAAEvuB,SAAS4R,EAAQ,OAC3BA,EAASA,EAAO5G,MAAM,KAEf5M,QAAQ,EAAG,EAAGy2B,EAAQ,KAE7BjjB,EAASA,EAAOuF,KAAK,KAErBvF,EAASA,EAASijB,EAAQ,IAGvBjjB,GAEX2d,SAAU,SAAS2B,GACf,IAAIlC,EAASV,EAAQC,EAAEiB,eAAe0B,GACtC,OAAI5C,EAAQ9yB,QAAQuzB,kBACA,IAATC,EAEJA,KAOXV,EAAQ6E,SAAS,SAAU,OAAQ,CACnC7D,QAAS,CACLK,OAAQ,MACRJ,SAAU,OAEdI,OAAQ,SAAS32B,EAAO22B,EAAQC,GAC5B,IAAI4F,EAAQ1wB,KAAKyW,MAAMviB,EAAQ,GAAK,IAChCy8B,EAAU3wB,KAAKyW,OAAOviB,EAAiB,GAARw8B,EAAa,IAAO,IACnDE,EAAU5wB,KAAKovB,MAAMl7B,EAAiB,GAARw8B,EAAa,GAAiB,GAAVC,GAEtD,OAAOD,EAAQ,KAAOC,EAAU,GAAK,IAAMA,EAAUA,GAAW,KAAOC,EAAU,GAAK,IAAMA,EAAUA,IAE1GnG,SAAU,SAAS2B,GACf,IAAIyE,EAAYzE,EAAOlmB,MAAM,KACzB0qB,EAAU,EAgBd,OAbyB,IAArBC,EAAUl2B,QAEVi2B,GAA4C,GAAvBlM,OAAOmM,EAAU,IAAW,GAEjDD,GAA4C,GAAvBlM,OAAOmM,EAAU,IAEtCD,GAAoBlM,OAAOmM,EAAU,KACT,IAArBA,EAAUl2B,SAEjBi2B,GAA4C,GAAvBlM,OAAOmM,EAAU,IAEtCD,GAAoBlM,OAAOmM,EAAU,KAElCnM,OAAOkM,MAKnBpH,IAz+Be,mC,kCCDtB,IAAIsH,EAAuBC,EAAQ,KAEnC,SAASC,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3C5+B,EAAOD,QAAU,WACf,SAASg/B,EAAKp9B,EAAOq9B,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAAIA,IAAWV,EAUf,MANIW,EAAM,IAAIvD,MACZ,oLAIEj3B,KAAO,sBACLw6B,EAGR,SAASC,IACP,OAAOP,EAIT,IAAIQ,EAAiB,CACnB7E,MAPFqE,EAAK/gB,WAAa+gB,EAQhBS,OAAQT,EACRU,KAAMV,EACNW,KAAMX,EACNjH,OAAQiH,EACRY,OAAQZ,EACR/E,OAAQ+E,EACR3E,OAAQ2E,EAERa,IAAKb,EACLc,QAASP,EACTlqB,QAAS2pB,EACTe,YAAaf,EACbgB,WAAYT,EACZjY,KAAM0X,EACNiB,SAAUV,EACVW,MAAOX,EACPY,UAAWZ,EACXa,MAAOb,EACPc,MAAOd,EAEPe,eAAgBxB,EAChBC,kBAAmBF,GAKrB,OAFAW,EAAe/7B,UAAY+7B,I,qBC5C3Bv/B,EAAOD,QAAU4+B,EAAQ,KAARA,I,6BCNnB3+B,EAAOD,QAFoB,gD,kCCeR,SAAfugC,IACF,OAAO1yB,KAAK2yB,SAASr2B,SAAS,IAAIs2B,UAAU,GAAG1sB,MAAM,IAAImM,KAAK,KAkkBhE,SAAS1I,IACP,IAAK,IAAIkpB,EAAO5F,UAAUtyB,OAAQm4B,EAAQ,IAAIzF,MAAMwF,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAChFD,EAAMC,GAAQ9F,UAAU8F,GAG1B,OAAqB,IAAjBD,EAAMn4B,OACD,SAAUq4B,GACf,OAAOA,GAIU,IAAjBF,EAAMn4B,OACDm4B,EAAM,GAGRA,EAAM3Q,QAAO,SAAU1vB,EAAG6c,GAC/B,OAAO,WACL,OAAO7c,EAAE6c,EAAE2jB,WAAM,EAAQhG,gB,iCA/kBNyF,IACMA,K,8BC5B/B,IAAIQ,EAAc,GAElB,SAASC,EAAqBna,GAG5B,IAFA,IAAIkH,GAAU,EAEL1tB,EAAI,EAAGA,EAAI0gC,EAAYv4B,OAAQnI,IACtC,GAAI0gC,EAAY1gC,GAAGwmB,aAAeA,EAAY,CAC5CkH,EAAS1tB,EACT,MAIJ,OAAO0tB,EAGT,SAASkT,EAAahL,EAAM1xB,GAI1B,IAHA,IAAI28B,EAAa,GACbC,EAAc,GAET9gC,EAAI,EAAGA,EAAI41B,EAAKztB,OAAQnI,IAAK,CACpC,IAAI61B,EAAOD,EAAK51B,GAEZgB,EAAQ6/B,EADRt4B,EAAKrE,EAAQ0a,KAAOiX,EAAK,GAAK3xB,EAAQ0a,KAAOiX,EAAK,KACxB,EAC1BrP,EAAa,GAAGvX,OAAO1G,EAAI,KAAK0G,OAAOjO,GAEvC+/B,GADJF,EAAWt4B,GAAMvH,EAAQ,EACD2/B,EAAqBna,IACzC9W,EAAM,CACRsxB,IAAKnL,EAAK,GACVG,MAAOH,EAAK,GACZoL,UAAWpL,EAAK,GAChBK,SAAUL,EAAK,GACfruB,MAAOquB,EAAK,KAGa,IAAvBkL,GACFL,EAAYK,GAAmBG,aAC/BR,EAAYK,GAAmBI,QAAQzxB,KAEnCyxB,EAeV,SAAyBzxB,EAAKxL,GAC5B,IAAIk9B,EAAMl9B,EAAQm9B,OAAOn9B,GAezB,OAdAk9B,EAAIzd,OAAOjU,GAEG,SAAiB4xB,GACzBA,EACEA,EAAON,MAAQtxB,EAAIsxB,KAAOM,EAAOtL,QAAUtmB,EAAIsmB,OAASsL,EAAOL,YAAcvxB,EAAIuxB,WAAaK,EAAOpL,WAAaxmB,EAAIwmB,UAAYoL,EAAO95B,QAAUkI,EAAIlI,OAI3J45B,EAAIzd,OAAOjU,EAAM4xB,GAEjBF,EAAIG,UAZV,CAfoC7xB,EAAKxL,GACnCA,EAAQs9B,QAAUxhC,EAClB0gC,EAAY55B,OAAO9G,EAAG,EAAG,CACvBwmB,WAAYA,EACZ2a,QAASA,EACTD,WAAY,KAIhBJ,EAAY38B,KAAKqiB,GAGnB,OAAOsa,EAsBTlhC,EAAOD,QAAU,SAAUi2B,EAAM1xB,GAG/B,IAAIu9B,EAAkBb,EADtBhL,EAAOA,GAAQ,GADf1xB,EAAUA,GAAW,IAGrB,OAAO,SAAgBw9B,GACrBA,EAAUA,GAAW,GAErB,IAAK,IAAI1hC,EAAI,EAAGA,EAAIyhC,EAAgBt5B,OAAQnI,IAAK,CAC/C,IACI2hC,EAAQhB,EADKc,EAAgBzhC,IAEjC0gC,EAAYiB,GAAOT,aAGjBU,EAAqBhB,EAAac,EAASx9B,GAE/C,IAFA,IAES29B,EAAK,EAAGA,EAAKJ,EAAgBt5B,OAAQ05B,IAAM,CAClD,IAEIC,EAASnB,EAFKc,EAAgBI,IAIK,IAAnCnB,EAAYoB,GAAQZ,aACtBR,EAAYoB,GAAQX,UAEpBT,EAAY55B,OAAOg7B,EAAQ,IAI/BL,EAAkBG,K,6BCnGtB,IAAIze,EAAO,GAoCXvjB,EAAOD,QAVP,SAA0Bw6B,EAAQh4B,GAGhC,KAFI0E,EAxBN,SAAmBA,GACjB,YAAWsc,EAAKtc,GAAyB,CACvC,IAAIk7B,EAAc5iB,SAAS6iB,cAAcn7B,GAEzC,GAAIsuB,OAAO8M,mBAAqBF,aAAuB5M,OAAO8M,kBAC5D,IAGEF,EAAcA,EAAYG,gBAAgBC,KAC1C,MAAO50B,GAEPw0B,EAAc,KAIlB5e,EAAKtc,GAAUk7B,EAGjB,OAAO5e,EAAKtc,GAlBd,CAwByBszB,IAGrB,MAAM,IAAIuB,MAAM,2GAGlB70B,EAAOu7B,YAAYjgC,K,8BCzBrBvC,EAAOD,QAPP,SAA4BuE,GAC1B,IAAI8Q,EAAUmK,SAAS6V,cAAc,SAGrC,OAFA9wB,EAAQm+B,cAAcrtB,EAAS9Q,EAAQo+B,YACvCp+B,EAAQi2B,OAAOnlB,EAAS9Q,EAAQA,SACzB8Q,I,kCCITpV,EAAOD,QARP,SAAwC4iC,GACtC,IAAIC,EAAmD,KAEnDA,GACFD,EAAaE,aAAa,QAASD,K,8BC8DvC5iC,EAAOD,QAZP,SAAgBuE,GACd,IAAIq+B,EAAer+B,EAAQw+B,mBAAmBx+B,GAC9C,MAAO,CACLyf,OAAQ,SAAgBjU,GAzD5B,IAAe6yB,EAAcr+B,EACvB88B,EAUAlL,EAXSyM,EA0DHA,EA1DiBr+B,EA0DHA,EAzDpB88B,EAAM,IAD0BtxB,EA0DHA,GAvDzBwmB,WACN8K,GAAO,cAAc/xB,OAAOS,EAAIwmB,SAAU,QAGxCxmB,EAAIsmB,QACNgL,GAAO,UAAU/xB,OAAOS,EAAIsmB,MAAO,QAGjCF,OAAAA,IAAmBpmB,EAAIlI,SAGzBw5B,GAAO,SAAS/xB,OAA0B,EAAnBS,EAAIlI,MAAMW,OAAa,IAAI8G,OAAOS,EAAIlI,OAAS,GAAI,OAG5Ew5B,GAAOtxB,EAAIsxB,IAEPlL,IACFkL,GAAO,KAGLtxB,EAAIsmB,QACNgL,GAAO,KAGLtxB,EAAIwmB,WACN8K,GAAO,MAKLC,EAFYvxB,EAAIuxB,YAEa,oBAAT1K,OACtByK,GAAO,uDAAuD/xB,OAAOsnB,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUqK,MAAe,QAMtI/8B,EAAQy+B,kBAAkB3B,EAAKuB,EAAcr+B,EAAQA,UAoBnDq9B,OAAQ,WAjBZ,IAA4BgB,EAEM,QAFNA,EAkBHA,GAhBNK,YAIjBL,EAAaK,WAAWC,YAAYN,O,8BCrCtC3iC,EAAOD,QAZP,SAA2BqhC,EAAKuB,GAC9B,GAAIA,EAAaO,WACfP,EAAaO,WAAWC,QAAU/B,MAC7B,CACL,KAAOuB,EAAaS,YAClBT,EAAaM,YAAYN,EAAaS,YAGxCT,EAAaH,YAAYjjB,SAAS8jB,eAAejC,O,kECHrD,ICLA,IAAIkC,EACAC,EAAQ,IAAIC,WAAW,ICJ3B,wHCMA,EAJA,SAAkBh6B,GAChB,MAAuB,iBAATA,GAAqB,OAAWA,IHG5Ci6B,EAAY,GAEPrjC,EAAI,EAAGA,EAAI,MAAOA,EACzBqjC,EAAUl/B,MAAMnE,EAAI,KAAO8J,SAAS,IAAIyyB,OAAO,IAoBjD,MAjBA,SAAmB+G,GACjB,IAAIC,EAA4B,EAAnB9I,UAAUtyB,aAAAA,IAAcsyB,UAAU,GAAmBA,UAAU,GAAK,EASjF,GANIrxB,GAAQi6B,EAAUC,EAAIC,EAAS,IAAMF,EAAUC,EAAIC,EAAS,IAAMF,EAAUC,EAAIC,EAAS,IAAMF,EAAUC,EAAIC,EAAS,IAAM,IAAMF,EAAUC,EAAIC,EAAS,IAAMF,EAAUC,EAAIC,EAAS,IAAM,IAAMF,EAAUC,EAAIC,EAAS,IAAMF,EAAUC,EAAIC,EAAS,IAAM,IAAMF,EAAUC,EAAIC,EAAS,IAAMF,EAAUC,EAAIC,EAAS,IAAM,IAAMF,EAAUC,EAAIC,EAAS,KAAOF,EAAUC,EAAIC,EAAS,KAAOF,EAAUC,EAAIC,EAAS,KAAOF,EAAUC,EAAIC,EAAS,KAAOF,EAAUC,EAAIC,EAAS,KAAOF,EAAUC,EAAIC,EAAS,MAAMrd,cAMpf,EAAS9c,GAId,OAAOA,EAHL,MAAMmxB,UAAU,gCIApB,EApBA,SAAYr2B,EAASs/B,EAAKD,GAExB,IAAIE,GADJv/B,EAAUA,GAAW,IACFi8B,SAAWj8B,EAAQw/B,KHAzB,WAEb,GAGER,EAHGA,GAGiC,oBAAXS,QAA0BA,OAAOT,iBAAmBS,OAAOT,gBAAgBp6B,KAAK66B,SAA+B,oBAAbC,UAAgE,mBAA7BA,SAASV,iBAAkCU,SAASV,gBAAgBp6B,KAAK86B,UAOzO,OAAOV,EAAgBC,GAJnB,MAAM,IAAIzH,MAAM,gHGHpB,GAHA+H,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBD,EAAK,CACPD,EAASA,GAAU,EAEnB,IAAK,IAAIvjC,EAAI,EAAGA,EAAI,KAAMA,EACxBwjC,EAAID,EAASvjC,GAAKyjC,EAAKzjC,GAGzB,OAAOwjC,EAGT,OAAO,EAAUC,K,8BCpBnB7jC,EAAOD,QAAUY,mC,8BCAjBX,EAAOD,QAAUgB,mC,8BCAjBf,EAAOD,QAAUW,mC,8BCAjBV,EAAOD,QAAUU,mC,8BCAjBT,EAAOD,QAAUQ,mC,8BCAjBP,EAAOD,QAAUS,mC,8BCAjBR,EAAOD,QAAUe,mC,8BCAjBd,EAAOD,QAAUiB,mC,8BCAjBhB,EAAOD,QAAUc,mC,8BCAjBb,EAAOD,QAAUkB,mC,6BCAjBjB,EAAOD,QAAUa,mCCCbqjC,yBAA2B,GAG/B,SAASC,oBAAoBC,GAE5B,IAAIC,EAAeH,yBAAyBE,GAC5C,gBAAIC,IAIApkC,EAASikC,yBAAyBE,GAAY,CACjDx7B,GAAIw7B,EACJE,QAAO,EACPtkC,QAAS,IAIVukC,oBAAoBH,GAAUrV,KAAK9uB,EAAOD,QAASC,EAAQA,EAAOD,QAASmkC,qBAG3ElkC,EAAOqkC,QAAAA,GAbCD,EAAarkC,QCPtBmkC,oBAAoBtU,EAAI,SAAS5vB,GAChC,IAAIukC,EAASvkC,GAAUA,EAAOwkC,WAC7B,WAAa,OAAOxkC,EAAgB,SACpC,WAAa,OAAOA,GAErB,OADAkkC,oBAAoB5P,EAAEiQ,EAAQ,CAAElkC,EAAGkkC,IAC5BA,GCLRL,oBAAoB5P,EAAI,SAASv0B,EAAS0kC,GACzC,IAAI,IAAI1gC,KAAO0gC,EACXP,oBAAoBn9B,EAAE09B,EAAY1gC,KAASmgC,oBAAoBn9B,EAAEhH,EAASgE,IAC5E8B,OAAO6+B,eAAe3kC,EAASgE,EAAK,CAAE4gC,YAAW,EAAOC,IAAKH,EAAW1gC,MCJ3EmgC,oBAAoBW,IAAM,SAAS7kC,GASlC,OARAA,EAAS6F,OAAOi/B,OAAO9kC,IACXmI,WAAUnI,EAAOmI,SAAW,IACxCtC,OAAO6+B,eAAe1kC,EAAQ,UAAW,CACxC2kC,YAAW,EACX1H,IAAK,WACJ,MAAM,IAAInB,MAAM,0FAA4F97B,EAAO2I,OAG9G3I,GCTRkkC,oBAAoBn9B,EAAI,SAAS+I,EAAKi1B,GAAQ,OAAOl/B,OAAO+oB,UAAUC,eAAeC,KAAKhf,EAAKi1B,ICC/Fb,oBAAoBvF,EAAI,SAAS5+B,GACX,oBAAXilC,QAA0BA,OAAOC,aAC1Cp/B,OAAO6+B,eAAe3kC,EAASilC,OAAOC,YAAa,CAAEnjC,MAAO,WAE7D+D,OAAO6+B,eAAe3kC,EAAS,aAAc,CAAE+B,OAAM,K,8/BCMlDwC,EAAU,G,GAEdA,EAAQy+B,kBAAoB,IAC5Bz+B,EAAQm+B,cAAgB,IAElBn+B,EAAQi2B,OAAS,SAAc,KAAM,QAE3Cj2B,EAAQm9B,OAAS,IACjBn9B,EAAQw+B,mBAAqB,IAEhB,IAAI,IAASx+B,GAKJ,KAAW,YAAiB,W","sources":["webpack://chem-generic-ui/webpack/universalModuleDefinition","webpack://chem-generic-ui/./src/components/admin/ElementManager.js","webpack://chem-generic-ui/./src/components/admin/SelectAttrNewModal.js","webpack://chem-generic-ui/./src/components/admin/SelectOption.js","webpack://chem-generic-ui/./src/components/admin/SelectOptionLayer.js","webpack://chem-generic-ui/./src/components/admin/renderDeleteButton.js","webpack://chem-generic-ui/./src/components/details/GenAnaModal.js","webpack://chem-generic-ui/./src/components/details/GenDSDetails.js","webpack://chem-generic-ui/./src/components/details/GenInterface.js","webpack://chem-generic-ui/./src/components/details/GenInterfaceSP.js","webpack://chem-generic-ui/./src/components/details/GenSgDetails.js","webpack://chem-generic-ui/./src/components/dnd/DragDropItemTypes.js","webpack://chem-generic-ui/./src/components/dnd/GenericElDropTarget.js","webpack://chem-generic-ui/./src/components/dnd/GridDnD.js","webpack://chem-generic-ui/./src/components/dnd/PanelDnD.js","webpack://chem-generic-ui/./src/components/fields/ButtonConfirm.js","webpack://chem-generic-ui/./src/components/fields/ButtonDelField.js","webpack://chem-generic-ui/./src/components/fields/ButtonReload.js","webpack://chem-generic-ui/./src/components/fields/ButtonTooltip.js","webpack://chem-generic-ui/./src/components/fields/FieldLabel.js","webpack://chem-generic-ui/./src/components/fields/FieldTypes.js","webpack://chem-generic-ui/./src/components/fields/GenProperties.js","webpack://chem-generic-ui/./src/components/fields/GenPropertiesFields.js","webpack://chem-generic-ui/./src/components/flow/FlowView.js","webpack://chem-generic-ui/./src/components/flow/FlowViewerModal.js","webpack://chem-generic-ui/./src/components/flow/LayerNode.js","webpack://chem-generic-ui/./src/components/layers/GenPropertiesLayer.js","webpack://chem-generic-ui/./src/components/layers/LayerModal.js","webpack://chem-generic-ui/./src/components/layers/LayersLayout.js","webpack://chem-generic-ui/./src/components/models/Attachment.js","webpack://chem-generic-ui/./src/components/models/GenericSubField.js","webpack://chem-generic-ui/./src/components/table/DropLinkRenderer.js","webpack://chem-generic-ui/./src/components/table/DropRenderer.js","webpack://chem-generic-ui/./src/components/table/DropTextRenderer.js","webpack://chem-generic-ui/./src/components/table/GenericElTableDropTarget.js","webpack://chem-generic-ui/./src/components/table/GridBtn.js","webpack://chem-generic-ui/./src/components/table/GridEntry.js","webpack://chem-generic-ui/./src/components/table/SamOption.js","webpack://chem-generic-ui/./src/components/table/SelectRenderer.js","webpack://chem-generic-ui/./src/components/table/TableRecord.js","webpack://chem-generic-ui/./src/components/table/UConverterRenderer.js","webpack://chem-generic-ui/./src/components/tools/Constants.js","webpack://chem-generic-ui/./src/components/tools/collate.js","webpack://chem-generic-ui/./src/components/tools/orten.js","webpack://chem-generic-ui/./src/components/tools/reinventGeneric.js","webpack://chem-generic-ui/./src/components/tools/useReducerWithCallback.js","webpack://chem-generic-ui/./src/components/tools/utils.js","webpack://chem-generic-ui/./src/data/SystemUnits.js","webpack://chem-generic-ui/./src/asserts/main.css","webpack://chem-generic-ui/./node_modules/css-loader/dist/runtime/api.js","webpack://chem-generic-ui/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://chem-generic-ui/./node_modules/numeral/numeral.js","webpack://chem-generic-ui/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://chem-generic-ui/./node_modules/prop-types/index.js","webpack://chem-generic-ui/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://chem-generic-ui/./node_modules/redux/es/redux.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/rng.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/regex.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/validate.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/v4.js","webpack://chem-generic-ui/external umd {\"commonjs\":\"@fortawesome/free-regular-svg-icons\",\"commonjs2\":\"@fortawesome/free-regular-svg-icons\",\"amd\":\"@fortawesome/free-regular-svg-icons\",\"root\":\"@fortawesome/free-regular-svg-icons\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"@fortawesome/free-solid-svg-icons\",\"commonjs2\":\"@fortawesome/free-solid-svg-icons\",\"amd\":\"@fortawesome/free-solid-svg-icons\",\"root\":\"@fortawesome/free-solid-svg-icons\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"@fortawesome/react-fontawesome\",\"commonjs2\":\"@fortawesome/react-fontawesome\",\"amd\":\"@fortawesome/react-fontawesome\",\"root\":\"@fortawesome/react-fontawesome\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"lodash\",\"commonjs2\":\"lodash\",\"amd\":\"lodash\",\"root\":\"_\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"React\",\"root\":\"React\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-bootstrap\",\"commonjs2\":\"react-bootstrap\",\"amd\":\"react-bootstrap\",\"root\":\"react-bootstrap\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-dnd\",\"commonjs2\":\"react-dnd\",\"amd\":\"react-dnd\",\"root\":\"react-dnd\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-draggable\",\"commonjs2\":\"react-draggable\",\"amd\":\"Draggable\",\"root\":\"Draggable\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-dropzone\",\"commonjs2\":\"react-dropzone\",\"amd\":\"Dropzone\",\"root\":\"Dropzone\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-flow-renderer\",\"commonjs2\":\"react-flow-renderer\",\"amd\":\"react-flow-renderer\",\"root\":\"react-flow-renderer\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-select\",\"commonjs2\":\"react-select\",\"amd\":\"Select\",\"root\":\"Select\"}","webpack://chem-generic-ui/webpack/bootstrap","webpack://chem-generic-ui/webpack/runtime/compat get default export","webpack://chem-generic-ui/webpack/runtime/define property getters","webpack://chem-generic-ui/webpack/runtime/harmony module decorator","webpack://chem-generic-ui/webpack/runtime/hasOwnProperty shorthand","webpack://chem-generic-ui/webpack/runtime/make namespace object","webpack://chem-generic-ui/./src/asserts/main.css?bcb4"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-bootstrap\"), require(\"lodash\"), require(\"@fortawesome/react-fontawesome\"), require(\"@fortawesome/free-regular-svg-icons\"), require(\"react-select\"), require(\"react-dropzone\"), require(\"react-dnd\"), require(\"@fortawesome/free-solid-svg-icons\"), require(\"react-draggable\"), require(\"react-flow-renderer\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\", \"react-bootstrap\", \"lodash\", \"@fortawesome/react-fontawesome\", \"@fortawesome/free-regular-svg-icons\", \"Select\", \"Dropzone\", \"react-dnd\", \"@fortawesome/free-solid-svg-icons\", \"Draggable\", \"react-flow-renderer\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"react-bootstrap\"), require(\"lodash\"), require(\"@fortawesome/react-fontawesome\"), require(\"@fortawesome/free-regular-svg-icons\"), require(\"react-select\"), require(\"react-dropzone\"), require(\"react-dnd\"), require(\"@fortawesome/free-solid-svg-icons\"), require(\"react-draggable\"), require(\"react-flow-renderer\")) : factory(root[\"React\"], root[\"react-bootstrap\"], root[\"_\"], root[\"@fortawesome/react-fontawesome\"], root[\"@fortawesome/free-regular-svg-icons\"], root[\"Select\"], root[\"Dropzone\"], root[\"react-dnd\"], root[\"@fortawesome/free-solid-svg-icons\"], root[\"Draggable\"], root[\"react-flow-renderer\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function(__WEBPACK_EXTERNAL_MODULE__4639__, __WEBPACK_EXTERNAL_MODULE__8512__, __WEBPACK_EXTERNAL_MODULE__7607__, __WEBPACK_EXTERNAL_MODULE__6615__, __WEBPACK_EXTERNAL_MODULE__4410__, __WEBPACK_EXTERNAL_MODULE__327__, __WEBPACK_EXTERNAL_MODULE__4135__, __WEBPACK_EXTERNAL_MODULE__2854__, __WEBPACK_EXTERNAL_MODULE__5963__, __WEBPACK_EXTERNAL_MODULE__6826__, __WEBPACK_EXTERNAL_MODULE__6848__) {\nreturn ","import React, { useState } from 'react';\nimport { Button } from 'react-bootstrap';\n\nconst ElementManager = () => {\n const [count, setCount] = useState(0);\n return (\n <div>\n <p>\n You clicked\n {count}\n {' '}\n times\n </p>\n <Button bsStyle=\"primary\" onClick={() => setCount(count + 1)}>\n Click me\n </Button>\n </div>\n );\n};\n\nexport default ElementManager;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Form, FormControl, FormGroup, InputGroup, Modal, Button\n} from 'react-bootstrap';\n\nexport default class SelectAttrNewModal extends Component {\n handleCreate() {\n const { fnCreate } = this.props;\n fnCreate(this.s_selectKey.value.trim());\n }\n\n render() {\n const { showModal, fnClose } = this.props;\n return (\n <Modal backdrop=\"static\" show={showModal} onHide={() => fnClose()}>\n <Modal.Header closeButton><Modal.Title>New Select List</Modal.Title></Modal.Header>\n <Modal.Body style={{ overflow: 'auto' }}>\n <div className=\"col-md-12\">\n <Form horizontal className=\"input-form\">\n <FormGroup controlId=\"formControlSelectKey\">\n <InputGroup>\n <InputGroup.Addon>Name</InputGroup.Addon>\n <FormControl type=\"text\" inputRef={(ref) => { this.s_selectKey = ref; }} />\n </InputGroup>\n <div className=\"help\">\n Seletc List name is unique in the template\n <br />\n Seletc List name must contain only lowercase letters and underscores\n <br />\n Seletc List name should not contain special characters like $, !, %, etc.\n </div>\n </FormGroup>\n </Form>\n <FormGroup>\n <Button\n bsStyle=\"primary\"\n onClick={() => this.handleCreate()}\n >\n Add new select list to template workspace \n <i className=\"fa fa-hdd-o\" aria-hidden=\"true\" />\n </Button>\n \n <Button bsStyle=\"warning\" onClick={() => fnClose()}>Cancel</Button>\n </FormGroup>\n </div>\n </Modal.Body>\n </Modal>\n );\n }\n}\n\nSelectAttrNewModal.propTypes = {\n showModal: PropTypes.bool.isRequired,\n fnClose: PropTypes.func.isRequired,\n fnCreate: PropTypes.func.isRequired,\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormControl, FormGroup, InputGroup } from 'react-bootstrap';\nimport { cloneDeep } from 'lodash';\nimport renderDeleteButton from './renderDeleteButton';\nimport ButtonTooltip from '../fields/ButtonTooltip';\n\nexport default class SelectOption extends Component {\n handleCreate() {\n const { generic, root, fnAddOption } = this.props;\n const input = this.inputNewOption.value.trim();\n const newOption = { key: input, label: input };\n\n // prepare generic with new options of root\n const deep = cloneDeep(generic);\n const selectObj = (deep && deep.properties_template\n && deep.properties_template.select_options[root]\n && deep.properties_template.select_options[root].options) || [];\n selectObj.push(newOption);\n\n fnAddOption(root, input, selectObj); // return [root, new option, new options]\n }\n\n render() {\n const { generic, root, fnChange } = this.props;\n return (\n <FormGroup bsSize=\"sm\" style={{ marginBottom: 'unset', display: 'inline-table' }}>\n <InputGroup>\n <InputGroup.Button>\n {renderDeleteButton(generic, 'Select', root, '', fnChange)}\n </InputGroup.Button>\n <FormControl\n type=\"text\"\n name=\"input_newOption\"\n inputRef={(ref) => { this.inputNewOption = ref; }}\n placeholder=\"Input new option\"\n bsSize=\"sm\"\n />\n <InputGroup.Button>\n <ButtonTooltip\n tip=\"Add new option\"\n fnClick={() => this.handleCreate()}\n fa=\"fa-plus\"\n size=\"sm\"\n />\n </InputGroup.Button>\n </InputGroup>\n </FormGroup>\n );\n }\n}\n\nSelectOption.propTypes = {\n generic: PropTypes.object.isRequired,\n root: PropTypes.string.isRequired,\n fnChange: PropTypes.func.isRequired,\n fnAddOption: PropTypes.func.isRequired\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n FormGroup, FormControl, InputGroup, Panel\n} from 'react-bootstrap';\nimport { findIndex } from 'lodash';\nimport renderDeleteButton from './renderDeleteButton';\nimport SelectAttrNewModal from './SelectAttrNewModal';\nimport SelectOption from './SelectOption';\nimport ButtonTooltip from '../fields/ButtonTooltip';\n\nconst onOptionInputChange = (event, optionKey, selectKey, generic, fnChange) => {\n const options = (generic && generic.properties_template\n && generic.properties_template.select_options[selectKey]\n && generic.properties_template.select_options[selectKey].options) || [];\n const idx = findIndex(options, o => o.key === optionKey);\n const op = {};\n op.key = optionKey;\n op.label = event.target.value;\n options.splice(idx, 1, op);\n fnChange(generic);\n};\n\nconst optionR = (props) => {\n const {\n generic, key, root, label, fnChange\n } = props;\n return (\n <FormGroup bsSize=\"sm\" controlId={`_cgu_frmCtrlSelectOption_${key}`}>\n <InputGroup>\n <InputGroup.Addon>{key}</InputGroup.Addon>\n <FormControl\n type=\"text\"\n name=\"lf_label\"\n defaultValue={label}\n onChange={event => onOptionInputChange(event, key, root, generic, fnChange)}\n />\n <InputGroup.Button>\n {renderDeleteButton(generic, 'Option', key, root, fnChange)}\n </InputGroup.Button>\n </InputGroup>\n </FormGroup>\n );\n};\n\nconst SelectOptionLayer = (props) => {\n const {\n generic, fnChange, fnAddSelect, fnAddOption\n } = props;\n\n const [showAddSelect, setShowAddSelect] = useState(false);\n\n const selects = [];\n Object.keys(generic.properties_template.select_options).forEach((root) => {\n const soptions = (generic.properties_template.select_options[root]\n && generic.properties_template.select_options[root].options) || [];\n const options = soptions.map(f => (\n <div key={`${f.key}_${root}`} style={{ marginTop: '10px' }}>\n {optionR({\n generic, key: f.key, root, label: f.label, fnChange\n })}\n </div>\n ));\n\n const snode = (\n <Panel className=\"panel_generic_properties\" defaultExpanded key={`select_options_${root}`}>\n <Panel.Heading className=\"template_panel_heading\">\n <Panel.Title toggle>{root}</Panel.Title>\n <div>\n <SelectOption\n generic={generic}\n root={root}\n fnAddOption={fnAddOption}\n fnChange={fnChange}\n />\n </div>\n </Panel.Heading>\n <Panel.Collapse><Panel.Body>{options}</Panel.Body></Panel.Collapse>\n </Panel>\n );\n selects.push(snode);\n });\n\n // data validation is outside of this project\n const handleAddSelect = (selectName) => {\n const sos = { ...generic.properties_template.select_options };\n sos[selectName] = {};\n fnAddSelect(selectName, sos); // return [new select name, new select_options]\n setShowAddSelect(false);\n };\n\n return (\n <div>\n <Panel>\n <Panel.Heading>\n <Panel.Title>\n Select Lists\n <ButtonTooltip\n tip=\"Add new select list\"\n fnClick={() => setShowAddSelect(true)}\n fa=\"fa-plus\"\n size=\"xs\"\n txt=\"Add new select list\"\n btnCls=\"button-right\"\n />\n </Panel.Title>\n </Panel.Heading>\n <Panel.Body><div>{ selects }</div></Panel.Body>\n </Panel>\n <SelectAttrNewModal\n showModal={showAddSelect}\n fnClose={() => setShowAddSelect(false)}\n fnCreate={handleAddSelect}\n />\n </div>\n );\n};\n\nSelectOptionLayer.propTypes = {\n generic: PropTypes.object.isRequired,\n fnChange: PropTypes.func.isRequired,\n fnAddSelect: PropTypes.func,\n fnAddOption: PropTypes.func\n};\n\nSelectOptionLayer.defaultProps = { fnAddSelect: () => {}, fnAddOption: () => {} };\n\nexport default SelectOptionLayer;\n","import React from 'react';\nimport ButtonDelField from '../fields/ButtonDelField';\n\nconst renderDeleteButton = (generic, delType, delKey, delRoot, fnConfirm) => (\n <ButtonDelField\n generic={generic}\n delType={delType}\n delKey={delKey}\n delRoot={delRoot}\n fnConfirm={fnConfirm}\n />\n);\n\nexport default renderDeleteButton;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Modal } from 'react-bootstrap';\nimport Constants from '../tools/Constants';\n\nconst NoDataModal = (props) => {\n const { show, title, fnHide } = props;\n return (\n <Modal show={show} bsSize=\"small\" onHide={fnHide}>\n <Modal.Header closeButton>\n <Modal.Title>{title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>No Data</Modal.Body>\n </Modal>\n );\n};\n\nconst GenAnaModal = (props) => {\n const {\n show, generic, layer, fnHide, fnLink\n } = props;\n if (!show) return null;\n const { name, container, properties } = generic;\n const specLayer = (properties && properties.layers && properties.layers[layer]); // pick up the layer\n const title = specLayer.label;\n let ai = (container && container.children && container.children[0].children) || [];\n ai = ai.filter(x => !x.is_new); // get ai is not new\n if (ai.length < 1 || !title) { // means no analysis\n return (\n <NoDataModal\n show={show}\n title={`Analyses, select to link to Layer ${title}`}\n fnHide={fnHide}\n />\n );\n }\n\n const layerAi = (specLayer.ai) || []; // means linked analisys array\n const row = _ai => (\n <div>\n <div className=\"generic_grid_row generic_grid_row_left\">\n {_ai.name}\n </div>\n <div className=\"generic_grid_row generic_grid_row_left\">\n <Button\n bsStyle=\"success\"\n bsSize=\"xsmall\"\n className=\"gu_button_right\"\n onClick={() => fnLink(_ai.id, layer, Constants.BTN_AI_LINK)}\n disabled={layerAi.includes(_ai.id)}\n >\n {Constants.BTN_AI_LINK}\n </Button>\n <Button\n bsStyle=\"danger\"\n bsSize=\"xsmall\"\n className=\"gu_button_right\"\n onClick={() => fnLink(_ai.id, layer, Constants.BTN_AI_UNLINK)}\n disabled={!layerAi.includes(_ai.id)}\n >\n {Constants.BTN_AI_UNLINK}\n </Button>\n </div>\n </div>\n );\n\n const rows = [];\n ai.forEach((_ai) => {\n rows.push(row(_ai));\n });\n\n return (\n <Modal show={show} onHide={fnHide}>\n <Modal.Header closeButton>\n <Modal.Title>\n <b>{name}</b>\n {' '}\n Analyses\n <br />\n select to link/unlink to Layer\n {' '}\n <b>{title}</b>\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <div style={{ maxHeight: '80vh', overflow: 'auto' }}>\n <div className=\"generic_grid\">{rows}</div>\n </div>\n </Modal.Body>\n </Modal>\n );\n};\n\nGenAnaModal.propTypes = {\n show: PropTypes.bool.isRequired,\n generic: PropTypes.object.isRequired,\n layer: PropTypes.string.isRequired,\n fnHide: PropTypes.func.isRequired,\n fnLink: PropTypes.func.isRequired\n};\n\nexport default GenAnaModal;\n","/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findIndex, cloneDeep } from 'lodash';\nimport {\n Panel, Button, ButtonToolbar, OverlayTrigger, Tooltip\n} from 'react-bootstrap';\nimport GenInterface from './GenInterface';\nimport {\n genUnits, toBool, toNum, absOlsTermLabel\n} from '../tools/utils';\n\nclass GenericDSDetails extends Component {\n constructor(props) {\n super(props);\n this.handleReload = this.handleReload.bind(this);\n }\n\n handleReload() {\n const { klass, genericDS, onChange } = this.props;\n if (klass.properties_release) {\n const newProps = cloneDeep(klass.properties_release);\n newProps.klass_uuid = klass.uuid;\n Object.keys(newProps.layers).forEach(key => {\n const newLayer = newProps.layers[key] || {};\n const curFields = (genericDS.properties.layers[key] && genericDS.properties.layers[key].fields) || [];\n (newLayer.fields || []).forEach((f, idx) => {\n const curIdx = findIndex(curFields, o => o.field === f.field);\n if (curIdx >= 0) {\n const curVal = genericDS.properties.layers[key].fields[curIdx].value;\n const curType = typeof curVal;\n if (['select', 'text', 'textarea', 'formula-field'].includes(newProps.layers[key].fields[idx].type)) {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? curVal.toString() : '';\n }\n if (newProps.layers[key].fields[idx].type === 'integer') {\n // eslint-disable-next-line no-restricted-globals\n newProps.layers[key].fields[idx].value = (curType === 'undefined' || curType === 'boolean' || isNaN(curVal)) ? 0 : parseInt(curVal, 10);\n }\n if (newProps.layers[key].fields[idx].type === 'checkbox') {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? toBool(curVal) : false;\n }\n if (newProps.layers[key].fields[idx].type === 'system-defined') {\n const units = genUnits(newProps.layers[key].fields[idx].option_layers);\n const vs = units.find(u => u.key === genericDS.properties.layers[key].fields[curIdx].value_system);\n newProps.layers[key].fields[idx].value_system = (vs && vs.key) || units[0].key;\n newProps.layers[key].fields[idx].value = toNum(curVal);\n }\n }\n });\n });\n genericDS.properties = newProps;\n genericDS.dataset_klass_id = klass.id;\n genericDS.klass_ols = klass.ols_term_id;\n genericDS.klass_label = klass.label;\n genericDS.changed = true;\n onChange(genericDS);\n } else {\n onChange(undefined);\n }\n }\n\n elementalPropertiesItem(genericDS) {\n const { onChange } = this.props;\n const layersLayout = (\n <GenInterface\n generic={genericDS}\n fnChange={onChange}\n extLayers={[]}\n genId={0}\n isPreview={false}\n isSearch={false}\n isActiveWF={false}\n />\n );\n return (<div style={{ margin: '5px' }}>{layersLayout}</div>);\n }\n\n render() {\n const { uiCtrl, genericDS, kind } = this.props;\n if (uiCtrl && Object.keys(genericDS).length !== 0 && kind && kind !== '') {\n return (\n <Panel className=\"panel-detail\">\n <Panel.Body style={{ position: 'relative', minHeight: 260, overflowY: 'unset' }}>\n {this.elementalPropertiesItem(genericDS)}\n <span className=\"g-ds-note label\">\n <span className=\"g-ds-title\">Note</span>\n <br />\n Selected analysis type:\n {' '}\n {absOlsTermLabel(kind)}\n <br />\n Content is designed for:\n {' '}\n {genericDS.klass_label}\n </span>\n <ButtonToolbar className=\"pull-right\">\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id=\"_tooltip_reload\">click to reload the content template</Tooltip>}>\n <Button bsSize=\"xsmall\" bsStyle=\"danger\" onClick={() => this.handleReload()}>Reload</Button>\n </OverlayTrigger>\n </ButtonToolbar>\n </Panel.Body>\n </Panel>\n );\n }\n return null;\n }\n}\n\nGenericDSDetails.propTypes = {\n uiCtrl: PropTypes.bool.isRequired, // MatrixCheck(currentUser.matrix, 'genericDataset')\n kind: PropTypes.string, // selected analysis type\n genericDS: PropTypes.object,\n klass: PropTypes.object, // dataset_klass\n onChange: PropTypes.func.isRequired // change callback\n};\nGenericDSDetails.defaultProps = { kind: '', genericDS: {}, klass: {} };\n\n// export default DragDropContext(HTML5Backend)(GenericDSDetails);\nexport default GenericDSDetails;\n","/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable camelcase */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { cloneDeep, findIndex, sortBy } from 'lodash';\nimport GenAnaModal from './GenAnaModal';\nimport LayersLayout from '../layers/LayersLayout';\nimport LayerModal from '../layers/LayerModal';\nimport Constants from '../tools/Constants';\nimport {\n getWFNode, getFlowLayer, addToObject, removeFromObject, orgLayerObject, reformCondFields\n} from '../tools/orten';\nimport {\n genUnits, swapAryEls, unitConversion, uploadFiles\n} from '../tools/utils';\nimport useReducerWithCallback from '../tools/useReducerWithCallback';\n\nconst initialState = { showViewLayer: false, selectedLayerKey: '', showAnaModal: false };\n\nconst reducer = (state, action) => ({ ...state, ...action });\n\nconst GenInterface = (props) => {\n const [state, dispatch] = useReducerWithCallback(reducer, initialState);\n const {\n generic, fnChange, extLayers, genId, isPreview, isActiveWF, isSearch, fnNavi, isSpCall, aiComp\n } = props;\n\n if (Object.keys(generic).length === 0) return null;\n\n const { container } = generic;\n\n const layerDrop = (_source, _target) => {\n const { layers } = generic.properties;\n let sortedLayers = sortBy(layers, ['position', 'wf_position']);\n // swap or move\n const srcIdx = sortedLayers.findIndex(e => e.key === _source);\n const tmpSrc = sortedLayers[srcIdx];\n let tarIdx = sortedLayers.findIndex(e => e.key === _target);\n if (Math.abs(srcIdx - tarIdx) === 1) {\n sortedLayers = swapAryEls(sortedLayers, srcIdx, tarIdx);\n } else {\n // delete src\n sortedLayers.splice(srcIdx, 1);\n // keep tar\n tarIdx = sortedLayers.findIndex(e => e.key === _target);\n const tmpTar = sortedLayers[tarIdx];\n // prepare new layer\n tmpSrc.position = tmpTar.position;\n tmpSrc.wf_position = (tmpTar.wf_position || 0) + 1;\n // insert new layer\n sortedLayers.splice(tarIdx + 1, 0, tmpSrc);\n }\n // re-count wf_position\n sortedLayers.filter(e => e.position === tmpSrc.position).map((e, idx) => {\n const el = e;\n el.wf_position = idx;\n return el;\n });\n const ll = orgLayerObject(sortedLayers);\n generic.properties.layers = ll;\n generic.changed = true;\n fnChange(generic);\n };\n\n const layerRemove = (elId, layer) => {\n const { layers } = generic.properties;\n const sortedLayers = sortBy(layers, ['position', 'wf_position']);\n const selectedIdx = sortedLayers.findIndex(e => e.key === layer.key);\n const selected = sortedLayers[selectedIdx];\n sortedLayers.splice(selectedIdx, 1);\n sortedLayers.filter(e => e.position === selected.position).map((e, idx) => {\n const el = e;\n el.wf_position = idx;\n return el;\n });\n generic.properties.layers = orgLayerObject(sortedLayers);\n generic.changed = true;\n fnChange(generic);\n };\n\n const layerNext = (event, layer) => {\n const value = event ? event.value : null;\n if (value) {\n const { properties, properties_release } = generic;\n // next step value if exists\n let rmNeeded = false;\n const preValue = properties.layers[`${layer}`].fields.find(e => e.field === '_wf_next').value;\n if (value !== preValue) {\n if (preValue && preValue !== '' && preValue !== value) {\n rmNeeded = true;\n }\n const { flow } = properties_release;\n const preLayer = properties.layers[`${layer}`];\n // value is the next node's id\n const nxLayer = getFlowLayer(flow, value, layer, preLayer.wf_position);\n if (nxLayer) {\n properties.layers = addToObject(properties.layers, layer, nxLayer);\n }\n if (rmNeeded) {\n properties.layers = removeFromObject(properties.layers, layer, getWFNode(flow, preValue));\n }\n // update next step value\n properties.layers[`${layer}`].fields.find(e => e.field === '_wf_next').value = value;\n generic.properties = properties;\n generic.changed = true;\n // this.props.onChange(segment, () => renderFlowModal(segment, false));\n fnChange(generic); // cb move to e.g. SampleDetails.js\n }\n }\n };\n\n const handleLinkAi = (pAiId, pLayer, pAct) => {\n let propsChange = false;\n const { layers } = generic.properties;\n const selectedLayer = layers[pLayer];\n let layerAi = selectedLayer.ai || [];\n switch (pAct) {\n case Constants.BTN_AI_UNLINK:\n layerAi = layerAi.filter(x => x !== pAiId);\n propsChange = true;\n break;\n case Constants.BTN_AI_LINK:\n layerAi.push(pAiId);\n propsChange = true;\n break;\n default:\n break;\n }\n if (propsChange) {\n selectedLayer.ai = layerAi;\n generic.properties.layers[pLayer] = selectedLayer;\n dispatch({ showAnaModal: false, selectedLayerKey: pLayer }, () => {\n fnChange(generic);\n });\n }\n };\n\n const handleAddLayer = (event, _layer) => {\n const layer = _layer;\n const { layers } = generic.properties;\n const sortedLayers = sortBy(layers, ['position', 'wf_position']);\n const idx = sortedLayers.findIndex(e => e.key === state.selectedLayerKey);\n // re-set added layer attributes\n const selectedLayer = sortedLayers[idx];\n layer.position = selectedLayer.position;\n layer.wf_position = selectedLayer.wf_position + 1;\n layer.wf = false;\n layer.wf_uuid = null;\n // layer is standard layer (from released)\n const cnt = sortedLayers\n .filter(e => e.key === layer.key || e.key.startsWith(`${layer.key}.`)).length;\n if (cnt > 0) {\n const origKey = layer.key;\n layer.key = `${layer.key}.${cnt}`;\n layer.fields = reformCondFields(layer, origKey);\n }\n // insert new layer\n sortedLayers.splice(idx + 1, 0, layer);\n // re-count wf_position\n sortedLayers.filter(e => e.position === selectedLayer.position).map((e, ix) => {\n const el = e;\n el.wf_position = ix;\n return el;\n });\n const ll = orgLayerObject(sortedLayers);\n generic.properties.layers = ll;\n dispatch({ showViewLayer: false, selectedLayerKey: layer.key }, () => {\n fnChange(generic);\n });\n };\n\n const handleInputChange = (event, field, layer, type = 'text') => {\n const { properties } = generic;\n let value = '';\n let propsChange = true;\n switch (type) {\n case 'drop-layer':\n layerDrop(field, layer);\n propsChange = false;\n break;\n case 'layer-remove':\n event.stopPropagation();\n layerRemove(field, layer);\n propsChange = false;\n break;\n case 'layer-modal':\n event.stopPropagation();\n propsChange = false;\n dispatch({ showViewLayer: true, selectedLayerKey: layer.key });\n break;\n case 'ana-modal':\n event.stopPropagation();\n propsChange = false;\n dispatch({ showAnaModal: true, selectedLayerKey: layer.key });\n break;\n case 'wf-next':\n propsChange = false;\n layerNext(event, layer);\n break;\n case 'checkbox':\n value = event.target.checked;\n break;\n case 'formula-field':\n if (event.target) {\n ({ value } = event.target);\n } else {\n value = event;\n }\n break;\n case 'upload': {\n const vals = uploadFiles(properties, event, field, layer);\n value = vals[0];\n if (vals[1].length > 0) generic.files = (generic.files || []).concat(vals[1]);\n if (vals.length > 2) {\n const fileIdx = findIndex((generic.files || []), o => o.uid === event.uid);\n if (fileIdx >= 0 && generic.files && generic.files.length > 0) {\n generic.files.splice(fileIdx, 1);\n }\n }\n break;\n }\n case 'select':\n value = event ? event.value : null;\n break;\n case 'drag_molecule':\n value = event;\n break;\n case 'drag_sample':\n value = event;\n break;\n case 'drag_element':\n value = event;\n break;\n case 'integer':\n ({ value } = event.target);\n value = Math.trunc(value);\n break;\n default:\n ({ value } = event.target);\n }\n if (layer === '' && ['name', 'search_name', 'search_short_label'].includes(field)) {\n ({ value } = event.target);\n generic[field] = value;\n }\n if (isSearch && type.startsWith('drag_')) {\n ({ value } = event.target);\n }\n if (propsChange) {\n if (layer === '' && ['name', 'search_name', 'search_short_label'].includes(field)) {\n console.log(field);\n } else {\n properties.layers[`${layer}`].fields.find(e => e.field === field).value = value;\n if (type === 'system-defined' && (!properties.layers[`${layer}`].fields.find(e => e.field === field).value_system || properties.layers[`${layer}`].fields.find(e => e.field === field).value_system === '')) {\n const opt = properties.layers[`${layer}`].fields\n .find(e => e.field === field).option_layers;\n properties.layers[`${layer}`].fields\n .find(e => e.field === field).value_system = genUnits(opt)[0].key;\n }\n generic.properties = properties;\n if (isSearch) generic.search_properties = properties;\n }\n generic.changed = true;\n fnChange(generic);\n }\n };\n\n const handleSubChange = (layer, obj, valueOnly = false) => {\n const { properties } = generic;\n if (!valueOnly) {\n const subFields = properties.layers[`${layer}`].fields\n .find(m => m.field === obj.f.field).sub_fields || [];\n const idxSub = subFields.findIndex(m => m.id === obj.sub.id);\n subFields.splice(idxSub, 1, obj.sub);\n properties.layers[`${layer}`].fields\n .find(e => e.field === obj.f.field).sub_fields = subFields;\n }\n properties.layers[`${layer}`].fields\n .find(e => e.field === obj.f.field).sub_values = obj.f.sub_values || [];\n generic.properties = properties;\n generic.changed = true;\n fnChange(generic);\n };\n\n const handleUnitClick = (layer, obj) => {\n const { properties } = generic;\n const newVal = unitConversion(obj.option_layers, obj.value_system, obj.value);\n properties.layers[`${layer}`].fields.find(e => e.field === obj.field).value_system = obj.value_system;\n properties.layers[`${layer}`].fields.find(e => e.field === obj.field).value = newVal;\n generic.properties = properties;\n generic.changed = true;\n fnChange(generic);\n };\n\n let ai = (container && container.children && container.children[0].children) || [];\n ai = ai.filter(x => !x.is_new); // get ai is not new\n\n const paramsLayersLayout = {\n layers: generic.properties.layers,\n options: generic.properties_release.select_options || {},\n funcChange: handleInputChange,\n funcSubChange: handleSubChange,\n funcClick: handleUnitClick,\n extLys: extLayers || [],\n id: genId,\n isPreview: isPreview || false,\n activeWF: isActiveWF || false,\n isSearch,\n fnNavi,\n isSpCall,\n hasAi: (ai.length > 0),\n aiComp\n };\n\n const layersLayout = LayersLayout(paramsLayersLayout);\n\n const addLayerModal = (\n <LayerModal\n show={state.showViewLayer}\n layers={cloneDeep(generic.properties_release.layers) || {}}\n fnClose={() => dispatch({ showViewLayer: !state.showViewLayer })}\n fnAdd={handleAddLayer}\n />\n );\n\n const anaModal = (\n <GenAnaModal\n show={state.showAnaModal}\n generic={generic}\n layer={state.selectedLayerKey}\n fnHide={() => dispatch({ showAnaModal: !state.showAnaModal })}\n fnLink={handleLinkAi}\n />\n );\n\n return (\n <>\n {layersLayout}\n {addLayerModal}\n {anaModal}\n </>\n );\n};\n\nGenInterface.propTypes = {\n generic: PropTypes.object.isRequired,\n fnChange: PropTypes.func.isRequired,\n extLayers: PropTypes.array,\n genId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isPreview: PropTypes.bool.isRequired,\n isActiveWF: PropTypes.bool.isRequired,\n isSearch: PropTypes.bool,\n fnNavi: PropTypes.func,\n isSpCall: PropTypes.bool,\n aiComp: PropTypes.any\n};\n\nGenInterface.defaultProps = {\n extLayers: [],\n isSearch: false,\n genId: 0,\n fnNavi: () => {},\n isSpCall: false,\n aiComp: null\n};\n\nexport default GenInterface;\n","/* eslint-disable camelcase */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport GenInterface from './GenInterface';\n\nconst GenInterfaceSP = (props) => {\n const { generic, fnChange } = props;\n if (Object.keys(generic).length === 0) return null;\n return (\n <GenInterface\n generic={generic}\n fnChange={fnChange}\n extLayers={[]}\n genId={0}\n isPreview={false}\n isSearch={false}\n isActiveWF={false}\n isSpCall\n />\n );\n};\n\nGenInterfaceSP.propTypes = {\n generic: PropTypes.object.isRequired,\n fnChange: PropTypes.func.isRequired,\n};\n\nexport default GenInterfaceSP;\n","/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findIndex, cloneDeep } from 'lodash';\nimport { Panel } from 'react-bootstrap';\nimport GenInterface from './GenInterface';\nimport {\n genUnits, toBool, toNum\n} from '../tools/utils';\nimport organizeSubValues from '../tools/collate';\n\nclass SegmentDetails extends Component {\n constructor(props) {\n super(props);\n this.handleReload = this.handleReload.bind(this);\n }\n\n handleReload() {\n const { klass, segment, onChange } = this.props;\n const newProps = cloneDeep(klass.properties_release);\n newProps.klass_uuid = klass.uuid;\n Object.keys(newProps.layers).forEach(key => {\n const newLayer = newProps.layers[key] || {};\n const curFields = (segment.properties.layers[key] && segment.properties.layers[key].fields)\n || [];\n (newLayer.fields || []).forEach((f, idx) => {\n const curIdx = findIndex(curFields, o => o.field === f.field);\n if (curIdx >= 0) {\n const curVal = segment.properties.layers[key].fields[curIdx].value;\n const curType = typeof curVal;\n if (['select', 'text', 'textarea', 'formula-field'].includes(newProps.layers[key].fields[idx].type)) {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? curVal.toString() : '';\n }\n if (newProps.layers[key].fields[idx].type === 'integer') {\n newProps.layers[key].fields[idx].value = (curType === 'undefined' || curType === 'boolean' || isNaN(curVal)) ? 0 : parseInt(curVal, 10);\n }\n if (newProps.layers[key].fields[idx].type === 'checkbox') {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? toBool(curVal) : false;\n }\n if (newProps.layers[key].fields[idx].type === 'system-defined') {\n const units = genUnits(newProps.layers[key].fields[idx].option_layers);\n const vs = units.find(u => u.key === segment.properties.layers[key].fields[curIdx].value_system);\n newProps.layers[key].fields[idx].value_system = (vs && vs.key) || units[0].key;\n newProps.layers[key].fields[idx].value = toNum(curVal);\n }\n if (newProps.layers[key].fields[idx].type === 'input-group') {\n if (segment.properties.layers[key].fields[curIdx].type\n !== newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].value = undefined;\n } else {\n const nSubs = newProps.layers[key].fields[idx].sub_fields || [];\n const cSubs = segment.properties.layers[key].fields[curIdx].sub_fields || [];\n const exSubs = [];\n if (nSubs.length < 1) {\n newProps.layers[key].fields[idx].value = undefined;\n } else {\n nSubs.forEach(nSub => {\n const hitSub = cSubs.find(c => c.id === nSub.id) || {};\n if (nSub.type === 'label') { exSubs.push(nSub); }\n if (nSub.type === 'text') {\n if (hitSub.type === 'label') {\n exSubs.push(nSub);\n } else { exSubs.push({ ...nSub, value: (hitSub.value || '').toString() }); }\n }\n\n if (['number', 'system-defined'].includes(nSub.type)) {\n const nvl = (typeof hitSub.value === 'undefined' || hitSub.value == null || hitSub.value.length === 0) ? '' : toNum(hitSub.value);\n if (nSub.option_layers === hitSub.option_layers) {\n exSubs.push({ ...nSub, value: nvl, value_system: hitSub.value_system });\n } else {\n exSubs.push({ ...nSub, value: nvl });\n }\n }\n });\n }\n newProps.layers[key].fields[idx].sub_fields = exSubs;\n }\n }\n if (newProps.layers[key].fields[idx].type === 'upload') {\n if (segment.properties.layers[key].fields[curIdx].type\n === newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].value = segment.properties.layers[key].fields[curIdx].value;\n } else {\n newProps.layers[key].fields[idx].value = {};\n }\n }\n if (newProps.layers[key].fields[idx].type === 'table') {\n if (segment.properties.layers[key].fields[curIdx].type\n !== newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].sub_values = [];\n } else {\n newProps.layers[key].fields[idx].sub_values = organizeSubValues(\n newProps.layers[key].fields[idx],\n segment.properties.layers[key].fields[curIdx]\n );\n }\n }\n }\n });\n });\n segment.properties = newProps;\n segment.changed = true;\n onChange(segment);\n }\n\n elementalPropertiesItem(segment) {\n const { onChange, fnNavi, isSearch } = this.props;\n const layersLayout = (\n <GenInterface\n generic={segment}\n fnChange={onChange}\n extLayers={[]}\n genId={0}\n isPreview={false}\n isSearch={isSearch}\n isActiveWF\n fnNavi={fnNavi}\n />\n );\n return (<div style={{ margin: '5px' }}>{layersLayout}</div>);\n }\n\n render() {\n const { uiCtrl, segment } = this.props;\n if (!uiCtrl || Object.keys(segment).length === 0) return null;\n return (\n <div>\n <Panel>\n <Panel.Body style={{ position: 'relative', minHeight: 260, overflowY: 'unset' }}>\n {this.elementalPropertiesItem(segment)}\n </Panel.Body>\n </Panel>\n </div>\n );\n }\n}\n\nSegmentDetails.propTypes = {\n uiCtrl: PropTypes.bool.isRequired,\n segment: PropTypes.object,\n klass: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n fnNavi: PropTypes.func\n};\n\nSegmentDetails.defaultProps = { segment: {}, klass: {}, fnNavi: () => {} };\n\nexport default SegmentDetails;\n","export default {\n ELEMENT: 'element',\n SAMPLE: 'sample',\n MOLECULE: 'molecule',\n LAYOUT: 'layout',\n GENERAL: 'general',\n DATA: 'data',\n UNLINKED_DATA: 'unlinked_data',\n DATASET: 'dataset',\n CONTAINER: 'container',\n ELEMENT_FIELD: 'element_field',\n GENERIC_GRID: 'generic_grid'\n};\n","/* eslint-disable react/prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { DropTarget } from 'react-dnd';\nimport { Tooltip, OverlayTrigger, Popover } from 'react-bootstrap';\nimport Constants from '../tools/Constants';\nimport { KlzIcon } from '../tools/utils';\n\nconst show = (opt, iconClass, onNavi) => {\n if (opt.value && opt.value.el_id) {\n let elSvg = opt.value.el_svg;\n if (opt.value.el_type === 'sample') {\n if (elSvg && !elSvg.endsWith('.svg') && opt.value.el_decoupled) {\n elSvg = Constants.IMG_UNDEFINED_STRUCTURE_SVG;\n }\n }\n if (elSvg && !elSvg.endsWith('.svg')) elSvg = Constants.IMG_NOT_AVAILABLE_SVG;\n const tips = opt.value.el_tip && opt.value.el_tip.split('@@');\n const tip1 = (tips && tips.length >= 1 && tips[0]) || '';\n const tip2 = (tips && tips.length >= 2 && tips[1]) || '';\n const tit = (\n <div>\n {tip1}\n <br />\n {tip2}\n </div>\n );\n const pop = (\n <Popover id=\"popover-svg\" title={tit} style={{ maxWidth: 'none', maxHeight: 'none' }}>\n <img src={elSvg} style={{ height: '26vh', width: '26vh' }} alt=\"\" />\n </Popover>\n );\n let label = opt.value.el_label;\n const asShown = path => ((path === Constants.IMG_UNDEFINED_STRUCTURE_SVG)\n ? null : (\n <OverlayTrigger\n delayShow={1000}\n trigger={['hover']}\n placement=\"top\"\n rootClose\n onHide={null}\n overlay={pop}\n >\n <img className=\"generic_grid_img\" src={path} alt=\"\" />\n </OverlayTrigger>\n ));\n const simg = (path, tip, txt) => ((path && path !== '') ? (\n <div className=\"s-img\">\n {asShown(path)}\n <span className=\"data\">{txt}</span>\n </div>\n ) : (\n <OverlayTrigger\n placement=\"top\"\n overlay={(\n <Tooltip id={uuid()}>\n {tip1}\n <br />\n {tip2}\n </Tooltip>\n )}\n >\n <div className=\"data\">{txt}</div>\n </OverlayTrigger>\n ));\n if (opt.value.el_type === 'sample') {\n if (opt.value.is_new !== true) {\n label = (\n <a role=\"link\" onClick={() => onNavi(opt.value.el_type, opt.value.el_id)} style={{ cursor: 'pointer' }}>\n <span className=\"reaction-material-link\">{label}</span>\n </a>\n );\n }\n }\n if (opt.value.el_type === 'element') {\n label = (\n <a role=\"link\" onClick={() => onNavi(opt.value.el_klass, opt.value.el_id)} style={{ cursor: 'pointer' }}>\n <i className={opt.value.icon_name} />\n {' '}\n <span className=\"reaction-material-link\">{label}</span>\n </a>\n );\n }\n return simg(elSvg, opt.value.el_tip, label);\n }\n if (iconClass === 'element') {\n return (<span className=\"fa fa-link icon_generic_nav indicator\" />);\n }\n return (KlzIcon(`icon-${iconClass} indicator`, { width: '4vw' }));\n};\n\nconst source = (type, props, id) => {\n let isAssoc = false;\n const taggable = (props && props.tag && props.tag.taggable_data) || {};\n if (taggable.element && taggable.element.id === id) {\n isAssoc = false;\n } else {\n isAssoc = !!(taggable.reaction_id || taggable.wellplate_id || taggable.element);\n }\n\n switch (type) {\n case 'molecule':\n return {\n el_id: props.molecule.id,\n el_type: 'molecule',\n el_label: props.molecule_name_label,\n el_tip: `${props.molecule.inchikey}@@${props.molecule.cano_smiles}`,\n };\n case 'sample':\n return {\n el_id: props.id,\n is_new: true,\n cr_opt: isAssoc === true ? 1 : 0,\n isAssoc,\n el_type: 'sample',\n el_label: props.short_label,\n el_tip: props.short_label,\n el_decoupled: props.decoupled || false\n };\n case 'element':\n return {\n el_id: props.id,\n el_type: 'element',\n icon_name: (props.element_klass && props.element_klass.icon_name) || '',\n el_klass: props.type,\n el_label: props.short_label,\n el_tip: `${props.label}@@${props.name}`\n };\n default:\n return {\n el_id: props.id,\n el_type: props.type,\n el_label: props.short_label,\n el_tip: props.short_label,\n };\n }\n};\n\nconst dropTarget = {\n drop(targetProps, monitor) {\n const sourceProps = monitor.getItem().element;\n const sourceTag = source(targetProps.opt.type.split('_')[1], sourceProps, targetProps.opt.id);\n targetProps.onDrop(sourceTag);\n },\n canDrop(_targetProps, _monitor) {\n return true;\n },\n};\n\nconst dropCollect = (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop()\n});\n\nclass GenericElDropTarget extends Component {\n render() {\n const {\n connectDropTarget, isOver, canDrop, opt\n } = this.props;\n const { onNavi } = opt;\n const iconClass = (opt.dndItems && opt.dndItems[0] === 'molecule' ? 'sample' : opt.dndItems[0]);\n const className = `target${isOver ? ' is-over' : ''}${canDrop ? ' can-drop' : ''}`;\n return connectDropTarget(<div className={className}>{show(opt, iconClass, onNavi)}</div>);\n }\n}\n\nexport default\nDropTarget(props => props.opt.dndItems, dropTarget, dropCollect)(GenericElDropTarget);\n\nGenericElDropTarget.propTypes = {\n connectDropTarget: PropTypes.func.isRequired,\n isOver: PropTypes.bool.isRequired,\n canDrop: PropTypes.bool.isRequired,\n};\n","import React from 'react';\nimport { DragSource, DropTarget } from 'react-dnd';\nimport { compose } from 'redux';\n\nconst orderSource = {\n beginDrag(props) {\n const { field, rowValue } = props;\n return { fid: field, rId: rowValue.id };\n },\n};\n\nconst orderTarget = {\n drop(props, monitor) {\n const { field, rowValue, handleMove } = props;\n const tar = { fid: field, rId: rowValue.id };\n const src = monitor.getItem();\n if (tar.fid === src.fid && tar.rId !== src.rId) handleMove(src.rId, tar.rId);\n },\n};\n\nconst orderDragCollect = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n});\n\nconst orderDropCollect = (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n});\n\nconst GridDnD = ({\n connectDragSource, connectDropTarget, isDragging, isOver, canDrop,\n}) => {\n const className = `generic_grid_dnd${isOver ? ' is-over' : ''}${canDrop ? ' can-drop' : ''}${isDragging ? ' is-dragging' : ''}`;\n return compose(connectDragSource, connectDropTarget)(<div className={className}><div className=\"dnd-btn\"><span className=\"text-info fa fa-arrows\" /></div></div>);\n};\n\nexport default compose(\n DragSource(s => s.type, orderSource, orderDragCollect),\n DropTarget(s => s.type, orderTarget, orderDropCollect)\n)(GridDnD);\n","import React from 'react';\nimport { DragSource, DropTarget } from 'react-dnd';\nimport { compose } from 'redux';\nimport {\n Panel, ButtonGroup, OverlayTrigger, Tooltip, Button\n} from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faArrowsAlt, faPlus, faMinus, faSitemap\n} from '@fortawesome/free-solid-svg-icons';\n\nconst orderSource = {\n canDrag(props) {\n return !props.layer.wf;\n },\n beginDrag(props) {\n const { layer, field, rowValue } = props;\n return { wf: layer.wf, fid: field, rId: rowValue.id };\n },\n};\n\nconst orderTarget = {\n canDrop(props, monitor) {\n const src = monitor.getItem();\n return !props.layer.wf || !src.wf;\n },\n drop(props, monitor) {\n const {\n layer, field, rowValue, handleMove\n } = props;\n const tar = { wf: layer.wf, fid: field, rId: rowValue.id };\n const src = monitor.getItem();\n if (tar.fid === src.fid && tar.rId !== src.rId) handleMove(src.rId, tar.rId);\n },\n};\n\nconst orderDragCollect = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n});\n\nconst orderDropCollect = (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n});\n\nconst PanelDnD = ({\n connectDragSource, connectDropTarget, isDragging, isOver, canDrop,\n layer, id, handleChange, bs, hasAi\n}) => {\n const className = `generic_grid_dnd${isOver ? ' is-over' : ''}${canDrop ? ' can-drop' : ''}${isDragging ? ' is-dragging' : ''}`;\n const {\n style, label, wf, key\n } = layer;\n const klz = (style || 'panel_generic_heading').replace('panel_generic_heading', 'panel_generic_heading_slim');\n const btnLinkAna = hasAi ? (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id=\"_tooltip_link_ana\">link analysis</Tooltip>}>\n <Button bsSize=\"xsmall\" onClick={event => handleChange(event, id, layer, 'ana-modal')}>\n <i className=\"fa fa-paperclip\" aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n ) : null;\n const btnAdd = (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id=\"_tooltip_add_layer\">add layer</Tooltip>}>\n <Button bsSize=\"xsmall\" onClick={event => handleChange(event, id, layer, 'layer-modal')}>\n <FontAwesomeIcon icon={faPlus} />\n </Button>\n </OverlayTrigger>\n );\n const btnRemove = (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id=\"_tooltip_remove_layer\">remove layer</Tooltip>}>\n <Button bsSize=\"xsmall\" onClick={event => handleChange(event, id, layer, 'layer-remove')}>\n <FontAwesomeIcon icon={faMinus} />\n </Button>\n </OverlayTrigger>\n );\n const wfIcon = wf ? (\n <span>\n <FontAwesomeIcon icon={faSitemap} />\n </span>\n ) : null;\n const moveIcon = (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id={uuid()}>drag and drop to move position</Tooltip>}>\n <Button onClick={() => {}} bsSize=\"xsmall\"><FontAwesomeIcon icon={faArrowsAlt} /></Button>\n </OverlayTrigger>\n );\n const btnLayer = wf ? (<ButtonGroup className=\"pull-right\">{btnLinkAna}{btnAdd}</ButtonGroup>) : (\n <ButtonGroup className=\"pull-right\">\n {btnLinkAna}\n {btnAdd}\n {btnRemove}\n {moveIcon}\n </ButtonGroup>\n );\n const extHead = (/\\./g.test(key)) ? (\n <>\n (\n {key}\n {wfIcon}\n )\n </>\n ) : null;\n const panelHeader = (\n <Panel.Heading className={klz}>\n <Panel.Title toggle style={{ float: 'left', lineHeight: 'normal' }}>\n {label}\n {' '}\n {extHead}\n </Panel.Title>\n {btnLayer}\n <div className=\"clearfix\" />\n </Panel.Heading>\n );\n const panelHColor = bs !== 'none' ? `panel-${bs}` : '';\n const dndKlz = wf ? `dnd-none ${panelHColor}` : `dnd ${panelHColor}`;\n return compose(connectDragSource, connectDropTarget)(<div className={className}><div className={dndKlz}>{panelHeader}</div></div>);\n};\n\nexport default compose(\n DragSource(s => s.type, orderSource, orderDragCollect),\n DropTarget(s => s.type, orderTarget, orderDropCollect)\n)(PanelDnD);\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, OverlayTrigger, Popover } from 'react-bootstrap';\n\nconst ButtonConfirm = (props) => {\n const {\n msg, size, bs, fnClick, fnParams, place, fa, disabled\n } = props;\n const popover = (\n <Popover id=\"popover-button-confirm\">\n {msg}\n {' '}\n <br />\n <div className=\"btn-toolbar\">\n <Button\n bsSize=\"xsmall\"\n bsStyle=\"danger\"\n aria-hidden=\"true\"\n onClick={() => fnClick(fnParams)}\n >\n Yes\n </Button>\n <span> </span>\n <Button bsSize=\"xsmall\" bsStyle=\"warning\">No</Button>\n </div>\n </Popover>\n );\n\n return (\n <OverlayTrigger animation placement={place} root trigger=\"focus\" overlay={popover}>\n <Button bsSize={size} bsStyle={bs} disabled={disabled}>\n <i className={`fa ${fa}`} aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n );\n};\n\nButtonConfirm.propTypes = {\n msg: PropTypes.string.isRequired,\n fnParams: PropTypes.object.isRequired,\n fnClick: PropTypes.func.isRequired,\n bs: PropTypes.string,\n size: PropTypes.string,\n place: PropTypes.string,\n fa: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nButtonConfirm.defaultProps = {\n bs: 'danger', size: 'xs', place: 'right', fa: 'fa-trash-o', disabled: false\n};\n\nexport default ButtonConfirm;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { findIndex } from 'lodash';\nimport ButtonConfirm from './ButtonConfirm';\nimport FieldTypes from './FieldTypes';\n\nconst confirmDelete = (props) => {\n const {\n generic, str, key, root, fnConfirm\n } = props;\n if (str === FieldTypes.DEL_SELECT) {\n delete generic.properties_template.select_options[key];\n } else if (str === FieldTypes.DEL_OPTION) {\n const { options } = generic.properties_template.select_options[root];\n if (options && options.length > 0) {\n const idx = findIndex(options, o => o.key === key);\n options.splice(idx, 1);\n }\n } else if (str === FieldTypes.DEL_LAYER) {\n delete generic.properties_template.layers[key];\n } else if (str === FieldTypes.DEL_FIELD) {\n const { fields } = generic.properties_template.layers[root];\n const idx = findIndex(fields, o => o.field === key);\n fields.splice(idx, 1);\n }\n fnConfirm(generic);\n};\n\nconst ButtonDelField = (props) => {\n const {\n generic, delType, delKey, delRoot, fnConfirm\n } = props;\n let msg = 'remove?';\n if (delType === FieldTypes.DEL_SELECT) {\n msg = `remove this select option: [${delKey}] ?`;\n } else if (delType === FieldTypes.DEL_OPTION) {\n msg = `remove this option: [${delKey}] from select [${delRoot}] ?`;\n } else if (delType === FieldTypes.DEL_LAYER) {\n msg = `remove this layer: [${delKey}] ?`;\n } else if (delType === FieldTypes.DEL_FIELD) {\n msg = `remove this field: [${delKey}] from layer [${delRoot}] ?`;\n } else {\n msg = `remove ???: ${delType}`;\n }\n const fnParams = {\n generic, str: delType, key: delKey, root: delRoot, fnConfirm\n };\n\n return (\n <ButtonConfirm\n msg={msg}\n fnClick={confirmDelete}\n fnParams={fnParams}\n bs=\"default\"\n place=\"top\"\n size=\"sm\"\n />\n );\n};\n\nButtonDelField.propTypes = {\n generic: PropTypes.object.isRequired,\n delType: PropTypes.string.isRequired,\n delKey: PropTypes.string,\n delRoot: PropTypes.string,\n fnConfirm: PropTypes.func.isRequired\n};\n\nButtonDelField.defaultProps = { delKey: '', delRoot: '' };\n\nexport default ButtonDelField;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\nimport reinventGeneric from '../tools/reinventGeneric';\n\nconst BTN_RELOAD_TIP = <Tooltip id=\"_cgu_tooltip_reload\">click to reload the template</Tooltip>;\n\nconst ButtonReload = (props) => {\n const { klass, generic, fnReload } = props;\n if (generic && (typeof generic.klass_uuid === 'undefined'\n || generic.klass_uuid === klass.uuid || generic.is_new)) {\n return null;\n }\n\n const handleReload = () => {\n let outGeneric = generic;\n const output = reinventGeneric(generic, klass);\n if (output[1]) {\n outGeneric.properties = output[1];\n outGeneric.changed = true;\n } else {\n outGeneric = output[1];\n }\n outGeneric.properties_release = klass.properties_release;\n fnReload(outGeneric);\n };\n\n return (\n <OverlayTrigger placement=\"top\" overlay={BTN_RELOAD_TIP}>\n <Button bsSize=\"xsmall\" bsStyle=\"primary\" onClick={() => handleReload()}>\n <i className=\"fa fa-refresh\" aria-hidden=\"true\" />\n {' '}\n Reload\n </Button>\n </OverlayTrigger>\n );\n};\n\nButtonReload.propTypes = {\n klass: PropTypes.object,\n generic: PropTypes.object,\n fnReload: PropTypes.func\n};\nButtonReload.defaultProps = {\n klass: {}, generic: {}, fnReload: () => {}\n};\nexport default ButtonReload;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\n\nconst ButtonTooltip = (props) => {\n const { tip } = props;\n const tooltip = <Tooltip id={uuid()}>{tip}</Tooltip>;\n const {\n size, bs, fnClick, element, place, fa, disabled, txt, btnCls\n } = props;\n const content = txt ? (\n <span>\n {txt}\n {' '}\n </span>\n ) : '';\n if (bs === '') {\n return (\n <OverlayTrigger delayShow={1000} placement={place} overlay={tooltip}>\n <Button\n className={btnCls}\n bsSize={size}\n onClick={() => fnClick(element)}\n disabled={disabled}\n >\n {content}\n <i className={`fa ${fa}`} aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n );\n }\n return (\n <OverlayTrigger delayShow={1000} placement={place} overlay={tooltip}>\n <Button\n className={btnCls}\n bsSize={size}\n bsStyle={bs}\n onClick={() => fnClick(element)}\n disabled={disabled}\n >\n {content}\n <i className={`fa ${fa}`} aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n );\n};\n\nButtonTooltip.propTypes = {\n tip: PropTypes.string.isRequired,\n element: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n fnClick: PropTypes.func.isRequired,\n bs: PropTypes.string,\n size: PropTypes.string,\n place: PropTypes.string,\n fa: PropTypes.string,\n disabled: PropTypes.bool,\n txt: PropTypes.string,\n btnCls: PropTypes.string,\n};\n\nButtonTooltip.defaultProps = {\n bs: '',\n size: 'xs',\n place: 'top',\n fa: 'fa-pencil-square-o',\n disabled: false,\n txt: null,\n element: {},\n btnCls: ''\n};\n\nexport default ButtonTooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\n\nconst FieldLabel = (props) => {\n const { label, desc, isSpCall } = props;\n const klz = isSpCall ? 'gu_sp_label' : 'gu_sp_label_none';\n return ((desc && desc !== '') && !isSpCall) ? (\n <OverlayTrigger placement=\"top\" delayShow={1000} overlay={<Tooltip id={uuid()}>{desc}</Tooltip>}>\n <span>{label}</span>\n </OverlayTrigger>\n ) : <span className={klz}>{label}</span>;\n};\n\nFieldLabel.propTypes = {\n label: PropTypes.string.isRequired, desc: PropTypes.string, isSpCall: PropTypes.string\n};\nFieldLabel.defaultProps = { desc: '', isSpCall: false };\n\nexport default FieldLabel;\n","export default Object.freeze({\n DEL_LAYER: 'Layer',\n DEL_FIELD: 'Field',\n DEL_SELECT: 'Select',\n DEL_OPTION: 'Option',\n});\n","import {\n GenPropertiesCheckbox,\n GenPropertiesCalculate,\n GenPropertiesSelect,\n GenPropertiesDrop,\n GenPropertiesNumber,\n GenPropertiesSystemDefined,\n GenPropertiesInputGroup,\n GenPropertiesTextArea,\n GenPropertiesUpload,\n GenDummy,\n GenPropertiesTable,\n GenTextFormula,\n GenWFNext,\n GenPropertiesText\n} from './GenPropertiesFields';\n\nconst GenProperties = (opt) => {\n const fieldProps = { ...opt, dndItems: [] };\n const type = fieldProps.type.split('_');\n if (opt.isSearch && type[0] === 'drag') type[0] = 'text';\n // if (opt.isPreview && (type[0] === 'drag' || type[0] === 'upload')) type[0] = 'text';\n switch (type[0]) {\n case 'checkbox':\n return GenPropertiesCheckbox(fieldProps);\n case 'formula-field':\n return GenPropertiesCalculate(fieldProps);\n case 'select':\n return GenPropertiesSelect(fieldProps);\n case 'drag':\n fieldProps.dndItems = [...fieldProps.dndItems, type[1]];\n return GenPropertiesDrop(fieldProps);\n case 'integer':\n return GenPropertiesNumber(fieldProps);\n case 'system-defined':\n return GenPropertiesSystemDefined(fieldProps);\n case 'input-group':\n return GenPropertiesInputGroup(fieldProps);\n case 'textarea':\n return GenPropertiesTextArea(fieldProps);\n case 'upload':\n return GenPropertiesUpload(fieldProps);\n case 'dummy':\n return GenDummy();\n case 'table':\n return GenPropertiesTable(fieldProps);\n case 'text-formula':\n return GenTextFormula(fieldProps);\n case 'wf-next':\n return GenWFNext(fieldProps);\n default:\n return GenPropertiesText(fieldProps);\n }\n};\n\nexport default GenProperties;\n","/* eslint-disable react/destructuring-assignment */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable no-eval */\n/* eslint-disable no-restricted-globals */\n\nimport React from 'react';\nimport {\n Button, Checkbox, FormGroup, FormControl,\n InputGroup, ListGroup, ListGroupItem, OverlayTrigger, Radio, Tooltip\n} from 'react-bootstrap';\nimport Select from 'react-select';\nimport Dropzone from 'react-dropzone';\nimport { v4 as uuid } from 'uuid';\nimport { filter } from 'lodash';\nimport FieldLabel from './FieldLabel';\nimport {\n downloadFile, genUnit, genUnitSup, unitConvToBase\n} from '../tools/utils';\nimport GenericElDropTarget from '../dnd/GenericElDropTarget';\nimport TableRecord from '../table/TableRecord';\n\nconst fieldCls = (isSpCall = false) => {\n const clsFrm = isSpCall ? 'gu_sp_form' : 'gu_sp_form_none';\n const clsCol = isSpCall ? 'gu_sp_column' : 'gu_sp_column_none';\n return [clsFrm, clsCol];\n};\n\nconst fieldHeader = (opt) => {\n const { label, description } = opt;\n if (label === '') return null;\n return (<FieldLabel label={label} desc={description} isSpCall={opt.isSpCall} />);\n};\n\nconst GenPropertiesCalculate = (opt) => {\n const fields = (opt.layer && opt.layer.fields) || [];\n let showVal = 0;\n let showTxt = null;\n let newFormula = opt.formula;\n\n const calFields = filter(fields, o => (o.type === 'integer' || o.type === 'system-defined'));\n const regF = /[a-zA-Z0-9]+/gm;\n // eslint-disable-next-line max-len\n const varFields = (opt.formula && opt.formula.match(regF)) ? opt.formula.match(regF).sort((a, b) => b.length - a.length) : [];\n\n varFields.forEach((fi) => {\n if (!isNaN(fi)) return;\n\n const tmpField = calFields.find(e => e.field === fi);\n if (typeof tmpField === 'undefined' || tmpField == null) {\n newFormula = newFormula.replace(fi, 0);\n } else {\n newFormula = (tmpField.type === 'system-defined') ? newFormula.replace(fi, parseFloat(unitConvToBase(tmpField) || 0)) : newFormula.replace(fi, parseFloat(tmpField.value || 0));\n }\n });\n\n if (opt.type === 'formula-field') {\n try {\n showVal = eval(newFormula);\n showTxt = !isNaN(showVal) ? parseFloat(showVal.toFixed(5)) : 0;\n } catch (e) {\n if (e instanceof SyntaxError) {\n showTxt = e.message;\n }\n }\n }\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <InputGroup className={klz[1]}>\n <FormControl\n type=\"text\"\n value={showTxt}\n onChange={opt.onChange}\n className=\"readonly\"\n readOnly=\"readonly\"\n required={false}\n placeholder={opt.placeholder}\n min={0}\n />\n <InputGroup.Button>\n <OverlayTrigger\n placement=\"bottom\"\n overlay={<Tooltip id=\"update_calculation_field\">adjust</Tooltip>}\n >\n <Button active className=\"clipboardBtn\" onClick={() => opt.onChange(showTxt)}>\n <i className=\"fa fa-arrow-right\" aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n </InputGroup.Button>\n <FormControl\n type=\"text\"\n value={opt.value}\n onChange={opt.onChange}\n required={false}\n placeholder={opt.placeholder}\n min={0}\n />\n </InputGroup>\n </FormGroup>\n );\n};\n\nconst GenPropertiesCheckbox = (opt) => {\n if (opt.isSpCall) {\n return (\n <FormGroup className=\"text_generic_properties gu_sp_form\">\n {fieldHeader(opt)}\n <Checkbox\n name={opt.field}\n checked={opt.value}\n onChange={opt.onChange}\n disabled={opt.readOnly}\n className=\"gu_sp_column\"\n />\n </FormGroup>\n );\n }\n return (\n <FormGroup>\n <Checkbox\n name={opt.field}\n checked={opt.value}\n onChange={opt.onChange}\n disabled={opt.readOnly}\n >\n <FormControl.Static>{opt.label}</FormControl.Static>\n </Checkbox>\n </FormGroup>\n );\n};\n\nconst GenPropertiesDrop = (opt) => {\n const className = opt.isRequired ? 'drop_generic_properties field_required' : 'drop_generic_properties';\n\n let createOpt = null;\n if (opt.value.is_new === true) {\n createOpt = (\n <div className=\"sample_radios\">\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id={uuid()}>associate with this sample</Tooltip>}>\n <Radio name={`dropS_${opt.value.el_id}`} disabled={opt.value.isAssoc === true} checked={opt.value.cr_opt === 0} onChange={() => opt.onChange({ ...opt.value, cr_opt: 0 })} inline>Current</Radio>\n </OverlayTrigger>\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id={uuid()}>split from the sample first and then associate with it</Tooltip>}>\n <Radio name={`dropS_${opt.value.el_id}`} checked={opt.value.cr_opt === 1} onChange={() => opt.onChange({ ...opt.value, cr_opt: 1 })} inline>Split</Radio>\n </OverlayTrigger>\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id={uuid()}>duplicate the sample first and then associate with it</Tooltip>}>\n <Radio name={`dropS_${opt.value.el_id}`} checked={opt.value.cr_opt === 2} onChange={() => opt.onChange({ ...opt.value, cr_opt: 2 })} inline>Copy</Radio>\n </OverlayTrigger>\n </div>\n );\n }\n const defaultIcon = opt.type === 'drag_element' ? <span className=\"fa fa-link icon_generic_nav indicator\" /> : <span className=\"icon-sample indicator\" />;\n const dragTarget = opt.isPreview === true ? <div className=\"target\">{defaultIcon}</div> : <GenericElDropTarget opt={opt} onDrop={opt.onChange} />;\n\n return (\n <FormGroup>\n {fieldHeader(opt)}\n <FormControl.Static style={{ paddingBottom: '0px' }}>\n <div className={className}>\n {dragTarget}\n {createOpt}\n <div>\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id={uuid()}>remove</Tooltip>}>\n <Button className=\"btn_del\" bsStyle=\"danger\" bsSize=\"xsmall\" onClick={() => opt.onChange({})}><i className=\"fa fa-trash-o\" aria-hidden=\"true\" /></Button>\n </OverlayTrigger>\n </div>\n </div>\n </FormControl.Static>\n </FormGroup>\n );\n};\n\nconst GenDummy = () => (\n <FormGroup className=\"text_generic_properties\">\n <FormControl type=\"text\" className=\"dummy\" readOnly />\n </FormGroup>\n);\n\nconst GenPropertiesInputGroup = (opt) => {\n const fLab = e => <div key={uuid()} className=\"form-control g_input_group_label\">{e.value}</div>;\n const fTxt = e => <FormControl className=\"g_input_group\" key={e.id} type={e.type} name={e.id} value={e.value} onChange={o => opt.onSubChange(o, e.id, opt.f_obj)} />;\n const fUnit = e => (\n <span key={`${e.id}_GenPropertiesInputGroup`} className=\"input-group\" style={{ width: '100%' }}>\n <FormControl key={e.id} type=\"number\" name={e.id} value={e.value} onChange={o => opt.onSubChange(o, e.id, opt.f_obj)} min={1} />\n <InputGroup.Button>\n <Button active onClick={() => opt.onSubChange(e, e.id, opt.f_obj)} bsStyle=\"success\">\n {genUnitSup(genUnit(e.option_layers, e.value_system).label) || ''}\n </Button>\n </InputGroup.Button>\n </span>\n );\n const subs = opt.f_obj && opt.f_obj.sub_fields && opt.f_obj.sub_fields.map((e) => {\n if (e.type === 'label') { return fLab(e); } if (e.type === 'system-defined') { return fUnit(e); } return fTxt(e);\n });\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <InputGroup style={{ display: 'flex' }}>\n {subs}\n </InputGroup>\n </FormGroup>\n );\n};\n\nconst GenPropertiesNumber = (opt) => {\n let className = opt.isEditable ? 'editable' : 'readonly';\n className = opt.isRequired && opt.isEditable ? 'required' : className;\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <FormControl\n type=\"number\"\n value={opt.value}\n onChange={opt.onChange}\n className={className}\n readOnly={opt.readOnly}\n required={opt.isRequired}\n placeholder={opt.placeholder}\n min={1}\n />\n </FormGroup>\n );\n};\n\nconst GenPropertiesSelect = (opt) => {\n const options = opt.options.map(op => ({ value: op.key, name: op.key, label: op.label }));\n let className = opt.isEditable ? 'select_generic_properties_editable' : 'select_generic_properties_readonly';\n className = opt.isRequired && opt.isEditable ? 'select_generic_properties_required' : className;\n className = `${className} status-select`;\n const val = options.find(o => o.value === opt.value) || null;\n const klz = fieldCls(opt.isSpCall);\n const selectStyles = {\n menuPortal: base => ({ ...base, zIndex: 9999 }),\n menu: base => ({ ...base, zIndex: 9999 })\n };\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <span className={klz[1]}>\n <Select\n isClearable\n name={opt.field}\n multi={false}\n options={options}\n value={val}\n onChange={opt.onChange}\n className={className}\n isDisabled={opt.readOnly}\n menuPortalTarget={document.body}\n styles={selectStyles}\n />\n </span>\n </FormGroup>\n );\n};\n\nconst GenPropertiesSystemDefined = (opt) => {\n let className = opt.isEditable ? 'editable' : 'readonly';\n className = opt.isRequired && opt.isEditable ? 'required' : className;\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <InputGroup className={klz[1]}>\n <FormControl\n type=\"number\"\n value={opt.value}\n onChange={opt.onChange}\n className={`${className} ${klz[1]}`}\n readOnly={opt.readOnly}\n required={opt.isRequired}\n placeholder={opt.placeholder}\n min={1}\n />\n <InputGroup.Button>\n <Button disabled={opt.readOnly} active onClick={opt.onClick} bsStyle=\"success\">\n {genUnitSup(genUnit(opt.option_layers, opt.value_system).label) || ''}\n </Button>\n </InputGroup.Button>\n </InputGroup>\n </FormGroup>\n );\n};\n\nconst GenPropertiesTable = opt => (\n <FormGroup>\n {fieldHeader(opt)}\n <TableRecord key={`grid_${opt.f_obj.field}`} opt={opt} />\n </FormGroup>\n);\n\nconst GenPropertiesText = (opt) => {\n let className = opt.isEditable ? 'editable' : 'readonly';\n className = opt.isRequired && opt.isEditable ? 'required' : className;\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={`text_generic_properties ${klz[0]}`}>\n {fieldHeader(opt)}\n <FormControl\n type=\"text\"\n value={opt.value}\n onChange={opt.onChange}\n className={`${className} ${klz[1]}`}\n readOnly={opt.readOnly}\n required={opt.isRequired}\n placeholder={opt.placeholder}\n />\n </FormGroup>\n );\n};\n\nconst GenPropertiesTextArea = (opt) => {\n let className = opt.isEditable ? 'editable' : 'readonly';\n className = opt.isRequired && opt.isEditable ? 'required' : className;\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={`text_generic_properties ${klz[0]}`}>\n {fieldHeader(opt)}\n <FormControl\n componentClass=\"textarea\"\n value={opt.value}\n onChange={opt.onChange}\n className={className}\n readOnly={opt.readOnly}\n required={opt.isRequired}\n placeholder={opt.placeholder}\n />\n </FormGroup>\n );\n};\n\nconst GenTextFormula = (opt) => {\n const { layers } = opt;\n const subs = [];\n (opt.f_obj && opt.f_obj.text_sub_fields).map((e) => {\n const { layer, field, separator } = e;\n if (field && field !== '') {\n if (field.includes('[@@]')) {\n const fds = field.split('[@@]');\n if (fds && fds.length === 2) {\n const fdt = ((layers[layer] || {}).fields || []).find(f => f.field === fds[0] && f.type === 'table');\n ((fdt && fdt.sub_values) || []).forEach((svv) => {\n if (svv && svv[fds[1]] && svv[fds[1]] !== '') { subs.push(svv[fds[1]]); subs.push(separator); }\n });\n }\n } else {\n const fd = ((layers[layer] || {}).fields || []).find(f => f.field === field);\n if (fd && fd.value && fd.value !== '') { subs.push(fd.value); subs.push(separator); }\n }\n }\n return true;\n });\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={`text_generic_properties ${klz[0]}`}>\n {fieldHeader(opt)}\n <FormControl\n type=\"text\"\n value={subs.join('')}\n className={`readonly ${klz[1]}`}\n readOnly\n required={false}\n />\n </FormGroup>\n );\n};\n\nconst renderListGroupItem = (opt, attachment) => {\n const delBtn = (\n <Button bsSize=\"xsmall\" id={attachment.uid} className=\"button-right\" onClick={() => opt.onChange({ ...opt.value, action: 'd', uid: attachment.uid })}>\n <i className=\"fa fa-times\" aria-hidden=\"true\" />\n </Button>\n );\n const filename = attachment.aid\n ? (<a onClick={() => downloadFile({ contents: `/api/v1/attachments/${attachment.aid}`, name: attachment.filename })} style={{ cursor: 'pointer' }}>{attachment.filename}</a>) : attachment.filename;\n return (\n <div className=\"generic_grid\">\n <div>\n <div>{delBtn}</div>\n <div className=\"generic_grid_row\">{filename}</div>\n <div className=\"generic_grid_row\">\n <FormGroup bsSize=\"small\">\n <FormControl\n type=\"text\"\n value={attachment.label || ''}\n onChange={e => opt.onChange({\n ...opt.value, action: 'l', uid: attachment.uid, val: e\n })}\n />\n </FormGroup>\n </div>\n </div>\n </div>\n );\n};\n\nconst GenPropertiesUpload = (opt) => {\n const attachments = (opt.value && opt.value.files) || [];\n if (opt.isSearch) return (<div>(This is an upload)</div>);\n\n return (\n <FormGroup className=\"text_generic_properties\">\n {fieldHeader(opt)}\n <FormControl.Static style={{ paddingBottom: '0px' }}>\n <Dropzone\n id=\"dropzone\"\n onDrop={e => opt.onChange({\n ...opt.value, action: 'f', val: e\n })}\n style={{ height: 30, width: '100%', border: '3px dashed lightgray' }}\n >\n <div style={{ textAlign: 'center', paddingTop: 6, color: 'gray' }}>\n Drop File, or Click to Select.\n </div>\n </Dropzone>\n </FormControl.Static>\n <ListGroup>\n {attachments.map(attachment => (\n <ListGroupItem key={attachment.id} className=\"generic_files\">\n {renderListGroupItem(opt, attachment)}\n </ListGroupItem>\n ))}\n </ListGroup>\n </FormGroup>\n );\n};\n\nconst GenWFNext = (opt) => {\n const options = (opt.f_obj.wf_options || []).map((op) => {\n const label = op.label.match(/(.*)\\(.*\\)/);\n return ({ value: op.key, name: op.key, label: label[1] === '' ? label[0] : label[1] });\n });\n let className = opt.isEditable ? 'select_generic_properties_editable' : 'select_generic_properties_readonly';\n className = opt.isRequired && opt.isEditable ? 'select_generic_properties_required' : className;\n className = `${className} status-select`;\n const val = options.find(o => o.value === opt.value) || null;\n return (\n <FormGroup>\n {fieldHeader(opt)}\n <Select\n menuContainerStyle={{ position: 'absolute' }}\n name={opt.field}\n multi={false}\n options={options}\n value={val}\n onChange={opt.onChange}\n className={className}\n disabled={opt.readOnly}\n />\n </FormGroup>\n );\n};\n\nexport {\n GenPropertiesCalculate,\n GenPropertiesCheckbox,\n GenPropertiesDrop,\n GenDummy,\n GenTextFormula,\n GenPropertiesInputGroup,\n GenPropertiesNumber,\n GenPropertiesSelect,\n GenPropertiesSystemDefined,\n GenPropertiesTable,\n GenPropertiesText,\n GenPropertiesTextArea,\n GenPropertiesUpload,\n GenWFNext\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactFlow, { ReactFlowProvider, Controls, ConnectionMode } from 'react-flow-renderer';\nimport LayerNode from './LayerNode';\nimport { conFlowEls, flowDefault } from '../tools/utils';\n\nconst FlowView = props => {\n const { properties, properties_release } = props;\n const [reactFlowInstance, setReactFlowInstance] = useState(null);\n const [elements, setElements] = useState([]);\n const onLoad = _reactFlowInstance => {\n setReactFlowInstance(_reactFlowInstance);\n };\n\n useEffect(() => {\n let flowEls = conFlowEls(props);\n flowEls = flowEls.length > 0 ? flowEls : flowDefault;\n // flowEls = decorateNode(flowEls, properties.layers || {});\n setElements(flowEls);\n }, [properties, properties_release]);\n\n useEffect(() => {\n let flowEls = conFlowEls(props);\n flowEls = flowEls.length > 0 ? flowEls : flowDefault;\n // flowEls = decorateNode(flowEls, properties.layers || {});\n setElements(flowEls);\n }, []);\n\n useEffect(() => {\n if (reactFlowInstance && elements.length) {\n reactFlowInstance.fitView();\n }\n }, [reactFlowInstance, elements.length]);\n\n return (\n <ReactFlowProvider>\n <ReactFlow\n elements={elements}\n onLoad={onLoad}\n connectionMode={ConnectionMode.Loose}\n nodeTypes={{ selectorNode: LayerNode }}\n deleteKeyCode={46}\n >\n <Controls />\n </ReactFlow>\n </ReactFlowProvider>\n );\n};\n\nFlowView.propTypes = {\n properties: PropTypes.object.isRequired,\n};\n\nexport default FlowView;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Modal, Panel } from 'react-bootstrap';\nimport Draggable from 'react-draggable';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\nimport FlowView from './FlowView';\n\nconst FlowViewerModal = props => {\n const { show, data, fnHide } = props;\n if (!show) return null;\n const { properties_release, properties, shortLabel } = data;\n if (Object.keys(properties_release).length < 1) return null;\n if ((Object.keys(properties_release.flow || {}).length < 1)\n || ((properties_release.flow.elements || []).length < 3)) {\n return (\n <Modal show={show} bsSize=\"small\" onHide={fnHide}>\n <Modal.Header closeButton>\n <Modal.Title>{`${shortLabel} workflow`}</Modal.Title>\n </Modal.Header>\n <Modal.Body>No defined workflow</Modal.Body>\n </Modal>\n );\n }\n\n return (\n <Draggable handle=\".layer_header\" bounds=\"body\">\n <div className=\"flow_view_draggable\">\n <Panel bsStyle=\"primary\">\n <Panel.Heading className=\"layer_header\">\n {`${shortLabel} workflow`}\n <Button bsStyle=\"danger\" bsSize=\"xsmall\" className=\"gu_button_right\" onClick={fnHide}><FontAwesomeIcon icon={faTimes} /></Button>\n </Panel.Heading>\n <Panel.Body>\n <div className=\"body_bg\">\n <div className=\"body_canvas\"><FlowView properties={properties} properties_release={properties_release} /></div>\n </div>\n </Panel.Body>\n </Panel>\n </div>\n </Draggable>\n );\n};\n\nFlowViewerModal.propTypes = {\n show: PropTypes.bool.isRequired,\n data: PropTypes.shape({\n properties_release: PropTypes.object, properties: PropTypes.object, shortLabel: PropTypes.string\n }).isRequired,\n fnHide: PropTypes.func.isRequired\n};\n\nexport default FlowViewerModal;\n","import React, { memo } from 'react';\nimport { Handle, Position } from 'react-flow-renderer';\n\nconst targetHandleStyle = { background: '#555' };\nconst sourceHandleStyleA = { ...targetHandleStyle, top: 10 };\nconst onConnect = params => console.log('handle onConnect', params);\n\nconst LayerNode = ({ data }) => (\n <>\n <Handle type=\"target\" position={Position.Top} style={targetHandleStyle} onConnect={onConnect} />\n <div>\n <div style={{ borderWidth: '0px 0px 1px 0px', borderColor: 'black', borderStyle: 'solid' }}><b>{data.layer.label}</b></div>\n <div>\n (\n {data.layer.key}\n )\n </div>\n </div>\n <Handle type=\"source\" position={Position.Bottom} id=\"a\" style={sourceHandleStyleA} />\n </>\n);\n\nexport default memo(LayerNode);\n","/* eslint-disable max-len */\n/* eslint-disable react/require-default-props */\n/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Panel, Col, PanelGroup, Row\n} from 'react-bootstrap';\nimport GenProperties from '../fields/GenProperties';\nimport { genUnits, showProperties, unitConversion } from '../tools/utils';\nimport PanelDnD from '../dnd/PanelDnD';\n\nexport default class GenPropertiesLayer extends Component {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.handleSubChange = this.handleSubChange.bind(this);\n this.moveLayer = this.moveLayer.bind(this);\n }\n\n handleChange(e, f, k, t) {\n const { onChange } = this.props;\n onChange(e, f, k, t);\n }\n\n handleSubChange(e, id, f, valueOnly = false) {\n const { onSubChange } = this.props;\n const sub = f.sub_fields.find(m => m.id === id);\n if (!valueOnly) {\n if (e.type === 'system-defined') {\n const units = genUnits(e.option_layers);\n let uIdx = units.findIndex(u => u.key === e.value_system);\n if (uIdx < units.length - 1) uIdx += 1; else uIdx = 0;\n sub.value_system = units.length > 0 ? units[uIdx].key : '';\n sub.value = unitConversion(e.option_layers, sub.value_system, e.value);\n } else {\n sub.value = e.target.value;\n }\n }\n const { layer } = this.props;\n const obj = { f, sub };\n onSubChange(layer.key, obj, valueOnly);\n }\n\n handleClick(keyLayer, obj, val) {\n const { onClick } = this.props;\n const units = genUnits(obj.option_layers);\n let uIdx = units.findIndex(e => e.key === val);\n if (uIdx < units.length - 1) uIdx += 1; else uIdx = 0;\n const update = obj;\n update.value_system = units.length > 0 ? units[uIdx].key : '';\n onClick(keyLayer, update);\n }\n\n views() {\n const {\n layer, selectOptions, id, layers, isPreview, isSearch, onNavi, isSpCall\n } = this.props;\n const { fields, key, sp } = layer;\n let { cols } = layer;\n if (isSpCall && !!sp) cols = 1;\n const perRow = cols || 1;\n const col = Math.floor(12 / perRow);\n const klaz = (12 % perRow) > 0 ? 'g_col_w' : '';\n const vs = [];\n let op = [];\n let newRow = 0;\n let rowId = 1;\n (fields || []).forEach((f, i) => {\n if (showProperties(f, layers)) {\n const unit = genUnits(f.option_layers)[0] || {};\n const tabCol = (f.cols || 1) * 1;\n const rCol = (f.type === 'table') ? (12 / (tabCol || 1)) : col;\n newRow = (f.type === 'table') ? newRow += (perRow / (tabCol || 1)) : newRow += 1;\n\n if (newRow > perRow) {\n vs.push(<Row key={rowId}>{op}</Row>);\n rowId += 1;\n op = [];\n newRow = (f.type === 'table') ? newRow = (perRow / (tabCol || 1)) : newRow = 1;\n }\n const eachCol = (\n <Col key={`prop_${key}_${f.priority}_${f.field}`} md={rCol} lg={rCol} className={f.type === 'table' ? '' : klaz}>\n <GenProperties\n key={`${id}_${layer}_${f.field}_GenPropertiesLayer`}\n layers={layers}\n id={id}\n layer={layer}\n f_obj={f}\n label={f.label}\n value={f.value || ''}\n description={f.description || ''}\n type={f.type || 'text'}\n field={f.field || 'field'}\n formula={f.formula || ''}\n options={(selectOptions && selectOptions[f.option_layers] && selectOptions[f.option_layers].options) || []}\n onChange={event => this.handleChange(event, f.field, key, f.type)}\n onSubChange={this.handleSubChange}\n isEditable\n isPreview={isPreview}\n isSearch={isSearch}\n readOnly={false}\n isRequired={f.required || false}\n placeholder={f.placeholder || ''}\n option_layers={f.option_layers}\n value_system={f.value_system || unit.key}\n onClick={() => this.handleClick(key, f, (f.value_system || unit.key))}\n selectOptions={selectOptions || {}}\n onNavi={onNavi}\n isSpCall={isSpCall}\n />\n </Col>\n );\n op.push(eachCol);\n if (newRow % perRow === 0) newRow = 0;\n if ((newRow === 0) || (fields.length === (i + 1))) {\n vs.push(<Row key={rowId}>{op}</Row>);\n rowId += 1;\n op = [];\n }\n } else if (fields.length === (i + 1)) {\n vs.push(<Row key={rowId}>{op}</Row>);\n rowId += 1;\n op = [];\n }\n });\n return vs;\n }\n\n moveLayer(src, tar) {\n this.handleChange(null, src, tar, 'drop-layer');\n }\n\n render() {\n const {\n id, layer, activeWF, hasAi, aiComp\n } = this.props;\n const { color, style, label } = layer;\n // const ai = layer.ai || [];\n let bs = color || 'default';\n const cl = (style || 'panel_generic_heading').replace('panel_generic_heading', 'panel_generic_heading_slim');\n // panel header color is based on input bs value\n const panelDnD = (\n <PanelDnD\n type=\"gen_panel\"\n layer={layer}\n field=\"layer\"\n rowValue={{ id: layer.key }}\n handleMove={this.moveLayer}\n id={id}\n handleChange={this.handleChange}\n bs={bs}\n hasAi={hasAi}\n />\n );\n const panelHeader = label === '' ? (<span />) : (\n <Panel.Heading className={cl}>\n <Panel.Title toggle>{label}</Panel.Title>\n </Panel.Heading>\n );\n const noneKlass = bs === 'none' ? 'generic_panel_none' : '';\n if (bs === 'none') bs = 'default';\n return (\n <PanelGroup accordion id=\"accordion_generic_layer\" defaultActiveKey=\"1\" style={{ marginBottom: '0px' }}>\n <Panel bsStyle={bs} className={`panel_generic_properties ${noneKlass}`} eventKey=\"1\">\n {activeWF ? panelDnD : panelHeader}\n <Panel.Collapse>\n <Panel.Body className=\"panel_generic_properties_body\">\n {this.views()}\n {aiComp && aiComp[layer.key]}\n </Panel.Body>\n </Panel.Collapse>\n </Panel>\n </PanelGroup>\n );\n }\n}\n\nGenPropertiesLayer.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), // element id or new id\n layer: PropTypes.object,\n selectOptions: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onSubChange: PropTypes.func.isRequired,\n onClick: PropTypes.func,\n layers: PropTypes.object.isRequired,\n isPreview: PropTypes.bool,\n isSearch: PropTypes.bool,\n activeWF: PropTypes.bool,\n isSpCall: PropTypes.bool,\n onNavi: PropTypes.func,\n hasAi: PropTypes.bool,\n aiComp: PropTypes.any\n};\n\nGenPropertiesLayer.defaultProps = {\n id: 0,\n selectOptions: {},\n onClick: () => {},\n isPreview: false,\n isSearch: false,\n activeWF: false,\n isSpCall: false,\n onNavi: () => {},\n hasAi: false,\n aiComp: null\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Button, Tooltip, Modal, OverlayTrigger\n} from 'react-bootstrap';\nimport { sortBy } from 'lodash';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faPlus } from '@fortawesome/free-solid-svg-icons';\n\nconst block = (layer, fnAdd) => (\n <div className=\"generic_layer_column\">\n <div>\n <div>\n <b>{layer.label}</b>\n <br />\n (\n {layer.key}\n )\n </div>\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id=\"_tooltip_layers\">click to add layer</Tooltip>}>\n <Button bsStyle=\"primary\" onClick={event => fnAdd(event, layer)}>\n <FontAwesomeIcon icon={faPlus} />\n </Button>\n </OverlayTrigger>\n </div>\n </div>\n);\n\nconst drawLayout = (layers, fnAdd) => {\n const layout = [];\n layers.forEach(layer => { layout.push(<div key={layer.key}>{block(layer, fnAdd)}</div>); });\n return layout;\n};\n\nconst LayerModal = props => {\n const {\n show, layers, fnClose, fnAdd\n } = props;\n if (!show) return null;\n const sortedLayers = sortBy(layers, ['position', 'wf_position']) || [];\n if (sortedLayers.length < 1) return null;\n const layout = drawLayout(sortedLayers, fnAdd);\n return (\n <Modal show={show} onHide={fnClose}>\n <Modal.Header closeButton><Modal.Title>Choose Layer</Modal.Title></Modal.Header>\n <Modal.Body>\n <div style={{ maxHeight: '80vh', overflow: 'auto' }}>\n <div className=\"generic_grid\">{layout}</div>\n </div>\n </Modal.Body>\n </Modal>\n );\n};\n\nLayerModal.propTypes = {\n show: PropTypes.bool.isRequired,\n layers: PropTypes.object.isRequired,\n fnClose: PropTypes.func.isRequired,\n fnAdd: PropTypes.func.isRequired\n};\n\nexport default LayerModal;\n","import React from 'react';\nimport { sortBy } from 'lodash';\nimport GenPropertiesLayer from './GenPropertiesLayer';\nimport GenProperties from '../fields/GenProperties';\n\nconst LayersLayout = (props) => {\n const {\n layers, options, funcChange, funcSubChange, funcClick,\n extLys, id, isPreview, activeWF, isSearch, fnNavi, isSpCall, hasAi, aiComp\n } = props;\n\n // if call from SP, extra layer is impossible\n const buildExtLys = isSpCall ? [] : extLys.map(e => (\n <GenProperties\n key={`${e.generic.id}_${e.field}_elementalPropertiesExt`}\n field={e.field}\n label={e.label || ''}\n description={e.generic.description || ''}\n value={e.generic[e.field] || ''}\n type={e.type}\n isEditable={e.isEditable || true}\n readOnly={e.readOnly || false}\n isRequired={e.isRequired || false}\n onChange={event => funcChange(event, e.field, '', e.type)}\n />\n ));\n const sortedLayers = sortBy(layers, ['position', 'wf_position']) || [];\n const layout = [].concat(buildExtLys);\n sortedLayers.forEach((layer, idx) => {\n // if call from SP and layer is not sp, skip\n if (isSpCall && !layer.sp) return;\n const uk = `${layer.key}_${idx}`;\n if (typeof layer.cond_fields === 'undefined' || layer.cond_fields == null || layer.cond_fields.length === 0) {\n const ig = (\n <GenPropertiesLayer\n id={id}\n key={uk}\n layer={layer}\n onChange={funcChange}\n onSubChange={funcSubChange}\n selectOptions={options}\n onClick={funcClick}\n layers={layers}\n isPreview={isPreview}\n isSearch={isSearch}\n activeWF={activeWF}\n onNavi={fnNavi}\n isSpCall={isSpCall}\n hasAi={hasAi}\n aiComp={aiComp}\n />\n );\n layout.push(ig);\n } else if (layer.cond_fields && layer.cond_fields.length > 0) {\n let showLayer = false;\n\n for (let i = 0; i < layer.cond_fields.length; i += 1) {\n const cond = layer.cond_fields[i] || {};\n const fd = ((layers[cond.layer] || {}).fields || [])\n .find(f => f.field === cond.field) || {};\n if (fd.type === 'checkbox' && ((['false', 'no', 'f', '0'].includes((cond.value || '').trim().toLowerCase()) && (typeof (fd && fd.value) === 'undefined' || fd.value === false))\n || (['true', 'yes', 't', '1'].includes((cond.value || '').trim().toLowerCase()) && (typeof fd.value !== 'undefined' && fd.value === true)))) {\n showLayer = true;\n break;\n } else if (['text', 'select'].includes(fd.type) && (typeof (fd && fd.value) !== 'undefined' && (fd.value || '').trim() === (cond.value || '').trim())) {\n showLayer = true;\n break;\n }\n }\n\n if (showLayer === true) {\n const igs = (\n <GenPropertiesLayer\n id={id}\n key={uk}\n layer={layer}\n onChange={funcChange}\n onSubChange={funcSubChange}\n selectOptions={options}\n onClick={funcClick}\n layers={layers}\n isPreview={isPreview}\n isSearch={isSearch}\n activeWF={activeWF}\n onNavi={fnNavi}\n isSpCall={isSpCall}\n hasAi={hasAi}\n aiComp={aiComp}\n />\n );\n layout.push(igs);\n }\n }\n });\n return layout;\n};\n\nexport default LayersLayout;\n","import { v4 as uuid } from 'uuid';\n\nexport default class Attachment {\n constructor(args) {\n Object.assign(this, args);\n if (!this.id) { this.id = Attachment.buildID(); }\n }\n\n static buildID() { return uuid(); }\n\n static fromFile(file) {\n return new Attachment({\n file,\n name: file.name,\n filename: file.name,\n identifier: file.id,\n is_deleted: false,\n });\n }\n\n get isNew() {\n return this.is_new === true;\n }\n\n serialize() {\n return super.serialize({\n filename: this.filename,\n identifier: this.identifier,\n file: this.file,\n thumb: this.thumb,\n content_type: this.content_type,\n is_deleted: this.is_deleted,\n id: this.id,\n is_new: this.isNew || false\n });\n }\n}\n","import { v4 as uuid } from 'uuid';\n\nexport default class GenericSubField {\n constructor(args) {\n Object.assign(this, args);\n if (!this.id) { this.id = GenericSubField.buildID(); }\n }\n\n static buildID() { return uuid(); }\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/interactive-supports-focus */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst DropLinkRenderer = (props) => {\n const { sField, node, onNavi } = props;\n const dId = ((node.data[sField.id] || {}).value || {}).el_id || '';\n const dVal = ((node.data[sField.id] || {}).value || {}).el_short_label || ' ';\n if (dId === '') return <div />;\n return (\n <a role=\"link\" onClick={() => onNavi('sample', dId)} style={{ cursor: 'pointer' }}>\n <span className=\"reaction-material-link\">{dVal}</span>\n </a>\n );\n};\n\nDropLinkRenderer.propTypes = {\n sField: PropTypes.object.isRequired,\n node: PropTypes.object.isRequired,\n onNavi: PropTypes.func\n};\n\nDropLinkRenderer.defaultProps = { onNavi: () => {} };\nexport default DropLinkRenderer;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { cloneDeep } from 'lodash';\nimport GenericElTableDropTarget from './GenericElTableDropTarget';\n\nconst DropRenderer = props => {\n const {\n opt, sField, onChange, node\n } = props;\n if (!['drag_molecule', 'drag_sample'].includes(sField.type)) return null;\n const { data } = node;\n opt.dndItems = [sField.type.split('_')[1]];\n opt.sField = sField;\n opt.data = data;\n const oopt = cloneDeep(opt);\n return (\n <div className=\"drop_generic_properties drop_generic_table_wrap\">\n <GenericElTableDropTarget opt={oopt} onDrop={onChange} />\n </div>\n );\n};\n\nDropRenderer.propTypes = {\n sField: PropTypes.object.isRequired,\n opt: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n node: PropTypes.object.isRequired\n};\n\nexport default DropRenderer;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nconst DropTextRenderer = props => {\n const { attr, sField, node } = props;\n let displayValue = ((node.data[sField.id] || {}).value || {})[`el_${attr.value}`] || '';\n displayValue = (attr.value === 'molecular_weight' && displayValue !== '') ? displayValue.toFixed(6) : displayValue;\n return (\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id=\"copy_clipboard\">copy to clipboard</Tooltip>}>\n <div role=\"button\" data-clipboard-text={displayValue} className=\"clipboardBtn\" style={{ wordBreak: 'break-all', cursor: 'copy' }}>\n {displayValue}\n </div>\n </OverlayTrigger>\n );\n};\n\nDropTextRenderer.propTypes = {\n attr: PropTypes.object.isRequired,\n sField: PropTypes.object.isRequired,\n node: PropTypes.object.isRequired\n};\n\nexport default DropTextRenderer;\n","/* eslint-disable no-unused-vars */\n/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { DropTarget } from 'react-dnd';\nimport {\n Tooltip, OverlayTrigger, Popover, Button\n} from 'react-bootstrap';\nimport Constants from '../tools/Constants';\nimport { KlzIcon } from '../tools/utils';\n\nconst base = (opt, iconClass, onDrop = () => {}, params = {}) => {\n if (opt.value && opt.value.el_id) {\n const label = opt.value.el_label;\n let elSvg = opt.value.el_svg;\n if (opt.value.el_type === 'sample') {\n if (elSvg && !elSvg.endsWith('.svg') && opt.value.el_decoupled) {\n elSvg = Constants.IMG_UNDEFINED_STRUCTURE_SVG;\n }\n }\n if (elSvg && !elSvg.endsWith('.svg')) elSvg = Constants.IMG_NOT_AVAILABLE_SVG;\n const pop = (\n <Popover id=\"popover-svg\" title={label} style={{ maxWidth: 'none', maxHeight: 'none' }}>\n <img src={elSvg} style={{ height: '26vh', width: '26vh' }} alt=\"\" />\n </Popover>\n );\n const asShown = path => ((path === Constants.IMG_UNDEFINED_STRUCTURE_SVG)\n ? KlzIcon(`icon-${iconClass}`, { width: '4vw', fontSize: 'x-large' }) : (\n <OverlayTrigger\n delayShow={1000}\n trigger={['hover']}\n placement=\"top\"\n rootClose\n onHide={null}\n overlay={pop}\n >\n <img className=\"generic_grid_img\" src={path} alt=\"\" />\n </OverlayTrigger>\n ));\n const simg = (path, txt) => ((path && path !== '') ? (\n <div className=\"s-img\">\n {asShown(path)}\n <div className=\"del_btn\">\n <OverlayTrigger\n delayShow={1000}\n placement=\"top\"\n overlay={<Tooltip id={uuid()}>remove this molecule</Tooltip>}\n >\n <Button className=\"btn_del\" bsSize=\"xsmall\" onClick={() => onDrop({}, params)}>\n <i className=\"fa fa-trash-o\" aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n </div>\n </div>\n ) : (<div className=\"data\" style={{ width: '4vw' }}>{txt}</div>));\n return simg(elSvg, label);\n }\n return (KlzIcon(`icon-${iconClass} indicator`, { width: '4vw', fontSize: 'x-large' }));\n};\n\nconst show = (opt, iconClass, onDrop) => {\n if (opt.type === 'table') {\n const sField = opt.sField || {};\n const subVal = opt.data[sField.id];\n const { data } = opt;\n return base(subVal, iconClass, onDrop, { sField, data });\n }\n return base(opt, iconClass);\n};\n\nconst source = (type, props, id) => {\n let isAssoc = false;\n const taggable = (props && props.tag && props.tag.taggable_data) || {};\n if (taggable.element && taggable.element.id === id) {\n isAssoc = false;\n } else {\n isAssoc = !!(taggable.reaction_id || taggable.wellplate_id || taggable.element);\n }\n\n switch (type) {\n case 'molecule':\n return {\n el_id: props.molecule.id,\n el_type: 'molecule',\n el_label: props.molecule.cano_smiles || props.molecule_formula || props.molecule_name_label,\n el_inchikey: props.molecule.inchikey,\n el_smiles: props.molecule.cano_smiles,\n el_iupac: props.molecule.iupac_name,\n el_molecular_weight: props.molecule.molecular_weight,\n el_svg: `/images/molecules/${props.molecule.molecule_svg_file}`,\n };\n case 'sample':\n return {\n el_id: props.id,\n is_new: true,\n cr_opt: 1,\n isAssoc,\n el_type: 'sample',\n el_label: props.short_label,\n el_short_label: props.short_label,\n el_name: props.name,\n el_external_label: props.external_label,\n el_molecular_weight: props.molecule_molecular_weight,\n el_svg: props.sample_svg_file ? `/images/samples/${props.sample_svg_file}` : `/images/molecules/${props.molecule.molecule_svg_file}`,\n el_decoupled: props.decoupled || false,\n };\n default:\n return {\n el_id: props.id,\n is_new: true,\n cr_opt: 0,\n el_type: props.type,\n el_label: props.short_label,\n };\n }\n};\n\nconst dropTarget = {\n drop(targetProps, monitor) {\n const sourceProps = monitor.getItem().element;\n const type = targetProps.opt.sField.type.split('_')[1];\n const sourceTag = source(type, sourceProps, targetProps.opt.id);\n targetProps.onDrop(sourceTag, targetProps.opt);\n },\n canDrop(targetProps, monitor) {\n return true;\n },\n};\n\nconst dropCollect = (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop()\n});\n\nclass GenericElTableDropTarget extends Component {\n render() {\n const {\n connectDropTarget, isOver, canDrop, opt, onDrop\n } = this.props;\n const className = `target${isOver ? ' is-over' : ''}${canDrop ? ' can-drop' : ''}`;\n return connectDropTarget(<div className={className} style={{ display: 'inline-flex', justifyContent: 'center' }}>{show(opt, 'sample', onDrop)}</div>);\n }\n}\n\nexport default\nDropTarget(props => props.opt.dndItems, dropTarget, dropCollect)(GenericElTableDropTarget);\n\nGenericElTableDropTarget.propTypes = {\n connectDropTarget: PropTypes.func.isRequired,\n isOver: PropTypes.bool.isRequired,\n canDrop: PropTypes.bool.isRequired,\n opt: PropTypes.object.isRequired,\n onDrop: PropTypes.func\n};\n\nGenericElTableDropTarget.defaultProps = { onDrop: () => {} };\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport GridDnD from '../dnd/GridDnD';\n\nconst AddRowBtn = ({ addRow }) => (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id={uuid()}>add entry</Tooltip>}>\n <Button onClick={() => addRow()} bsSize=\"xsmall\" bsStyle=\"primary\"><i className=\"fa fa-plus\" aria-hidden=\"true\" /></Button>\n </OverlayTrigger>\n);\n\nAddRowBtn.propTypes = { addRow: PropTypes.func.isRequired };\n\nconst DelRowBtn = ({ delRow, node }) => {\n const { data } = node;\n return (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id={uuid()}>remove</Tooltip>}>\n <Button onClick={() => delRow(data)} bsSize=\"xsmall\"><i className=\"fa fa-times\" aria-hidden=\"true\" /></Button>\n </OverlayTrigger>\n );\n};\n\nDelRowBtn.propTypes = { delRow: PropTypes.func.isRequired, node: PropTypes.object.isRequired };\n\nconst NullRowBtn = () => (<div className=\"grid-btn-none\"><span className=\"fa fa-arrows\" /></div>);\n\nconst DnDRowBtn = ({\n moveRow, field, type, node\n}) => (\n <GridDnD field={field} type={type} rowValue={node.data} handleMove={moveRow} />\n);\n\nDnDRowBtn.propTypes = {\n moveRow: PropTypes.func.isRequired,\n field: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n node: PropTypes.object.isRequired\n};\n\nexport {\n AddRowBtn, DelRowBtn, DnDRowBtn, NullRowBtn\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { FormControl, InputGroup } from 'react-bootstrap';\n\nconst setCell = (columnDef, rowValue) => {\n const {\n type, field, onCellChange, cellRenderer, cellParams\n } = columnDef;\n switch (type) {\n case 'text':\n return (\n <FormControl type=\"text\" value={rowValue[field] || ''} onChange={e => onCellChange({ e, columnDef, rowValue })} />\n );\n case 'system-defined':\n return (\n <InputGroup>\n <FormControl type=\"number\" value={rowValue[field].value || ''} onChange={e => onCellChange({ e, columnDef, rowValue })} />\n <InputGroup.Button>\n {cellRenderer({ ...cellParams, node: { data: rowValue } })}\n </InputGroup.Button>\n </InputGroup>\n );\n case 'select':\n case 'drag_molecule':\n case 'drag_sample':\n case 'dnd':\n return (cellRenderer({ ...cellParams, node: { data: rowValue } }));\n default:\n return <span />;\n }\n};\n\nconst ColumnHeader = _columnDefs => {\n const columnDefs = _columnDefs;\n const ch = [];\n const h = (col, idx) => {\n const {\n width, headerName, headerComponent, headerParams\n } = col;\n const colCss = {};\n if (width) { Object.assign(colCss, { width, minWidth: width }); }\n return (\n <div key={`column_header_${col.colId || col.field}_${idx}`} className=\"generic_grid_header\" style={colCss}>\n {headerComponent ? headerComponent(headerParams) : null}\n <div style={colCss}>{headerName}</div>\n </div>\n );\n };\n columnDefs.forEach((col, idx) => ch.push(h(col, idx)));\n return (<div className=\"generic_grid\" style={{ borderBottom: '1px solid #ccc' }}><div>{ch}</div></div>);\n};\n\nconst ColumnRow = (_columnDefs, _rowValue) => {\n const columnDefs = _columnDefs;\n const rowValue = _rowValue;\n const ch = [];\n const h = (col, val, idx) => {\n const {\n field, width, cellParams, cellRenderer\n } = col;\n const colCss = {};\n if (width) { Object.assign(colCss, { width, minWidth: width }); }\n return (\n <div key={`column_row_${val.id}_${col.colId || col.field}_${idx}`} className=\"generic_grid_row\" style={colCss}>\n {field ? (setCell(col, val) || '') : (cellRenderer({ ...cellParams, node: { data: val } }) || '')}\n </div>\n );\n };\n columnDefs.forEach((col, idx) => ch.push(h(col, rowValue, idx)));\n return (<div key={`column_row_${rowValue.id}`} className=\"generic_grid\"><div>{ch}</div></div>);\n};\n\nconst NoRow = rows => {\n const values = rows;\n if (values && values.length > 0) return null;\n return (<div className=\"generic_grid\"><div><div className=\"generic_grid_row\" style={{ width: '100%' }}>(No data)</div></div></div>);\n};\n\nexport { ColumnHeader, ColumnRow, NoRow };\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { OverlayTrigger, Radio, Tooltip } from 'react-bootstrap';\n\nconst SamOption = props => {\n const { sField, node, onChange } = props;\n const { data } = node;\n const fValue = (data[sField.id] && data[sField.id].value) || {};\n if (!fValue.is_new) return <div />;\n const rUUID = uuid();\n return (\n <div className=\"generic_sam_options\">\n <OverlayTrigger delayShow={1000} placement=\"right\" overlay={<Tooltip id={uuid()}>associate with this sample</Tooltip>}>\n <Radio\n name={`dropS_${rUUID}`}\n disabled={fValue.isAssoc}\n checked={fValue.cr_opt === 0}\n onChange={() => onChange({ node, subField: sField, crOpt: 0 })}\n >\n Current\n </Radio>\n </OverlayTrigger>\n <OverlayTrigger delayShow={1000} placement=\"right\" overlay={<Tooltip id={uuid()}>split from the sample first and then associate with it</Tooltip>}>\n <Radio\n name={`dropS_${rUUID}`}\n checked={fValue.cr_opt === 1}\n onChange={() => onChange({ node, subField: sField, crOpt: 1 })}\n >\n Split\n </Radio>\n </OverlayTrigger>\n <OverlayTrigger delayShow={1000} placement=\"right\" overlay={<Tooltip id={uuid()}>duplicate the sample first and then associate with it</Tooltip>}>\n <Radio\n name={`dropS_${rUUID}`}\n checked={fValue.cr_opt === 2}\n onChange={() => onChange({ node, subField: sField, crOpt: 2 })}\n >\n Copy\n </Radio>\n </OverlayTrigger>\n </div>\n );\n};\n\nSamOption.propTypes = {\n sField: PropTypes.object.isRequired,\n node: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nexport default SamOption;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Select from 'react-select';\n\nconst SelectRenderer = props => {\n const {\n sField, onChange, sOptions, node\n } = props;\n if (sField.type !== 'select' || sOptions.length < 1) return null;\n const { data } = node;\n const val = sOptions.find(o => o.value === data[sField.id].value) || null;\n return (\n <Select\n isClearable\n menuContainerStyle={{ position: 'absolute' }}\n multi={false}\n options={sOptions}\n value={val}\n onChange={e => onChange(e, sField, node)}\n className=\"status-select\"\n style={{ textAlign: 'left' }}\n />\n );\n};\n\nSelectRenderer.propTypes = {\n sField: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n node: PropTypes.object.isRequired,\n sOptions: PropTypes.arrayOf(PropTypes.object).isRequired\n};\n\nexport default SelectRenderer;\n","/* eslint-disable no-restricted-globals */\n/* eslint-disable no-empty */\n/* eslint-disable react/forbid-prop-types */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Numeral from 'numeral';\nimport GenericSubField from '../models/GenericSubField';\nimport {\n AddRowBtn, DelRowBtn, DnDRowBtn, NullRowBtn\n} from './GridBtn';\nimport { ColumnHeader, ColumnRow, NoRow } from './GridEntry';\nimport UConverterRenderer from './UConverterRenderer';\nimport {\n genUnits, unitConversion, molOptions, samOptions\n} from '../tools/utils';\nimport DropRenderer from './DropRenderer';\nimport DropTextRenderer from './DropTextRenderer';\nimport DropLinkRenderer from './DropLinkRenderer';\nimport SampOption from './SamOption';\nimport DragDropItemTypes from '../dnd/DragDropItemTypes';\nimport SelectRenderer from './SelectRenderer';\n\nexport default class TableRecord extends React.Component {\n constructor(props) {\n super(props);\n this.delRow = this.delRow.bind(this);\n this.addRow = this.addRow.bind(this);\n this.moveRow = this.moveRow.bind(this);\n this.onCellChange = this.onCellChange.bind(this);\n this.onSelectClick = this.onSelectClick.bind(this);\n this.onUnitClick = this.onUnitClick.bind(this);\n this.onDrop = this.onDrop.bind(this);\n this.onChk = this.onChk.bind(this);\n this.getColumns = this.getColumns.bind(this);\n }\n\n onCellChange(params) {\n const { e, columnDef, rowValue } = params;\n const newValue = e.target.value;\n const oldValue = rowValue[columnDef.field].value;\n if (oldValue === newValue) return;\n if (columnDef.type === 'text') {\n rowValue[columnDef.field] = newValue;\n }\n if (columnDef.type === 'system-defined') {\n if (isNaN(newValue)) return;\n rowValue[columnDef.field].value = Numeral(newValue).value();\n }\n const { opt } = this.props;\n const subVals = opt.f_obj.sub_values || [];\n const idx = subVals.findIndex(s => s.id === rowValue.id);\n subVals.splice(idx, 1, rowValue);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(0, 0, opt.f_obj, true);\n }\n\n onSelectClick(e, subField, node) {\n const { data } = node;\n const { opt } = this.props;\n const subVals = opt.f_obj.sub_values || [];\n const subVal = subVals.find(s => s.id === data.id);\n subVal[subField.id] = { value: e ? e.value : '' };\n const idx = subVals.findIndex(s => s.id === data.id);\n subVals.splice(idx, 1, subVal);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(subField, subField.id, opt.f_obj, true);\n }\n\n onUnitClick(subField, node) {\n const { data } = node;\n const { opt } = this.props;\n const subVals = opt.f_obj.sub_values || [];\n const subVal = subVals.find(s => s.id === data.id);\n const units = genUnits(subField.option_layers);\n let uIdx = units.findIndex(u => u.key === subVal[subField.id].value_system);\n if (uIdx < units.length - 1) uIdx += 1; else uIdx = 0;\n const vs = units.length > 0 ? units[uIdx].key : '';\n const v = unitConversion(subField.option_layers, vs, subVal[subField.id].value);\n subVal[subField.id] = { value: v, value_system: vs };\n const idx = subVals.findIndex(s => s.id === data.id);\n subVals.splice(idx, 1, subVal);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(subField, subField.id, opt.f_obj, true);\n }\n\n onDrop(targetProps, targetOpt) {\n const { opt } = this.props;\n const subField = targetOpt.sField;\n const subVals = opt.f_obj.sub_values || [];\n const subVal = subVals.find(s => s.id === targetOpt.data.id);\n subVal[subField.id] = { value: targetProps };\n const idx = subVals.findIndex(s => s.id === targetOpt.data.id);\n subVals.splice(idx, 1, subVal);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(subField, subField.id, opt.f_obj, true);\n }\n\n onChk(params) {\n const { node, subField, crOpt } = params;\n const { opt } = this.props;\n const subVals = opt.f_obj.sub_values || [];\n const subVal = subVals.find(s => s.id === node.data.id);\n node.data[subField.id].value.cr_opt = crOpt;\n subVal[subField.id] = { value: node.data[subField.id].value };\n const idx = subVals.findIndex(s => s.id === node.data.id);\n subVals.splice(idx, 1, subVal);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(subField, subField.id, opt.f_obj, true);\n }\n\n getColumns() {\n const { opt } = this.props;\n const { selectOptions, onNavi } = opt;\n const sValues = (opt.f_obj.sub_values || []);\n let columnDefs = [];\n (opt.f_obj.sub_fields || []).forEach(sF => {\n let colDef = {\n type: sF.type, headerName: sF.col_name, field: sF.id\n };\n const colDefExt = [];\n if (sF.type === 'text') {\n colDef = { ...colDef, editable: true, onCellChange: this.onCellChange };\n }\n if (sF.type === 'select') {\n let sOptions = (selectOptions[sF.option_layers] && selectOptions[sF.option_layers].options) || [];\n sOptions = sOptions.map(op => ({ value: op.key, name: op.key, label: op.label }));\n const cellParams = { sField: sF, onChange: this.onSelectClick, sOptions };\n colDef = {\n ...colDef, cellRenderer: SelectRenderer, cellParams, onCellChange: this.onCellChange\n };\n }\n if (sF.type === 'system-defined') {\n const cellParams = { sField: sF, onChange: this.onUnitClick };\n colDef = {\n ...colDef, cellRenderer: UConverterRenderer, cellParams, onCellChange: this.onCellChange\n };\n }\n if (sF.type === 'drag_molecule') {\n const cellParams = { sField: sF, opt, onChange: this.onDrop };\n colDef = {\n ...colDef, cellRenderer: DropRenderer, cellParams, onCellChange: this.onCellChange, width: '5vw'\n };\n const conf = ((sF.value || '').split(';') || []);\n conf.forEach(c => {\n const attr = molOptions.find(m => m.value === c);\n if (attr) {\n const ext = {\n colId: c, editable: false, type: 'text', headerName: attr.label, cellRenderer: DropTextRenderer, cellParams: { attr, sField: sF }\n };\n colDefExt.push(ext);\n }\n });\n }\n if (sF.type === 'drag_sample') {\n const sOpt = sValues.filter(o => o[sF.id] && o[sF.id].value && o[sF.id].value.is_new);\n const cellParams = { sField: sF, opt, onChange: this.onDrop };\n colDef = {\n ...colDef, cellRenderer: DropRenderer, cellParams, onCellChange: this.onCellChange, width: '5vw'\n };\n const addOption = {\n colId: 'sam_option', editable: false, type: 'text', headerName: '', cellRenderer: SampOption, cellParams: { sField: sF, onChange: this.onChk }, width: '3vw'\n };\n if (sOpt.length > 0) colDefExt.push(addOption);\n const addLink = {\n colId: 'sam_link', editable: false, type: 'text', headerName: 'Short label', cellRenderer: DropLinkRenderer, cellParams: { sField: sF, onNavi }, width: '5vw'\n };\n colDefExt.push(addLink);\n const conf = ((sF.value || '').split(';') || []);\n conf.forEach(c => {\n const attr = samOptions.find(m => m.value === c);\n if (attr) {\n const ext = {\n colId: c, editable: false, type: 'text', headerName: attr.label, cellRenderer: DropTextRenderer, cellParams: { attr, sField: sF }\n };\n colDefExt.push(ext);\n }\n });\n }\n columnDefs.push(colDef);\n if (colDefExt.length > 0) columnDefs = columnDefs.concat(colDefExt);\n });\n const act = {\n type: 'button',\n headerName: '',\n colId: opt.f_obj.field,\n headerComponent: AddRowBtn,\n headerParams: { addRow: this.addRow },\n cellRenderer: DelRowBtn,\n cellParams: { delRow: this.delRow },\n width: 'unset',\n };\n columnDefs.splice(0, 0, act);\n const dtype = `${DragDropItemTypes.GENERIC_GRID}_${opt.layer.key}_${opt.f_obj.field}`;\n const move = {\n type: 'dnd',\n field: opt.f_obj.field,\n headerName: '',\n colId: `${opt.f_obj.field}_dnd`,\n headerComponent: NullRowBtn,\n cellRenderer: DnDRowBtn,\n cellParams: { moveRow: this.moveRow, field: opt.f_obj.field, type: dtype },\n width: 'unset',\n };\n columnDefs.splice(0, 0, move);\n return columnDefs;\n }\n\n moveRow(source, target) {\n const { opt } = this.props;\n const alles = opt.f_obj.sub_values;\n const sid = alles.findIndex(e => e.id === source);\n const tid = alles.findIndex(e => e.id === target);\n const temp = alles[sid];\n alles[sid] = alles[tid];\n alles[tid] = temp;\n opt.onSubChange(0, 0, opt.f_obj, true);\n }\n\n delRow(rowData) {\n const { opt } = this.props;\n opt.f_obj.sub_values = opt.f_obj.sub_values.filter(s => s.id !== rowData.id);\n opt.onSubChange(0, 0, opt.f_obj, true);\n }\n\n addRow() {\n const { opt } = this.props;\n const subFields = opt.f_obj.sub_fields || [];\n const newSub = new GenericSubField();\n subFields.map(e => {\n if (e.type === 'text') return Object.assign(newSub, { [e.id]: '' });\n return Object.assign(newSub, { [e.id]: { value: '', value_system: e.value_system } });\n });\n opt.f_obj.sub_values = opt.f_obj.sub_values || [];\n opt.f_obj.sub_values.push(newSub);\n opt.onSubChange(0, 0, opt.f_obj, true);\n }\n\n render() {\n const { opt } = this.props;\n if (opt.isSearch) return (<div>(This is a table)</div>);\n if ((opt.f_obj.sub_fields || []).length < 1) return null;\n const columnDefs = this.getColumns();\n return (\n <div>\n {ColumnHeader(columnDefs)}\n <div>{NoRow(opt.f_obj.sub_values)}</div>\n <div>{(opt.f_obj.sub_values || []).map(s => ColumnRow(columnDefs, s))}</div>\n </div>\n );\n }\n}\n\nTableRecord.propTypes = {\n opt: PropTypes.object.isRequired,\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from 'react-bootstrap';\nimport { genUnit, genUnitSup } from '../tools/utils';\n\nconst UConverterRenderer = props => {\n const { sField, onChange, node } = props;\n if (sField.type !== 'system-defined') return null;\n const { data } = node;\n return (\n <Button key={`ucr_${data.id}`} active onClick={() => onChange(sField, node)} bsStyle=\"success\">\n {genUnitSup(genUnit(sField.option_layers, data[sField.id].value_system).label) || ''}\n </Button>\n );\n};\n\nUConverterRenderer.propTypes = {\n sField: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n node: PropTypes.object.isRequired\n};\n\nexport default UConverterRenderer;\n","export default Object.freeze({\n BTN_AI_LINK: 'link',\n BTN_AI_UNLINK: 'unlink',\n IMG_NOT_AVAILABLE_SVG: '/images/wild_card/not_available.svg',\n IMG_UNDEFINED_STRUCTURE_SVG: '/images/wild_card/undefined_structure.svg'\n});\n","import { cloneDeep } from 'lodash';\nimport { unitConversion } from './utils';\nimport GenericSubField from '../models/GenericSubField';\n\nconst collateValues = (currentFields, previousFields, previousValues) => {\n const result = [];\n let newSub = new GenericSubField();\n currentFields.map(e => Object.assign(newSub, { [e.id]: '' }));\n const currentValuKeys = Object.keys(newSub);\n const previousValueKeys = Object.keys(previousValues[0]);\n const notInCurrent = previousValueKeys.filter(e => !currentValuKeys.includes(e));\n const currObj = {};\n currentFields.map(c => {\n if (c.type === 'text') return Object.assign(currObj, { [c.id]: '' });\n return Object.assign(currObj, { [c.id]: { value: '', value_system: c.value_system } });\n });\n previousValues.forEach(e => {\n newSub = new GenericSubField();\n Object.assign(newSub, currObj, e);\n notInCurrent.forEach(c => delete newSub[c]);\n previousValueKeys.forEach(preKey => {\n if (newSub[preKey] === undefined || preKey === 'id') return;\n const curr = currentFields.find(f => f.id === preKey);\n const prev = previousFields.find(f => f.id === preKey);\n if (curr.type === 'drag_molecule') {\n if (['text', 'system-defined', 'drag_sample'].includes(prev.type)) {\n newSub[preKey] = { value: undefined };\n }\n }\n if (curr.type === 'text') {\n if (prev.type === 'system-defined') {\n newSub[preKey] = newSub[preKey].value;\n }\n if (['drag_molecule', 'drag_sample'].includes(prev.type)) {\n newSub[preKey] = '';\n }\n }\n if (curr.type === 'system-defined') {\n if (prev.type === 'system-defined' && (curr.option_layers !== prev.option_layers)) {\n newSub[preKey].value_system = curr.value_system;\n }\n if (['text', 'drag_molecule', 'drag_sample'].includes(prev.type)) {\n newSub[preKey] = { value: '', value_system: curr.value_system };\n }\n newSub[preKey].value = unitConversion(curr.option_layer, newSub[preKey].value_system, newSub[preKey].value);\n }\n });\n result.push(newSub);\n });\n return result;\n};\n\nconst organizeSubValues = (cur, pre) => {\n const currentFields = cloneDeep(cur.sub_fields || []);\n const previousFields = cloneDeep(pre.sub_fields || []);\n const previousValues = cloneDeep(pre.sub_values || []);\n if (currentFields.length < 1\n || previousFields.length < 1 || previousValues.length < 1) {\n return [];\n }\n return collateValues(currentFields, previousFields, previousValues);\n};\n\nexport default organizeSubValues;\n","import { cloneDeep, sortBy } from 'lodash';\nimport { v4 as uuid } from 'uuid';\n\nconst getWFNode = (_flow, nodeId) => _flow.elements.filter(e => e.id === nodeId)[0];\n\n// full-flow, node id\nconst getFlowLayer = (templateFlow, nodeId, sourceLayer, sIdx) => {\n const flow = cloneDeep(templateFlow);\n const nd = flow.elements.filter(e => e.id === nodeId); // fetch node\n if (nd.length < 1) return null;\n const { layer } = nd[0].data;\n const ls = flow.elements.filter(e => e.animated); // lines\n const ns = flow.elements.filter(e => e.type === 'default' && e.data); // nodes - Start - End\n const ndNs = ls.filter(e => e.source === nodeId).map(e => e.target); // next nodes' id\n const wfOpts = ns.filter(n => ndNs.includes(n.id)).map(e => ({ key: e.id, label: `${e.data.layer.label}(${e.data.layer.key})` })); // next nodes\n if (wfOpts.length > 0) {\n const position = (layer.fields || []).length + 1;\n layer.fields.push({\n type: 'wf-next', default: '', field: '_wf_next', label: 'Next', required: false, sub_fields: [], text_sub_fields: [], position, wf_options: wfOpts\n });\n }\n layer.wf_info = { node_id: nodeId, source_layer: sourceLayer };\n layer.wf_position = sIdx + 1;\n return layer;\n};\n\nconst orgLayerObject = (_layers = []) => {\n const layers = _layers;\n return layers.reduce((alles, name) => {\n const all = alles;\n const ok = Object.keys(all);\n if (ok.includes(name.key)) {\n const cnt = ok.filter(e => e === name.key || e.startsWith(`${name.key}.`)).length;\n const nName = `${name.key}.${cnt}`;\n name.key = nName;\n all[nName] = name;\n } else {\n all[name.key] = name;\n }\n return all;\n }, {});\n};\n\nconst reformCondFields = (_layer, _oKey) => {\n const layer = _layer;\n layer.fields.map(_f => {\n const f = _f;\n let conds = f.cond_fields;\n // no cond_fields\n if (!conds || conds.length < 1 || conds.filter(o => !o.field || o.field === '').length === conds.length) return f;\n conds = conds.filter(o => o.layer === _oKey);\n // no same layer, remove cond_fields\n if (conds.length < 1) {\n delete f.cond_fields;\n return f;\n }\n // rename layer\n conds = conds.map(o => {\n const n = o;\n n.layer = layer.key;\n return n;\n });\n f.cond_fields = conds;\n return f;\n });\n return layer.fields;\n};\n\nconst addToObject = (obj, key, addAfter) => {\n const temp = {};\n const ok = Object.keys(obj);\n Object.keys(obj).forEach(e => {\n if (Object.prototype.hasOwnProperty.call(obj, e)) {\n temp[e] = obj[e];\n if (e === key) {\n const srcPosition = temp[e].position;\n const cnt = ok.filter(o => o === addAfter.key || o.startsWith(`${addAfter.key}.`)).length;\n if (cnt === 0) {\n temp[addAfter.key] = addAfter;\n temp[addAfter.key].position = srcPosition;\n } else {\n const oKey = addAfter.key;\n temp[`${addAfter.key}.${cnt}`] = addAfter;\n temp[`${addAfter.key}.${cnt}`].position = srcPosition;\n temp[`${addAfter.key}.${cnt}`].key = `${addAfter.key}.${cnt}`;\n temp[addAfter.key].fields = reformCondFields(addAfter, oKey);\n }\n }\n }\n });\n if (Object.keys(obj).length === 0) temp[addAfter.key] = addAfter;\n return temp;\n};\n\nconst traverseToRemove = (layers, rmKey) => {\n let rms = [];\n Object.keys(layers).forEach(e => {\n if (Object.prototype.hasOwnProperty.call(layers, e)) {\n if (layers[e].key === rmKey) rms = rms.concat(rmKey);\n else if (layers[e].wf_info && (layers[e].wf_info.source_layer === rmKey)) {\n rms = rms.concat(traverseToRemove(layers, layers[e].key));\n }\n }\n });\n return rms;\n};\n\nconst removeFromObject = (_propertiesLayers = {}, srcLayer = '', rmNode = {}) => {\n const layers = _propertiesLayers;\n const rmLayer = rmNode.data && rmNode.data.layer ? rmNode.data.layer.key : null;\n if (!rmLayer) return [];\n let rms = [];\n Object.keys(layers).forEach(e => {\n if (Object.prototype.hasOwnProperty.call(layers, e)) {\n const wf = layers[e].wf_info;\n if (wf && (wf.source_layer === srcLayer) && (wf.node_id === rmNode.id)) {\n rms = rms.concat(traverseToRemove(layers, layers[e].key));\n }\n }\n });\n rms.forEach(e => delete layers[e]);\n return layers;\n};\n\nconst buildInitWF = (template) => {\n const orig = cloneDeep(template);\n const { layers, flow } = orig;\n const sortedLayers = sortBy(layers, l => l.position);\n if (flow && flow.elements.filter(e => !['input', 'output'].includes(e.type).length > 0)) {\n // id = 1 Start, id = 2 End\n const nls = flow.elements; // nodes + lines\n const ls = nls.filter(e => e.animated); // lines\n const ns = nls.filter(e => e.type === 'default' && e.data); // nodes - Start - End\n const nNs = ls.filter(e => e.source === '1').map(e => e.target); // get target ids from Start\n const nextNodes = ns.filter(n => nNs.includes(n.id)); // target nodes\n const result = [];\n sortedLayers.forEach((sortedLayer) => {\n const fLayer = sortedLayer;\n if (fLayer.wf) {\n const position = (fLayer.fields || []).length + 1;\n const passen = nextNodes.filter(n => n.data.layer.key === fLayer.key);\n passen.forEach((pas) => {\n const nextOptions = ls.filter(e => e.source === pas.id && e.source !== e.target).map(e => e.target);\n const wfOpts = ns.filter(n => nextOptions.includes(n.id)).map(e => ({ key: e.id, label: `${e.data.layer.label}(${e.data.layer.key})` })); // next nodes\n if (wfOpts.length > 0) {\n fLayer.fields.push({\n type: 'wf-next', default: '', field: '_wf_next', label: 'Next', required: false, sub_fields: [], text_sub_fields: [], position, wf_options: wfOpts\n });\n }\n fLayer.wf_info = { node_id: pas.id };\n fLayer.wf_position = 1;\n fLayer.wf_uuid = uuid();\n result.push(fLayer);\n });\n } else {\n result.push(fLayer);\n }\n });\n const ll = orgLayerObject(result);\n orig.layers = ll;\n } else {\n orig.layers = layers;\n }\n return orig;\n};\n\nexport {\n getWFNode, getFlowLayer, orgLayerObject,\n addToObject, removeFromObject, reformCondFields, buildInitWF\n};\n","/* eslint-disable no-restricted-globals */\nimport { findIndex, cloneDeep } from 'lodash';\nimport { genUnits, toBool, toNum } from './utils';\nimport organizeSubValues from './collate';\n\n// current generic value, new klass value\nconst reinventGeneric = (generic, klass) => {\n if (!generic || !klass || !generic.properties || !klass.properties_release) {\n return [undefined, undefined];\n }\n const newProps = cloneDeep(klass.properties_release);\n newProps.klass = generic.properties.klass;\n newProps.klass_uuid = klass.uuid;\n Object.keys(newProps.layers).forEach((key) => {\n const newLayer = newProps.layers[key] || {};\n const curFields = (generic.properties.layers[key] && generic.properties.layers[key].fields)\n || [];\n (newLayer.fields || []).forEach((f, idx) => {\n const curIdx = findIndex(curFields, o => o.field === f.field);\n if (curIdx >= 0) {\n const curVal = generic.properties.layers[key].fields[curIdx].value;\n const curType = typeof curVal;\n if (['select', 'text', 'textarea', 'formula-field'].includes(newProps.layers[key].fields[idx].type)) {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? curVal.toString() : '';\n }\n if (newProps.layers[key].fields[idx].type === 'integer') {\n newProps.layers[key].fields[idx].value = (curType === 'undefined' || curType === 'boolean' || isNaN(curVal)) ? 0 : parseInt(curVal, 10);\n }\n if (newProps.layers[key].fields[idx].type === 'checkbox') {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? toBool(curVal) : false;\n }\n if ((newProps.layers[key].fields[idx].type === 'drag_sample' && generic.properties.layers[key].fields[curIdx].type === 'drag_sample')\n || (newProps.layers[key].fields[idx].type === 'drag_molecule' && generic.properties.layers[key].fields[curIdx].type === 'drag_molecule')) {\n if (typeof curVal !== 'undefined') newProps.layers[key].fields[idx].value = curVal;\n }\n if (newProps.layers[key].fields[idx].type === 'system-defined') {\n const units = genUnits(newProps.layers[key].fields[idx].option_layers);\n const vs = units.find(u => u.key === generic.properties.layers[key].fields[curIdx].value_system);\n newProps.layers[key].fields[idx].value_system = (vs && vs.key) || units[0].key;\n newProps.layers[key].fields[idx].value = toNum(curVal);\n }\n if (newProps.layers[key].fields[idx].type === 'input-group') {\n if (generic.properties.layers[key].fields[curIdx].type\n !== newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].value = undefined;\n } else {\n const nSubs = newProps.layers[key].fields[idx].sub_fields || [];\n const cSubs = generic.properties.layers[key].fields[curIdx].sub_fields || [];\n const exSubs = [];\n if (nSubs.length < 1) {\n newProps.layers[key].fields[idx].value = undefined;\n } else {\n nSubs.forEach((nSub) => {\n const hitSub = cSubs.find(c => c.id === nSub.id) || {};\n if (nSub.type === 'label') { exSubs.push(nSub); }\n if (nSub.type === 'text') {\n if (hitSub.type === 'label') {\n exSubs.push(nSub);\n } else { exSubs.push({ ...nSub, value: (hitSub.value || '').toString() }); }\n }\n if (['number', 'system-defined'].includes(nSub.type)) {\n const nvl = (typeof hitSub.value === 'undefined' || hitSub.value == null || hitSub.value.length === 0) ? '' : toNum(hitSub.value);\n if (nSub.option_layers === hitSub.option_layers) {\n exSubs.push({ ...nSub, value: nvl, value_system: hitSub.value_system });\n } else {\n exSubs.push({ ...nSub, value: nvl });\n }\n }\n });\n }\n newProps.layers[key].fields[idx].sub_fields = exSubs;\n }\n }\n if (newProps.layers[key].fields[idx].type === 'upload') {\n if (generic.properties.layers[key].fields[curIdx].type\n === newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].value = generic.properties.layers[key].fields[curIdx].value;\n } else {\n newProps.layers[key].fields[idx].value = {};\n }\n }\n if (newProps.layers[key].fields[idx].type === 'table') {\n if (generic.properties.layers[key].fields[curIdx].type\n !== newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].sub_values = [];\n } else {\n newProps.layers[key].fields[idx].sub_values = organizeSubValues(\n newProps.layers[key].fields[idx],\n generic.properties.layers[key].fields[curIdx]\n );\n }\n }\n }\n });\n });\n return [generic.properties, newProps];\n};\n\nexport default reinventGeneric;\n","import { useEffect, useReducer, useRef } from 'react';\n\nconst useReducerWithCallback = (reducer, initialState, initializer) => {\n const callbackRef = useRef();\n const [state, dispatch] = useReducer(reducer, initialState, initializer);\n\n useEffect(() => {\n if (callbackRef.current) {\n callbackRef.current(state);\n callbackRef.current = null;\n }\n }, [state]);\n\n const customDispatch = (action, callback) => {\n callbackRef.current = callback;\n dispatch(action);\n };\n\n return [state, customDispatch];\n};\n\nexport default useReducerWithCallback;\n","import React from 'react';\n// import PropTypes from 'prop-types';\n// import { Button, OverlayTrigger, Tooltip, Popover, ControlLabel } from 'react-bootstrap';\n// import uuid from 'uuid';\nimport { v4 as uuid } from 'uuid';\nimport { findIndex, findKey, cloneDeep } from 'lodash';\n// import NotificationActions from '../../components/actions/NotificationActions';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheckCircle } from '@fortawesome/free-regular-svg-icons';\nimport SystemUnits from '../../data/SystemUnits';\nimport Attachment from '../models/Attachment';\n\nconst KlzIcon = (klz, klzSty) => (<span className={klz} style={klzSty} />);\n\n// move from GenericElCommon.js > UploadInputChange\nconst uploadFiles = (properties, event, field, layer) => {\n const files = [];\n const fieldObj = properties.layers[`${layer}`].fields.find(e => e.field === field) || {};\n const value = fieldObj.value || {};\n switch (event.action) {\n case 'l': {\n const valIdx = findIndex((value.files || []), o => o.uid === event.uid);\n const label = event && event.val && event.val.target && event.val.target.value;\n if (value.files[valIdx] && label) value.files[valIdx].label = label;\n break;\n }\n case 'f': {\n (event.val || []).forEach((file) => {\n const uid = uuid();\n if (typeof value.files === 'undefined' || value.files === null) value.files = [];\n value.files.push({ uid, filename: file.name });\n files.push({ uid, filename: file.name, file: Attachment.fromFile(file) });\n });\n break;\n }\n case 'd': {\n const valIdx = findIndex((value.files || []), o => o.uid === event.uid);\n if (valIdx >= 0 && value.files && value.files.length > 0) value.files.splice(valIdx, 1);\n return [value, files, event.uid];\n }\n default:\n console.log(event);\n }\n return [value, files];\n};\n\n// move from GenPropertiesLayer.js\nconst showProperties = (fObj, layers) => {\n let showField = true;\n if (fObj && fObj.cond_fields && fObj.cond_fields.length > 0) {\n showField = false;\n for (let i = 0; i < fObj.cond_fields.length; i += 1) {\n const cond = fObj.cond_fields[i] || {};\n const { layer, field, value } = cond;\n if (field && field !== '') {\n const fd = ((layers[layer] || {}).fields || []).find(f => f.field === field) || {};\n if (fd.type === 'checkbox' && ((['false', 'no', 'f', '0'].includes((value || '').trim().toLowerCase()) && (typeof (fd && fd.value) === 'undefined' || fd.value === false))\n || (['true', 'yes', 't', '1'].includes((value || '').trim().toLowerCase()) && (typeof (fd && fd.value) !== 'undefined' && fd.value === true)))) {\n showField = true;\n break;\n } else if (['text', 'select'].includes(fd && fd.type) && (typeof (fd && fd.value) !== 'undefined' && ((fd && fd.value) || '').trim() === (value || '').trim())) {\n showField = true;\n break;\n }\n }\n }\n }\n return showField;\n};\n\nclass GenericDummy {\n constructor() {\n this.type = 'dummy';\n this.field = uuid();\n this.position = 100;\n this.label = '';\n this.default = '';\n this.required = false;\n }\n}\n\nconst inputEventVal = (event, type) => {\n if (type === 'select') {\n return event ? event.value : null;\n } if (type.startsWith('drag')) {\n return event;\n } if (type === 'checkbox') {\n return event.target.checked;\n } if (type === 'formula-field') {\n if (event.target) {\n return event.target.value;\n }\n return event;\n }\n return event.target && event.target.value;\n};\n\nconst absOlsTermId = val => (val || '').split('|')[0].trim();\nconst absOlsTermLabel = val => val.replace(absOlsTermId(val), '').replace('|', '').trim();\nconst toNum = val => {\n const parse = Number((val || ''));\n return Number.isNaN(parse) ? 0 : parse;\n};\n\nconst genUnitSup = val => {\n if (typeof val === 'undefined' || val === null) return '';\n const vals = val.match(/<\\s*(\\w+\\b)(?:(?!<\\s*\\/\\s*\\1\\b)[\\s\\S])*<\\s*\\/\\s*\\1\\s*>|[^<]+/g);\n const reV = vals.map(v => {\n const supVal = v.match(/<sup[^>]*>([^<]+)<\\/sup>/);\n if (supVal) return <sup key={uuid()}>{supVal[1]}</sup>;\n const subVal = v.match(/<sub[^>]*>([^<]+)<\\/sub>/);\n if (subVal) return <sub key={uuid()}>{subVal[1]}</sub>;\n return v;\n });\n return <span>{reV}</span>;\n};\n\nconst toBool = val => {\n const valLower = String(val).toLowerCase();\n return !(!valLower || valLower === 'false' || valLower === '0');\n};\n\nconst genUnitsSystem = () => (SystemUnits.SYSTEM_UNITS || {}).fields || [];\n\nconst genUnits = field => (genUnitsSystem().find(u => u.field === field) || {}).units || [];\n\nconst genUnit = (field, key) => {\n const units = genUnits(field);\n return units.find(u => u.key === key) || {};\n};\n\nconst reUnit = (unitsSystem, optionLayers) => {\n const uniFileds = (unitsSystem.fields || []);\n const uniObj = uniFileds.find(fiel => fiel.field === optionLayers);\n const defaultUnit = ((uniObj && uniObj.field) || '');\n const preUnit = uniFileds.length > 0 ? uniFileds[0].field : '';\n return defaultUnit === '' ? preUnit : defaultUnit;\n};\n\nconst convertTemp = (key, val) => {\n switch (key) {\n case 'F':\n return ((parseFloat(val) * 1.8) + 32).toFixed(2);\n case 'K':\n return (((parseFloat(val) + 459.67) * 5) / 9).toFixed(2);\n case 'C':\n return (parseFloat(val) - 273.15).toFixed(2);\n default:\n return val;\n }\n};\n\nconst unitConvToBase = (field = {}) => {\n const units = genUnits(field.option_layers);\n if (units.length <= 1) {\n return field.value;\n }\n const idx = findIndex(units, u => u.key === field.value_system);\n if (idx <= 0) return field.value;\n return ((field.value * units[0].nm) / ((units[idx] && units[idx].nm) || 1) || 0);\n};\n\nconst unitConversion = (field, key, val) => {\n if (typeof val === 'undefined' || val == null || val === 0 || val === '') {\n return val;\n }\n if (field === 'temperature') {\n return convertTemp(key, val);\n }\n const units = genUnits(field);\n if (units.length <= 1) {\n return val;\n }\n const idx = findIndex(units, u => u.key === key);\n if (idx === -1) {\n return val;\n }\n const pIdx = idx === 0 ? (units.length) : idx;\n const pre = (units[pIdx - 1] && units[pIdx - 1].nm) || 1;\n const curr = (units[idx] && units[idx].nm) || 1;\n return parseFloat((parseFloat(val) * (curr / pre)).toFixed(5));\n};\n\n// const notification = props =>\n// (\n// NotificationActions.add({\n// title: props.title,\n// message: props.msg,\n// level: props.lvl,\n// position: 'tc',\n// dismissible: 'button',\n// autoDismiss: props.autoDismiss || 5,\n// uid: props.uid || uuid.v4()\n// })\n// );\n\n// const validateLayerInput = (layer, act = 'new') => {\n// if (layer.key === '') {\n// notification({ title: `Layer [${layer.key}]`, lvl: 'error', msg: 'Please input Name.' });\n// return false;\n// }\n// if (act === 'new' && !(/^[a-z][a-z_]+[a-z]$/g.test(layer.key))) {\n// notification({ title: `Layer [${layer.key}]`, lvl: 'error', msg: 'This Name is invalid, please try a different one.' });\n// return false;\n// }\n// if (parseInt((layer.cols || 1), 10) < 1) {\n// notification({ title: `Layer [${layer.key}]`, lvl: 'error', msg: 'The minimun of Column per Row is 1, please input a different one.' });\n// return false;\n// }\n// return true;\n// };\n\n// const validateSelectList = (selectName, element) => {\n// if (selectName === '') {\n// notification({ title: `Select List [${selectName}]`, lvl: 'error', msg: 'Please input Name.' });\n// return false;\n// }\n// if (!(/^[a-z][a-z_]+[a-z]$/g.test(selectName))) {\n// notification({ title: `Select List [${selectName}]`, lvl: 'error', msg: 'This Name is invalid, please try a different one.' });\n// return false;\n// }\n// if (element.properties_template.select_options[`${selectName}`]) {\n// notification({ title: `Select List [${selectName}]`, lvl: 'error', msg: 'This name of Select List is already taken. Please choose another one.' });\n// return false;\n// }\n// return true;\n// };\n\nconst clsInputGroup = el => {\n if (!el) return el;\n const genericEl = el;\n const { layers } = genericEl.properties_template;\n const keys = Object.keys(layers);\n keys.forEach(key => {\n const layer = layers[key];\n layer.fields.filter(e => e.type === 'input-group')\n .forEach(e => {\n e.sub_fields.forEach(s => {\n const ff = s;\n if (ff.type === 'text') { ff.value = ''; }\n });\n });\n });\n return genericEl;\n};\n\nconst molOptions = [{ label: 'InChiKey', value: 'inchikey' }, { label: 'SMILES', value: 'smiles' }, { label: 'IUPAC', value: 'iupac' }, { label: 'Mass', value: 'molecular_weight' }];\nconst samOptions = [{ label: 'Name', value: 'name' }, { label: 'Ext. Label', value: 'external_label' }, { label: 'Mass', value: 'molecular_weight' }];\n\nconst findCurrentNode = (_srcKey, _layerVals) => {\n const result = [];\n const fs = _layerVals.filter(o => o.wf && o.wf_info && o.wf_info.source_layer === _srcKey);\n if (fs.length > 1) {\n fs.forEach(o => {\n findCurrentNode(o, _layerVals);\n });\n } else if (fs.length === 1) {\n return findCurrentNode(fs[0].key, _layerVals);\n }\n return [_srcKey];\n};\n\nconst decorateNode = (_elements, _layers) => {\n if (!_elements || _elements.length < 1) return _elements;\n const m = {\n background: '#D6D5E6',\n color: '#333',\n // border: '1px solid #222138',\n // width: 180,\n };\n const elements = _elements;\n elements.map(e => {\n if (['input', 'output'].includes(e.type) || e.animated) return e;\n const lk = e.data.lKey;\n const fk = findKey(_layers, o => o.wf && (o.key === lk || o.key.startsWith(`${lk}.`)));\n if (fk) {\n e.style = m;\n return e;\n }\n return e;\n });\n return elements;\n};\n\nconst conFlowEls = props => {\n const { properties, properties_release } = props;\n const { flow, layers } = properties_release;\n const deep = cloneDeep(flow);\n const els = (deep && deep.elements) || [];\n els.map(d => {\n if (['default'].includes(d.type) && d.data) {\n const { lKey } = d.data;\n const fk = findKey((properties.layers || {}), o => o.wf && (o.key === lKey || o.key.startsWith(`${lKey}.`)));\n const chk = fk ? (<div style={{ position: 'absolute', top: '0px', right: '2px', color: 'green', zIndex: '100' }}><FontAwesomeIcon icon={faCheckCircle} /></div>) : null;\n const layer = layers[lKey] || {};\n const ll = (\n <div>\n {chk}\n <div style={{ borderWidth: '0px 0px 1px 0px', borderColor: 'black', borderStyle: 'solid' }}><b>{layer.label}</b></div>\n <div>\n (\n {layer.key}\n )\n </div>\n </div>\n );\n d.data = { label: ll, lKey: layer.key };\n }\n return d;\n });\n return els;\n};\n\nconst storeFlow = props => {\n const { elements } = props;\n const els = cloneDeep(elements);\n els.map(d => {\n if (['default'].includes(d.type) && d.data) {\n delete d.data.label;\n delete d.data.layer;\n }\n return d;\n });\n return els;\n};\n\nconst flowDefault = [\n {\n id: '1', type: 'input', data: { label: 'Start' }, position: { x: 250, y: 15 }\n },\n {\n id: '2', type: 'output', data: { label: 'End' }, position: { x: 250, y: 255 }\n }\n];\n\nconst isLayerInWF = (_element, _layerKey) => {\n const { flow } = _element.properties_template;\n const finds = ((flow || {}).elements || []).filter(e => e.type === 'default' && (e.data || {}).lKey === _layerKey);\n return (finds.length > 0);\n};\n\n// const validateLayerDeletion = (_element, _delKey) => {\n// if (isLayerInWF(_element, _delKey)) {\n// notification({ title: `Layer [${_delKey}]`, lvl: 'warning', msg: `This layer [${_delKey}] can not be removed because it is currently used in workflow.` });\n// return false;\n// }\n// return true;\n// };\n\n// const validateLayerUpdation = (_element, _updates) => {\n// const { key, wf } = _updates;\n// if (isLayerInWF(_element, key)) {\n// if (!wf) {\n// notification({ title: `Layer [${key}]`, lvl: 'warning', msg: `Can not change the attribute 'used in Workflow?' because this layer [${key}] is currently used in workflow.` });\n// return false;\n// }\n// }\n// const { layers } = _element.properties_template;\n// if (wf && layers[key] && (layers[key].cond_fields || []).length > 0) {\n// notification({ title: `Layer [${key}]`, lvl: 'warning', msg: 'Can not use in Workflow because the Layer Restriction has been set.' });\n// return false;\n// }\n// return true;\n// };\n\nconst swapAryEls = (_ary, idx1, idx2) => {\n const ary = _ary;\n const temp = ary[idx1];\n ary[idx1] = ary[idx2];\n ary[idx2] = temp;\n return ary;\n};\n\n// re-fetch workflow and set to state of store, should be out-of this project\n// const renderFlowModal = (generic, isToggle) => {\n// const segmentKlasses = (UserStore.getState() && UserStore.getState().segmentKlasses) || [];\n// let shortLabel = generic.short_label;\n// if (!shortLabel) {\n// shortLabel = segmentKlasses.filter(s => s.id === generic.segment_klass_id);\n// shortLabel = shortLabel.length > 0 ? shortLabel[0].label : '';\n// }\n// const params = {\n// properties_release: cloneDeep(generic.properties_release) || {},\n// properties: cloneDeep(generic.properties) || {},\n// shortLabel,\n// toggle: isToggle\n// };\n// UIActions.rerenderGenericWorkflow(params);\n// };\n\nconst downloadFile = file => {\n const { contents, name } = file;\n const link = document.createElement('a');\n link.download = name;\n link.href = contents;\n const event = new window.MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true\n });\n link.dispatchEvent(event);\n};\n\nexport {\n GenericDummy,\n // validateLayerInput,\n // validateSelectList,\n // notification,\n genUnitsSystem, genUnits, genUnit,\n unitConvToBase, unitConversion, toBool, toNum, genUnitSup, absOlsTermId, absOlsTermLabel, reUnit,\n clsInputGroup, inputEventVal, molOptions, samOptions, conFlowEls, storeFlow, flowDefault,\n // validateLayerUpdation,\n // validateLayerDeletion,\n swapAryEls, decorateNode, showProperties, downloadFile, uploadFiles, KlzIcon\n};\n","export default {\n SYSTEM_UNITS:\n {\n fields: [\n {\n type: 'numeric',\n field: 'acceleration',\n label: 'Acceleration',\n default: '',\n position: 10,\n placeholder: 'acceleration',\n units: [\n { key: 'mm_s2', label: 'mm/s<sup>2</sup>' }\n ]\n },\n {\n type: 'numeric',\n field: 'agitation',\n label: 'Agitation',\n default: '',\n position: 20,\n placeholder: 'agitation',\n units: [\n { key: 'rpm', label: 'rpm' }\n ]\n },\n {\n type: 'numeric',\n field: 'amount_enzyme',\n label: 'Amount enzyme as nmol/min',\n default: '',\n position: 30,\n placeholder: 'amount enzyme as nmol/min',\n units: [\n { key: 'u', label: 'U', nm: 1 },\n { key: 'mu', label: 'mU', nm: 1000 }\n ]\n },\n {\n type: 'numeric',\n field: 'molarity',\n label: 'Chem. concentration (Molarity)',\n default: '',\n position: 40,\n placeholder: 'molarity',\n units: [\n { key: 'mol_l', label: 'mol/L (M)', nm: 1 },\n { key: 'mmol_l', label: 'mmol/L (mM)', nm: 1000 },\n { key: 'nmol_l', label: 'nmol/L (nM)', nm: 1000000 },\n { key: 'pmol_l', label: 'pmol/L (pM)', nm: 1000000000 }\n ]\n },\n {\n type: 'numeric',\n field: 'chem_distances',\n label: 'Chem. distances',\n default: '',\n position: 50,\n placeholder: 'Chem. distances',\n units: [\n { key: 'angstrom', label: 'Å' }\n ]\n },\n {\n type: 'numeric',\n field: 'concentration',\n label: 'Concentration',\n default: '',\n position: 60,\n placeholder: 'concentration',\n units: [\n { key: 'ng_l', label: 'ng/L', nm: 1000000 },\n { key: 'mg_l', label: 'mg/L', nm: 1000 },\n { key: 'g_l', label: 'g/L', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'conductivity',\n label: 'Conductivity',\n default: '',\n position: 66,\n placeholder: 'conductivity',\n units: [\n { key: 's_m', label: 'S/m', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'current',\n label: 'Current',\n default: '',\n position: 60,\n placeholder: 'Current',\n units: [\n { key: 'A', label: 'A', nm: 1 },\n { key: 'mA', label: 'mA', nm: 1000 },\n { key: 'uA', label: 'µA', nm: 1000000 },\n { key: 'nA', label: 'nA', nm: 1000000000 }\n ]\n },\n {\n type: 'numeric',\n field: 'degree',\n label: 'Degree',\n default: '',\n position: 70,\n placeholder: 'degree',\n units: [\n { key: 'degree', label: '°' }\n ]\n },\n {\n type: 'numeric',\n field: 'density',\n label: 'Density',\n default: '',\n position: 75,\n placeholder: 'density',\n units: [\n { key: 'g_cm3', label: 'g/cm<sup>3</sup>', nm: 1 },\n { key: 'kg_l', label: 'kg/l', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'duration',\n label: 'Duration',\n default: '',\n position: 80,\n placeholder: 'duration',\n units: [\n { key: 'd', label: 'd', nm: 1 },\n { key: 'h', label: 'h', nm: 24 },\n { key: 'min', label: 'm', nm: 1440 },\n { key: 's', label: 's', nm: 86400 }\n ]\n },\n {\n type: 'numeric',\n field: 'elastic_modulus',\n label: 'Elastic modulus',\n default: '',\n position: 86,\n placeholder: 'Elastic modulus',\n units: [\n { key: 'm_pa', label: 'MPa', nm: 1 },\n { key: 'k_pa', label: 'kPa', nm: 1000 },\n { key: 'pa', label: 'Pa', nm: 1000000 }\n ]\n },\n {\n type: 'numeric',\n field: 'electric_field',\n label: 'Electric field',\n default: '',\n position: 86,\n placeholder: 'Electric field',\n units: [\n { key: 'v_m', label: 'V/m', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'energy',\n label: 'Energy',\n default: '',\n position: 88,\n placeholder: 'Joule',\n units: [\n { key: 'j', label: 'J', nm: 1000 },\n { key: 'k_j', label: 'kJ', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'enzyme_activity',\n label: 'Enzyme activity',\n default: '',\n position: 90,\n placeholder: 'Enzyme activity',\n units: [\n { key: 'u_l', label: 'U/L', nm: 1 },\n { key: 'u_ml', label: 'U/mL', nm: 1000 }\n ]\n },\n {\n type: 'numeric',\n field: 'flow_rate',\n label: 'Flow rate',\n default: '',\n position: 100,\n placeholder: 'Flow rate',\n units: [\n { key: 'ul_min', label: 'µl/min', nm: 1000000 },\n { key: 'ml_min', label: 'ml/min', nm: 1000 },\n { key: 'l_m', label: 'l/m', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'frequency',\n label: 'Frequency',\n default: '',\n position: 100,\n placeholder: 'frequency',\n units: [\n { key: 'hz', label: 'Hz', nm: 1000 },\n { key: 'khz', label: 'kHz', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'heating_rate',\n label: 'Heating rate',\n default: '',\n position: 106,\n placeholder: 'heating rate',\n units: [\n { key: 'k_min', label: 'K/min', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'length',\n label: 'Length',\n default: '',\n position: 110,\n placeholder: 'length',\n units: [\n { key: 'pm', label: 'pm', nm: 100000 },\n { key: 'nm', label: 'nm', nm: 10000 },\n { key: 'mm', label: 'mm', nm: 1000 },\n { key: 'cm', label: 'cm', nm: 100 },\n { key: 'm', label: 'm', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'magnetic_flux_density',\n label: 'Magnetic flux density/inductivity',\n default: '',\n position: 120,\n placeholder: '',\n units: [\n { key: 'T', label: 'T', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'mass',\n label: 'Mass',\n default: '',\n position: 120,\n placeholder: 'mass',\n units: [\n { key: 'g', label: 'g', nm: 1 },\n { key: 'mg', label: 'mg', nm: 1000 },\n { key: 'ug', label: 'µg', nm: 1000000 }\n ]\n },\n {\n type: 'numeric',\n field: 'mass_molecule',\n label: 'Mass of molecule',\n default: '',\n position: 126,\n placeholder: 'mass of molecule',\n units: [\n { key: 'dalton', label: 'D', nm: 1000 },\n { key: 'kilo_dalton', label: 'kD', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'molecular_weight',\n label: 'Molecular weight',\n default: '',\n position: 130,\n placeholder: 'Molecular weight',\n units: [\n { key: 'g_mol', label: 'g/mol' }\n ]\n },\n {\n type: 'numeric',\n field: 'percentage',\n label: 'Percentage',\n default: '',\n position: 136,\n placeholder: 'percentage',\n units: [\n { key: 'p', label: '%', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'pressure',\n label: 'Pressure',\n default: '',\n position: 140,\n placeholder: 'pressure',\n units: [\n { key: 'atm', label: 'atm', nm: 1 },\n { key: 'pa', label: 'Pa', nm: 101325 },\n { key: 'torr', label: 'Torr', nm: 760 }\n ]\n },\n {\n type: 'numeric',\n field: 'reaction_rate',\n label: 'Reaction rate',\n default: '',\n position: 150,\n placeholder: 'Reaction rate',\n units: [\n { key: 'mol_lmin', label: 'mol/Lmin', nm: 1 },\n { key: 'mol_lsec', label: 'mol/Ls', nm: 60 }\n ]\n },\n {\n type: 'numeric',\n field: 'specific_volume',\n label: 'Specific Volume',\n default: '',\n position: 160,\n placeholder: 'Specific Volume',\n units: [\n { key: 'cm3_g', label: 'cm<sup>3</sup>/g', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'speed',\n label: 'Speed',\n default: '',\n position: 165,\n placeholder: 'speed',\n units: [\n { key: 'cm_s', label: 'cm/s', nm: 1 },\n { key: 'mm_s', label: 'mm/s', nm: 10 },\n { key: 'cm_h', label: 'cm/h', nm: 3600 },\n { key: 'mm_h', label: 'mm/h', nm: 36000 }\n ]\n },\n {\n type: 'numeric',\n field: 'surface',\n label: 'Surface',\n default: '',\n position: 170,\n placeholder: 'surface',\n units: [\n { key: 'a_2', label: 'A<sup>2</sup>' },\n { key: 'mm_2', label: 'mm<sup>2</sup>' },\n { key: 'cm_2', label: 'cm<sup>2</sup>' }\n ]\n },\n {\n type: 'numeric',\n field: 'temperature',\n label: 'Temperature',\n default: '',\n position: 180,\n placeholder: 'temperature',\n units: [\n { key: 'C', label: '°C' },\n { key: 'F', label: '°F' },\n { key: 'K', label: '°K' }\n ]\n },\n {\n type: 'numeric',\n field: 'turnover_number',\n label: 'Turnover number',\n default: '',\n position: 190,\n placeholder: 'Turnover number',\n units: [\n { key: '1_s', label: '1/s' }\n ]\n },\n {\n type: 'numeric',\n field: 'viscosity',\n label: 'Dynamic Viscosity',\n default: '',\n position: 200,\n placeholder: 'Dynamic Viscosity',\n units: [\n { key: 'pas', label: 'Pas', nm: 1 },\n { key: 'mpas', label: 'mPas', nm: 1000 }\n ]\n },\n {\n type: 'numeric',\n field: 'kinematic_viscosity',\n label: 'Kinematic Viscosity',\n default: '',\n position: 205,\n placeholder: 'Kinematic Viscosity',\n units: [\n { key: 'm2_s', label: 'm<sup>2</sup>/s', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'voltage',\n label: 'Voltage',\n default: '',\n position: 200,\n placeholder: 'voltage',\n units: [\n { key: 'mv', label: 'mV', nm: 1000 },\n { key: 'v', label: 'V', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'volumes',\n label: 'Volumes',\n default: '',\n position: 210,\n placeholder: 'volume',\n units: [\n { key: 'l', label: 'l', nm: 1 },\n { key: 'ml', label: 'ml', nm: 1000 },\n { key: 'ul', label: 'µl', nm: 1000000 },\n { key: 'nl', label: 'nl', nm: 1000000000 }\n ]\n }\n ]\n }\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".gu_sp_form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:5px}.gu_sp_form .gu_sp_label{width:100%;margin:0px 5px;text-align:left;font-weight:bold}.gu_sp_form .gu_sp_column{width:100%;margin-top:0px;margin-bottom:0px}.gu_button_right{float:right;right:0px;z-index:1;margin-left:2px}.bg-bs-primary{background-color:#337ab7 !important}.bg-bs-warning{background-color:#f0ad4e !important}.icon_generic_nav{font-family:FontAwesome,Helvetica,Arial,sans-serif !important}.field_required{background-color:#ffffe0}.template_panel_heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:5px 10px 5px 10px !important}.panel_generic_properties{border-left:unset !important;border-right:unset !important;border-bottom:unset !important;line-height:26px !important;-webkit-box-shadow:unset !important;box-shadow:unset !important;margin-bottom:unset !important}.panel_generic_properties .panel-title{font-weight:bold}.panel_generic_properties .default_style{font-size:14px;line-height:normal}.panel_generic_properties_body{padding-left:unset !important;padding-right:unset !important}.panel_generic_heading_slim{padding:5px 0px !important}.panel_generic_heading{font-weight:bold;padding:10px 0px !important}.panel_generic_heading_bu{font-weight:bold;padding:10px 0px !important;text-decoration:underline}.panel_generic_heading_bui{font-weight:bold;padding:10px 0px !important;text-decoration:underline;font-style:italic}.text_generic_properties .dummy{background-color:unset !important;border:unset !important;-webkit-box-shadow:unset !important;box-shadow:unset !important}.text_generic_properties .editable{background-color:#fff}.text_generic_properties .readonly{background-color:#ddd}.text_generic_properties .required{background-color:#ffffe0}.text_generic_properties input:invalid{border:1px solid #f08080}.select_generic_properties_editable .Select-control{background-color:#fff}.select_generic_properties_readonly .Select-control{background-color:#ddd}.select_generic_properties_required .Select-control{background-color:#ffffe0}.drop_generic_properties{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.drop_generic_properties .target{height:100%;width:100%;margin:0px 10px 0px 10px;display:inline-block}.drop_generic_properties .target .indicator{font-size:x-large}.drop_generic_properties .target .s-img{display:-webkit-box;display:-ms-flexbox;display:flex}.drop_generic_properties .target .s-img img{height:4vh;width:4vw}.drop_generic_properties .target .data{font-size:medium;line-height:normal !important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;-ms-flex-item-align:center;align-self:center;width:100%}.drop_generic_properties .target.can-drop .indicator{border:2px dashed #d3d3d3;color:#d3d3d3}.drop_generic_properties .target.can-drop .data{border:2px dashed #d3d3d3;color:#d3d3d3}.drop_generic_properties .target.is-over .indicator{border:2px dashed #31708f;color:#31708f}.drop_generic_properties .target.is-over .data{border:2px dashed #31708f;color:#31708f}.drop_generic_properties .btn_del{float:right;-ms-flex-item-align:center;align-self:center}.drop_generic_properties .sample_radios{font-size:xx-small;line-height:2;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding-right:5px}.generic_criteria_modal{display:block;padding-left:0px;top:45% !important;width:75vw !important}.search_criteria_mof .modal_body{max-height:70vh;height:70vh;overflow:auto}.search_criteria_mof .btn_footer{margin-top:10px}.input-form .input-group-addon{font-weight:bold}.input-form .help{font-size:80%;margin:6px;font-style:italic}.g-ds-note{color:#000 !important;float:left !important;text-align:left !important;font-weight:lighter !important}.g-ds-note .g-ds-title{text-decoration:underline;font-weight:700;line-height:1.5}.g_input_group{padding:6px 6px !important}.g_input_group_label{background-color:#d3d3d3 !important;width:unset !important;white-space:nowrap !important;padding:6px 6px !important}.g_col_w{width:20% !important}.generic_grid{display:block}.generic_grid>div{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.generic_grid_header{width:100%;margin:6px 0px 6px 6px;text-align:center;line-height:15px;-ms-flex-item-align:center;align-self:center;font-weight:bolder;font-family:\\\"Franklin Gothic Medium\\\",\\\"Arial Narrow\\\",Arial,sans-serif}.generic_grid_row{width:100%;margin:6px 0px 6px 6px;text-align:center;line-height:15px;-ms-flex-item-align:center;align-self:center}.generic_grid_row_left{text-align:left}.generic_version{background-color:#777;display:inline-block;padding:.35em .65em;font-size:.75em;text-align:center;vertical-align:baseline;white-space:nowrap;border-radius:.5rem;color:#fff;background-color:unset;color:blue}.generic_version_draft{background-color:#777;display:inline-block;padding:.35em .65em;font-size:.75em;text-align:center;vertical-align:baseline;white-space:nowrap;border-radius:.5rem;color:#fff;background-color:unset;color:#000}.generic_version_block{display:block;padding:6px 10px;margin:10px;border-radius:10px;border:thin solid #d3d3d3;font-size:1.2em}.generic_version_block>div{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.generic_block_select{border-width:medium;border-style:groove}.generic_panel_none{border-color:#ddd !important}.generic_panel_none>.panel-heading{background-color:#fff !important}.generic_tbl_chks{line-height:1em;margin:0px -10px !important}.generic_tbl_chks>label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.generic_tbl_chks>label>input{margin-top:0px}.generic_btn_default{background-color:#777 !important;color:#fff !important}.drop_generic_table_wrap .target .s-img{position:relative;border:1px solid rgba(0,0,0,0)}.drop_generic_table_wrap .target .s-img img{height:4vw;width:4vw}.drop_generic_table_wrap .target .s-img .del_btn{position:absolute;top:0%;left:0%}.drop_generic_table_wrap .target .s-img .link_btn{position:absolute;bottom:0%;left:0%}.drop_generic_table_wrap .target .s-img:hover{border:1px solid #0dcaf0}.drop_generic_table_wrap .target .data{font-size:unset;white-space:unset;text-align:left}.drop_generic_table_wrap .target.can-drop .s-img{border:2px dashed #d3d3d3;color:#d3d3d3}.drop_generic_table_wrap .target.is-over .s-img{border:2px dashed #31708f;color:#31708f}.generic_grid_img{border:#ddd solid thin}.generic_sam_options{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:left;font-size:x-small}.generic_sam_options .radio{margin-top:unset;margin-bottom:unset}.generic_files{padding:0px 5px !important}.generic_files>div>div>div{text-align:left;-ms-flex-item-align:center;align-self:center}.generic_files>div>div>div .form-group{margin-bottom:0px}.grid-btn-none{font-size:large;color:#fff}.generic_grid_dnd .dnd{cursor:move}.generic_grid_dnd .dnd-btn{font-size:large}.generic_grid_dnd .dnd-btn span{cursor:move}.generic_grid_dnd.can-drop{border:2px dashed #d3d3d3;color:#d3d3d3}.generic_grid_dnd.is-over{border:2px dashed #31708f;color:#31708f}.generic_grid_dnd.is-dragging{opacity:.2}.generic_layer_modal>.layer_header{background-color:#fff;color:#337ab7;font-size:20px}.generic_layer_modal>.panel-body{background-color:#d9edf7}.generic_layer_column{width:100%;margin:6px 0px 6px 6px;text-align:center;line-height:15px;-ms-flex-item-align:center;align-self:center;border:1px solid #337ab7;background-color:#fff;margin:5px;padding:10px;color:#337ab7;border-radius:4px}.generic_layer_column>div:first-child{display:-webkit-box;display:-ms-flexbox;display:flex}.generic_layer_column>div:first-child>button{float:right;border-radius:50%}.generic_layer_column>div:first-child>div{width:100%}.generic_wf_modal{max-height:100%;overflow:auto}.generic_wf_modal>div:first-child{height:85vh;width:100%}.flow_view_draggable{z-index:100;position:absolute;top:12%;left:10%}.flow_view_draggable .panel-body{padding:5px}.flow_view_draggable .panel-body>.body_bg{max-height:100%;overflow:auto;background-color:#d9edf7}.flow_view_draggable .panel-body>.body_bg>.body_canvas{resize:both;overflow:auto;height:70vh;width:40vw;min-height:250px;min-width:300px;max-width:1600px;max-height:840px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/asserts/main.css\"],\"names\":[],\"mappings\":\"AAAA,YACE,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,kBAAA,CACA,kBAAA,CAAA,cAAA,CACA,iBAAA,CAEF,yBACE,UAAA,CACA,cAAA,CACA,eAAA,CACA,gBAAA,CAEF,0BACE,UAAA,CACA,cAAA,CACA,iBAAA,CAGF,iBACE,WAAA,CACA,SAAA,CACA,SAAA,CACA,eAAA,CAGF,eACE,mCAAA,CAGF,eACE,mCAAA,CAGF,kBACE,6DAAA,CAGF,gBACE,wBAAA,CAGF,wBACE,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,6BAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,kBAAA,CACA,oCAAA,CAGF,0BACE,4BAAA,CACA,6BAAA,CACA,8BAAA,CACA,2BAAA,CACA,mCAAA,CAAA,2BAAA,CACA,8BAAA,CAEF,uCACE,gBAAA,CAEF,yCACE,cAAA,CACA,kBAAA,CAGF,+BACE,6BAAA,CACA,8BAAA,CAGF,4BACE,0BAAA,CAGF,uBACE,gBAAA,CACA,2BAAA,CAGF,0BACE,gBAAA,CACA,2BAAA,CACA,yBAAA,CAGF,2BACE,gBAAA,CACA,2BAAA,CACA,yBAAA,CACA,iBAAA,CAGF,gCACE,iCAAA,CACA,uBAAA,CACA,mCAAA,CAAA,2BAAA,CAEF,mCACE,qBAAA,CAEF,mCACE,qBAAA,CAEF,mCACE,wBAAA,CAEF,uCACE,wBAAA,CAGF,oDACE,qBAAA,CAGF,oDACE,qBAAA,CAGF,oDACE,wBAAA,CAGF,yBACE,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,kBAAA,CAEF,iCACE,WAAA,CACA,UAAA,CACA,wBAAA,CACA,oBAAA,CAEF,4CACE,iBAAA,CAEF,wCACE,mBAAA,CAAA,mBAAA,CAAA,YAAA,CAEF,4CACE,UAAA,CACA,SAAA,CAEF,uCACE,gBAAA,CACA,6BAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,0BAAA,CAAA,iBAAA,CACA,UAAA,CAEF,qDACE,yBAAA,CACA,aAAA,CAEF,gDACE,yBAAA,CACA,aAAA,CAEF,oDACE,yBAAA,CACA,aAAA,CAEF,+CACE,yBAAA,CACA,aAAA,CAEF,kCACE,WAAA,CACA,0BAAA,CAAA,iBAAA,CAEF,wCACE,kBAAA,CACA,aAAA,CACA,0BAAA,CAAA,0BAAA,CAAA,mBAAA,CACA,iBAAA,CAGF,wBACE,aAAA,CACA,gBAAA,CACA,kBAAA,CACA,qBAAA,CAGF,iCACE,eAAA,CACA,WAAA,CACA,aAAA,CAEF,iCACE,eAAA,CAGF,+BACE,gBAAA,CAEF,kBACE,aAAA,CACA,UAAA,CACA,iBAAA,CAGF,WACE,qBAAA,CACA,qBAAA,CACA,0BAAA,CACA,8BAAA,CAEF,uBACE,yBAAA,CACA,eAAA,CACA,eAAA,CAGF,eACE,0BAAA,CAGF,qBACE,mCAAA,CACA,sBAAA,CACA,6BAAA,CACA,0BAAA,CAGF,SACE,oBAAA,CAGF,cACE,aAAA,CAEF,kBACE,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,oBAAA,CAAA,gBAAA,CAGF,qBACE,UAAA,CACA,sBAAA,CACA,iBAAA,CACA,gBAAA,CACA,0BAAA,CAAA,iBAAA,CACA,kBAAA,CACA,oEAAA,CAGF,kBACE,UAAA,CACA,sBAAA,CACA,iBAAA,CACA,gBAAA,CACA,0BAAA,CAAA,iBAAA,CAGF,uBACE,eAAA,CAGF,iBACE,qBAAA,CACA,oBAAA,CACA,mBAAA,CACA,eAAA,CACA,iBAAA,CACA,uBAAA,CACA,kBAAA,CACA,mBAAA,CACA,UAAA,CACA,sBAAA,CACA,UAAA,CAGF,uBACE,qBAAA,CACA,oBAAA,CACA,mBAAA,CACA,eAAA,CACA,iBAAA,CACA,uBAAA,CACA,kBAAA,CACA,mBAAA,CACA,UAAA,CACA,sBAAA,CACA,UAAA,CAGF,uBACE,aAAA,CACA,gBAAA,CACA,WAAA,CACA,kBAAA,CACA,yBAAA,CACA,eAAA,CAEF,2BACE,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,oBAAA,CAAA,gBAAA,CAGF,sBACE,mBAAA,CACA,mBAAA,CAGF,oBACE,4BAAA,CAEF,mCACE,gCAAA,CAGF,kBACE,eAAA,CACA,2BAAA,CAEF,wBACE,0BAAA,CAAA,0BAAA,CAAA,mBAAA,CACA,yBAAA,CAAA,oBAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,kBAAA,CAEF,8BACE,cAAA,CAGF,qBACE,gCAAA,CACA,qBAAA,CAGF,wCACE,iBAAA,CACA,8BAAA,CAEF,4CACE,UAAA,CACA,SAAA,CAEF,iDACE,iBAAA,CACA,MAAA,CACA,OAAA,CAEF,kDACE,iBAAA,CACA,SAAA,CACA,OAAA,CAEF,8CACE,wBAAA,CAEF,uCACE,eAAA,CACA,iBAAA,CACA,eAAA,CAEF,iDACE,yBAAA,CACA,aAAA,CAEF,gDACE,yBAAA,CACA,aAAA,CAGF,kBACE,sBAAA,CAGF,qBACE,mBAAA,CAAA,mBAAA,CAAA,YAAA,CACA,2BAAA,CAAA,4BAAA,CAAA,yBAAA,CAAA,qBAAA,CACA,eAAA,CACA,iBAAA,CAEF,4BACE,gBAAA,CACA,mBAAA,CAGF,eACE,0BAAA,CAEF,2BACE,eAAA,CACA,0BAAA,CAAA,iBAAA,CAEF,uCACE,iBAAA,CAGF,eACE,eAAA,CACA,UAAA,CAGF,uBACE,WAAA,CAEF,2BACE,eAAA,CAEF,gCACE,WAAA,CAEF,2BACE,yBAAA,CACA,aAAA,CAEF,0BACE,yBAAA,CACA,aAAA,CAEF,8BACE,UAAA,CAGF,mCACE,qBAAA,CACA,aAAA,CACA,cAAA,CAEF,iCACE,wBAAA,CAGF,sBACE,UAAA,CACA,sBAAA,CACA,iBAAA,CACA,gBAAA,CACA,0BAAA,CAAA,iBAAA,CACA,wBAAA,CACA,qBAAA,CACA,UAAA,CACA,YAAA,CACA,aAAA,CACA,iBAAA,CAGF,sCACE,mBAAA,CAAA,mBAAA,CAAA,YAAA,CAGF,6CACE,WAAA,CACA,iBAAA,CAGF,0CACE,UAAA,CAGF,kBACE,eAAA,CACA,aAAA,CAGF,kCACE,WAAA,CACA,UAAA,CAGF,qBACE,WAAA,CACA,iBAAA,CACA,OAAA,CACA,QAAA,CAEF,iCACE,WAAA,CAEF,0CACE,eAAA,CACA,aAAA,CACA,wBAAA,CAEF,uDACE,WAAA,CACA,aAAA,CACA,WAAA,CACA,UAAA,CACA,gBAAA,CACA,eAAA,CACA,gBAAA,CACA,gBAAA\",\"sourcesContent\":[\".gu_sp_form {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n margin-bottom: 5px;\\n}\\n.gu_sp_form .gu_sp_label {\\n width: 100%;\\n margin: 0px 5px;\\n text-align: left;\\n font-weight: bold;\\n}\\n.gu_sp_form .gu_sp_column {\\n width: 100%;\\n margin-top: 0px;\\n margin-bottom: 0px;\\n}\\n\\n.gu_button_right {\\n float: right;\\n right: 0px;\\n z-index: 1;\\n margin-left: 2px;\\n}\\n\\n.bg-bs-primary {\\n background-color: #337ab7 !important;\\n}\\n\\n.bg-bs-warning {\\n background-color: #f0ad4e !important;\\n}\\n\\n.icon_generic_nav {\\n font-family: FontAwesome, Helvetica, Arial, sans-serif !important;\\n}\\n\\n.field_required {\\n background-color: lightyellow;\\n}\\n\\n.template_panel_heading {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n padding: 5px 10px 5px 10px !important;\\n}\\n\\n.panel_generic_properties {\\n border-left: unset !important;\\n border-right: unset !important;\\n border-bottom: unset !important;\\n line-height: 26px !important;\\n box-shadow: unset !important;\\n margin-bottom: unset !important;\\n}\\n.panel_generic_properties .panel-title {\\n font-weight: bold;\\n}\\n.panel_generic_properties .default_style {\\n font-size: 14px;\\n line-height: normal;\\n}\\n\\n.panel_generic_properties_body {\\n padding-left: unset !important;\\n padding-right: unset !important;\\n}\\n\\n.panel_generic_heading_slim {\\n padding: 5px 0px !important;\\n}\\n\\n.panel_generic_heading {\\n font-weight: bold;\\n padding: 10px 0px !important;\\n}\\n\\n.panel_generic_heading_bu {\\n font-weight: bold;\\n padding: 10px 0px !important;\\n text-decoration: underline;\\n}\\n\\n.panel_generic_heading_bui {\\n font-weight: bold;\\n padding: 10px 0px !important;\\n text-decoration: underline;\\n font-style: italic;\\n}\\n\\n.text_generic_properties .dummy {\\n background-color: unset !important;\\n border: unset !important;\\n box-shadow: unset !important;\\n}\\n.text_generic_properties .editable {\\n background-color: #fff;\\n}\\n.text_generic_properties .readonly {\\n background-color: #ddd;\\n}\\n.text_generic_properties .required {\\n background-color: lightyellow;\\n}\\n.text_generic_properties input:invalid {\\n border: 1px solid lightcoral;\\n}\\n\\n.select_generic_properties_editable .Select-control {\\n background-color: #fff;\\n}\\n\\n.select_generic_properties_readonly .Select-control {\\n background-color: #ddd;\\n}\\n\\n.select_generic_properties_required .Select-control {\\n background-color: lightyellow;\\n}\\n\\n.drop_generic_properties {\\n display: flex;\\n align-items: center;\\n}\\n.drop_generic_properties .target {\\n height: 100%;\\n width: 100%;\\n margin: 0px 10px 0px 10px;\\n display: inline-block;\\n}\\n.drop_generic_properties .target .indicator {\\n font-size: x-large;\\n}\\n.drop_generic_properties .target .s-img {\\n display: flex;\\n}\\n.drop_generic_properties .target .s-img img {\\n height: 4vh;\\n width: 4vw;\\n}\\n.drop_generic_properties .target .data {\\n font-size: medium;\\n line-height: normal !important;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n align-self: center;\\n width: 100%;\\n}\\n.drop_generic_properties .target.can-drop .indicator {\\n border: 2px dashed lightgray;\\n color: lightgray;\\n}\\n.drop_generic_properties .target.can-drop .data {\\n border: 2px dashed lightgray;\\n color: lightgray;\\n}\\n.drop_generic_properties .target.is-over .indicator {\\n border: 2px dashed #31708f;\\n color: #31708f;\\n}\\n.drop_generic_properties .target.is-over .data {\\n border: 2px dashed #31708f;\\n color: #31708f;\\n}\\n.drop_generic_properties .btn_del {\\n float: right;\\n align-self: center;\\n}\\n.drop_generic_properties .sample_radios {\\n font-size: xx-small;\\n line-height: 2;\\n display: inline-flex;\\n padding-right: 5px;\\n}\\n\\n.generic_criteria_modal {\\n display: block;\\n padding-left: 0px;\\n top: 45% !important;\\n width: 75vw !important;\\n}\\n\\n.search_criteria_mof .modal_body {\\n max-height: 70vh;\\n height: 70vh;\\n overflow: auto;\\n}\\n.search_criteria_mof .btn_footer {\\n margin-top: 10px;\\n}\\n\\n.input-form .input-group-addon {\\n font-weight: bold;\\n}\\n.input-form .help {\\n font-size: 80%;\\n margin: 6px;\\n font-style: italic;\\n}\\n\\n.g-ds-note {\\n color: black !important;\\n float: left !important;\\n text-align: left !important;\\n font-weight: lighter !important;\\n}\\n.g-ds-note .g-ds-title {\\n text-decoration: underline;\\n font-weight: 700;\\n line-height: 1.5;\\n}\\n\\n.g_input_group {\\n padding: 6px 6px !important;\\n}\\n\\n.g_input_group_label {\\n background-color: lightgray !important;\\n width: unset !important;\\n white-space: nowrap !important;\\n padding: 6px 6px !important;\\n}\\n\\n.g_col_w {\\n width: 20% !important;\\n}\\n\\n.generic_grid {\\n display: block;\\n}\\n.generic_grid > div {\\n display: flex;\\n flex-wrap: nowrap;\\n}\\n\\n.generic_grid_header {\\n width: 100%;\\n margin: 6px 0px 6px 6px;\\n text-align: center;\\n line-height: 15px;\\n align-self: center;\\n font-weight: bolder;\\n font-family: \\\"Franklin Gothic Medium\\\", \\\"Arial Narrow\\\", Arial, sans-serif;\\n}\\n\\n.generic_grid_row {\\n width: 100%;\\n margin: 6px 0px 6px 6px;\\n text-align: center;\\n line-height: 15px;\\n align-self: center;\\n}\\n\\n.generic_grid_row_left {\\n text-align: left;\\n}\\n\\n.generic_version {\\n background-color: #777;\\n display: inline-block;\\n padding: 0.35em 0.65em;\\n font-size: 0.75em;\\n text-align: center;\\n vertical-align: baseline;\\n white-space: nowrap;\\n border-radius: 0.5rem;\\n color: white;\\n background-color: unset;\\n color: blue;\\n}\\n\\n.generic_version_draft {\\n background-color: #777;\\n display: inline-block;\\n padding: 0.35em 0.65em;\\n font-size: 0.75em;\\n text-align: center;\\n vertical-align: baseline;\\n white-space: nowrap;\\n border-radius: 0.5rem;\\n color: white;\\n background-color: unset;\\n color: black;\\n}\\n\\n.generic_version_block {\\n display: block;\\n padding: 6px 10px;\\n margin: 10px;\\n border-radius: 10px;\\n border: thin solid lightgray;\\n font-size: 1.2em;\\n}\\n.generic_version_block > div {\\n display: flex;\\n flex-wrap: nowrap;\\n}\\n\\n.generic_block_select {\\n border-width: medium;\\n border-style: groove;\\n}\\n\\n.generic_panel_none {\\n border-color: #ddd !important;\\n}\\n.generic_panel_none > .panel-heading {\\n background-color: white !important;\\n}\\n\\n.generic_tbl_chks {\\n line-height: 1em;\\n margin: 0px -10px !important;\\n}\\n.generic_tbl_chks > label {\\n display: inline-flex;\\n align-content: center;\\n align-items: center;\\n}\\n.generic_tbl_chks > label > input {\\n margin-top: 0px;\\n}\\n\\n.generic_btn_default {\\n background-color: #777 !important;\\n color: #fff !important;\\n}\\n\\n.drop_generic_table_wrap .target .s-img {\\n position: relative;\\n border: 1px solid transparent;\\n}\\n.drop_generic_table_wrap .target .s-img img {\\n height: 4vw;\\n width: 4vw;\\n}\\n.drop_generic_table_wrap .target .s-img .del_btn {\\n position: absolute;\\n top: 0%;\\n left: 0%;\\n}\\n.drop_generic_table_wrap .target .s-img .link_btn {\\n position: absolute;\\n bottom: 0%;\\n left: 0%;\\n}\\n.drop_generic_table_wrap .target .s-img:hover {\\n border: 1px solid #0dcaf0;\\n}\\n.drop_generic_table_wrap .target .data {\\n font-size: unset;\\n white-space: unset;\\n text-align: left;\\n}\\n.drop_generic_table_wrap .target.can-drop .s-img {\\n border: 2px dashed lightgray;\\n color: lightgray;\\n}\\n.drop_generic_table_wrap .target.is-over .s-img {\\n border: 2px dashed #31708f;\\n color: #31708f;\\n}\\n\\n.generic_grid_img {\\n border: #ddd solid thin;\\n}\\n\\n.generic_sam_options {\\n display: flex;\\n flex-direction: column;\\n text-align: left;\\n font-size: x-small;\\n}\\n.generic_sam_options .radio {\\n margin-top: unset;\\n margin-bottom: unset;\\n}\\n\\n.generic_files {\\n padding: 0px 5px !important;\\n}\\n.generic_files > div > div > div {\\n text-align: left;\\n align-self: center;\\n}\\n.generic_files > div > div > div .form-group {\\n margin-bottom: 0px;\\n}\\n\\n.grid-btn-none {\\n font-size: large;\\n color: white;\\n}\\n\\n.generic_grid_dnd .dnd {\\n cursor: move;\\n}\\n.generic_grid_dnd .dnd-btn {\\n font-size: large;\\n}\\n.generic_grid_dnd .dnd-btn span {\\n cursor: move;\\n}\\n.generic_grid_dnd.can-drop {\\n border: 2px dashed lightgray;\\n color: lightgray;\\n}\\n.generic_grid_dnd.is-over {\\n border: 2px dashed #31708f;\\n color: #31708f;\\n}\\n.generic_grid_dnd.is-dragging {\\n opacity: 0.2;\\n}\\n\\n.generic_layer_modal > .layer_header {\\n background-color: white;\\n color: #337ab7;\\n font-size: 20px;\\n}\\n.generic_layer_modal > .panel-body {\\n background-color: #d9edf7;\\n}\\n\\n.generic_layer_column {\\n width: 100%;\\n margin: 6px 0px 6px 6px;\\n text-align: center;\\n line-height: 15px;\\n align-self: center;\\n border: 1px solid #337ab7;\\n background-color: white;\\n margin: 5px;\\n padding: 10px;\\n color: #337ab7;\\n border-radius: 4px;\\n}\\n\\n.generic_layer_column > div:first-child {\\n display: flex;\\n}\\n\\n.generic_layer_column > div:first-child > button {\\n float: right;\\n border-radius: 50%;\\n}\\n\\n.generic_layer_column > div:first-child > div {\\n width: 100%;\\n}\\n\\n.generic_wf_modal {\\n max-height: 100%;\\n overflow: auto;\\n}\\n\\n.generic_wf_modal > div:first-child {\\n height: 85vh;\\n width: 100%;\\n}\\n\\n.flow_view_draggable {\\n z-index: 100;\\n position: absolute;\\n top: 12%;\\n left: 10%;\\n}\\n.flow_view_draggable .panel-body {\\n padding: 5px;\\n}\\n.flow_view_draggable .panel-body > .body_bg {\\n max-height: 100%;\\n overflow: auto;\\n background-color: #d9edf7;\\n}\\n.flow_view_draggable .panel-body > .body_bg > .body_canvas {\\n resize: both;\\n overflow: auto;\\n height: 70vh;\\n width: 40vw;\\n min-height: 250px;\\n min-width: 300px;\\n max-width: 1600px;\\n max-height: 840px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","/*! @preserve\n * numeral.js\n * version : 2.0.6\n * author : Adam Draper\n * license : MIT\n * http://adamwdraper.github.com/Numeral-js/\n */\n\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n global.numeral = factory();\n }\n}(this, function () {\n /************************************\n Variables\n ************************************/\n\n var numeral,\n _,\n VERSION = '2.0.6',\n formats = {},\n locales = {},\n defaults = {\n currentLocale: 'en',\n zeroFormat: null,\n nullFormat: null,\n defaultFormat: '0,0',\n scalePercentBy100: true\n },\n options = {\n currentLocale: defaults.currentLocale,\n zeroFormat: defaults.zeroFormat,\n nullFormat: defaults.nullFormat,\n defaultFormat: defaults.defaultFormat,\n scalePercentBy100: defaults.scalePercentBy100\n };\n\n\n /************************************\n Constructors\n ************************************/\n\n // Numeral prototype object\n function Numeral(input, number) {\n this._input = input;\n\n this._value = number;\n }\n\n numeral = function(input) {\n var value,\n kind,\n unformatFunction,\n regexp;\n\n if (numeral.isNumeral(input)) {\n value = input.value();\n } else if (input === 0 || typeof input === 'undefined') {\n value = 0;\n } else if (input === null || _.isNaN(input)) {\n value = null;\n } else if (typeof input === 'string') {\n if (options.zeroFormat && input === options.zeroFormat) {\n value = 0;\n } else if (options.nullFormat && input === options.nullFormat || !input.replace(/[^0-9]+/g, '').length) {\n value = null;\n } else {\n for (kind in formats) {\n regexp = typeof formats[kind].regexps.unformat === 'function' ? formats[kind].regexps.unformat() : formats[kind].regexps.unformat;\n\n if (regexp && input.match(regexp)) {\n unformatFunction = formats[kind].unformat;\n\n break;\n }\n }\n\n unformatFunction = unformatFunction || numeral._.stringToNumber;\n\n value = unformatFunction(input);\n }\n } else {\n value = Number(input)|| null;\n }\n\n return new Numeral(input, value);\n };\n\n // version number\n numeral.version = VERSION;\n\n // compare numeral object\n numeral.isNumeral = function(obj) {\n return obj instanceof Numeral;\n };\n\n // helper functions\n numeral._ = _ = {\n // formats numbers separators, decimals places, signs, abbreviations\n numberToFormat: function(value, format, roundingFunction) {\n var locale = locales[numeral.options.currentLocale],\n negP = false,\n optDec = false,\n leadingCount = 0,\n abbr = '',\n trillion = 1000000000000,\n billion = 1000000000,\n million = 1000000,\n thousand = 1000,\n decimal = '',\n neg = false,\n abbrForce, // force abbreviation\n abs,\n min,\n max,\n power,\n int,\n precision,\n signed,\n thousands,\n output;\n\n // make sure we never format a null value\n value = value || 0;\n\n abs = Math.abs(value);\n\n // see if we should use parentheses for negative number or if we should prefix with a sign\n // if both are present we default to parentheses\n if (numeral._.includes(format, '(')) {\n negP = true;\n format = format.replace(/[\\(|\\)]/g, '');\n } else if (numeral._.includes(format, '+') || numeral._.includes(format, '-')) {\n signed = numeral._.includes(format, '+') ? format.indexOf('+') : value < 0 ? format.indexOf('-') : -1;\n format = format.replace(/[\\+|\\-]/g, '');\n }\n\n // see if abbreviation is wanted\n if (numeral._.includes(format, 'a')) {\n abbrForce = format.match(/a(k|m|b|t)?/);\n\n abbrForce = abbrForce ? abbrForce[1] : false;\n\n // check for space before abbreviation\n if (numeral._.includes(format, ' a')) {\n abbr = ' ';\n }\n\n format = format.replace(new RegExp(abbr + 'a[kmbt]?'), '');\n\n if (abs >= trillion && !abbrForce || abbrForce === 't') {\n // trillion\n abbr += locale.abbreviations.trillion;\n value = value / trillion;\n } else if (abs < trillion && abs >= billion && !abbrForce || abbrForce === 'b') {\n // billion\n abbr += locale.abbreviations.billion;\n value = value / billion;\n } else if (abs < billion && abs >= million && !abbrForce || abbrForce === 'm') {\n // million\n abbr += locale.abbreviations.million;\n value = value / million;\n } else if (abs < million && abs >= thousand && !abbrForce || abbrForce === 'k') {\n // thousand\n abbr += locale.abbreviations.thousand;\n value = value / thousand;\n }\n }\n\n // check for optional decimals\n if (numeral._.includes(format, '[.]')) {\n optDec = true;\n format = format.replace('[.]', '.');\n }\n\n // break number and format\n int = value.toString().split('.')[0];\n precision = format.split('.')[1];\n thousands = format.indexOf(',');\n leadingCount = (format.split('.')[0].split(',')[0].match(/0/g) || []).length;\n\n if (precision) {\n if (numeral._.includes(precision, '[')) {\n precision = precision.replace(']', '');\n precision = precision.split('[');\n decimal = numeral._.toFixed(value, (precision[0].length + precision[1].length), roundingFunction, precision[1].length);\n } else {\n decimal = numeral._.toFixed(value, precision.length, roundingFunction);\n }\n\n int = decimal.split('.')[0];\n\n if (numeral._.includes(decimal, '.')) {\n decimal = locale.delimiters.decimal + decimal.split('.')[1];\n } else {\n decimal = '';\n }\n\n if (optDec && Number(decimal.slice(1)) === 0) {\n decimal = '';\n }\n } else {\n int = numeral._.toFixed(value, 0, roundingFunction);\n }\n\n // check abbreviation again after rounding\n if (abbr && !abbrForce && Number(int) >= 1000 && abbr !== locale.abbreviations.trillion) {\n int = String(Number(int) / 1000);\n\n switch (abbr) {\n case locale.abbreviations.thousand:\n abbr = locale.abbreviations.million;\n break;\n case locale.abbreviations.million:\n abbr = locale.abbreviations.billion;\n break;\n case locale.abbreviations.billion:\n abbr = locale.abbreviations.trillion;\n break;\n }\n }\n\n\n // format number\n if (numeral._.includes(int, '-')) {\n int = int.slice(1);\n neg = true;\n }\n\n if (int.length < leadingCount) {\n for (var i = leadingCount - int.length; i > 0; i--) {\n int = '0' + int;\n }\n }\n\n if (thousands > -1) {\n int = int.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + locale.delimiters.thousands);\n }\n\n if (format.indexOf('.') === 0) {\n int = '';\n }\n\n output = int + decimal + (abbr ? abbr : '');\n\n if (negP) {\n output = (negP && neg ? '(' : '') + output + (negP && neg ? ')' : '');\n } else {\n if (signed >= 0) {\n output = signed === 0 ? (neg ? '-' : '+') + output : output + (neg ? '-' : '+');\n } else if (neg) {\n output = '-' + output;\n }\n }\n\n return output;\n },\n // unformats numbers separators, decimals places, signs, abbreviations\n stringToNumber: function(string) {\n var locale = locales[options.currentLocale],\n stringOriginal = string,\n abbreviations = {\n thousand: 3,\n million: 6,\n billion: 9,\n trillion: 12\n },\n abbreviation,\n value,\n i,\n regexp;\n\n if (options.zeroFormat && string === options.zeroFormat) {\n value = 0;\n } else if (options.nullFormat && string === options.nullFormat || !string.replace(/[^0-9]+/g, '').length) {\n value = null;\n } else {\n value = 1;\n\n if (locale.delimiters.decimal !== '.') {\n string = string.replace(/\\./g, '').replace(locale.delimiters.decimal, '.');\n }\n\n for (abbreviation in abbreviations) {\n regexp = new RegExp('[^a-zA-Z]' + locale.abbreviations[abbreviation] + '(?:\\\\)|(\\\\' + locale.currency.symbol + ')?(?:\\\\))?)?$');\n\n if (stringOriginal.match(regexp)) {\n value *= Math.pow(10, abbreviations[abbreviation]);\n break;\n }\n }\n\n // check for negative number\n value *= (string.split('-').length + Math.min(string.split('(').length - 1, string.split(')').length - 1)) % 2 ? 1 : -1;\n\n // remove non numbers\n string = string.replace(/[^0-9\\.]+/g, '');\n\n value *= Number(string);\n }\n\n return value;\n },\n isNaN: function(value) {\n return typeof value === 'number' && isNaN(value);\n },\n includes: function(string, search) {\n return string.indexOf(search) !== -1;\n },\n insert: function(string, subString, start) {\n return string.slice(0, start) + subString + string.slice(start);\n },\n reduce: function(array, callback /*, initialValue*/) {\n if (this === null) {\n throw new TypeError('Array.prototype.reduce called on null or undefined');\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n\n var t = Object(array),\n len = t.length >>> 0,\n k = 0,\n value;\n\n if (arguments.length === 3) {\n value = arguments[2];\n } else {\n while (k < len && !(k in t)) {\n k++;\n }\n\n if (k >= len) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n\n value = t[k++];\n }\n for (; k < len; k++) {\n if (k in t) {\n value = callback(value, t[k], k, t);\n }\n }\n return value;\n },\n /**\n * Computes the multiplier necessary to make x >= 1,\n * effectively eliminating miscalculations caused by\n * finite precision.\n */\n multiplier: function (x) {\n var parts = x.toString().split('.');\n\n return parts.length < 2 ? 1 : Math.pow(10, parts[1].length);\n },\n /**\n * Given a variable number of arguments, returns the maximum\n * multiplier that must be used to normalize an operation involving\n * all of them.\n */\n correctionFactor: function () {\n var args = Array.prototype.slice.call(arguments);\n\n return args.reduce(function(accum, next) {\n var mn = _.multiplier(next);\n return accum > mn ? accum : mn;\n }, 1);\n },\n /**\n * Implementation of toFixed() that treats floats more like decimals\n *\n * Fixes binary rounding issues (eg. (0.615).toFixed(2) === '0.61') that present\n * problems for accounting- and finance-related software.\n */\n toFixed: function(value, maxDecimals, roundingFunction, optionals) {\n var splitValue = value.toString().split('.'),\n minDecimals = maxDecimals - (optionals || 0),\n boundedPrecision,\n optionalsRegExp,\n power,\n output;\n\n // Use the smallest precision value possible to avoid errors from floating point representation\n if (splitValue.length === 2) {\n boundedPrecision = Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals);\n } else {\n boundedPrecision = minDecimals;\n }\n\n power = Math.pow(10, boundedPrecision);\n\n // Multiply up by precision, round accurately, then divide and use native toFixed():\n output = (roundingFunction(value + 'e+' + boundedPrecision) / power).toFixed(boundedPrecision);\n\n if (optionals > maxDecimals - boundedPrecision) {\n optionalsRegExp = new RegExp('\\\\.?0{1,' + (optionals - (maxDecimals - boundedPrecision)) + '}$');\n output = output.replace(optionalsRegExp, '');\n }\n\n return output;\n }\n };\n\n // avaliable options\n numeral.options = options;\n\n // avaliable formats\n numeral.formats = formats;\n\n // avaliable formats\n numeral.locales = locales;\n\n // This function sets the current locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n numeral.locale = function(key) {\n if (key) {\n options.currentLocale = key.toLowerCase();\n }\n\n return options.currentLocale;\n };\n\n // This function provides access to the loaded locale data. If\n // no arguments are passed in, it will simply return the current\n // global locale object.\n numeral.localeData = function(key) {\n if (!key) {\n return locales[options.currentLocale];\n }\n\n key = key.toLowerCase();\n\n if (!locales[key]) {\n throw new Error('Unknown locale : ' + key);\n }\n\n return locales[key];\n };\n\n numeral.reset = function() {\n for (var property in defaults) {\n options[property] = defaults[property];\n }\n };\n\n numeral.zeroFormat = function(format) {\n options.zeroFormat = typeof(format) === 'string' ? format : null;\n };\n\n numeral.nullFormat = function (format) {\n options.nullFormat = typeof(format) === 'string' ? format : null;\n };\n\n numeral.defaultFormat = function(format) {\n options.defaultFormat = typeof(format) === 'string' ? format : '0.0';\n };\n\n numeral.register = function(type, name, format) {\n name = name.toLowerCase();\n\n if (this[type + 's'][name]) {\n throw new TypeError(name + ' ' + type + ' already registered.');\n }\n\n this[type + 's'][name] = format;\n\n return format;\n };\n\n\n numeral.validate = function(val, culture) {\n var _decimalSep,\n _thousandSep,\n _currSymbol,\n _valArray,\n _abbrObj,\n _thousandRegEx,\n localeData,\n temp;\n\n //coerce val to string\n if (typeof val !== 'string') {\n val += '';\n\n if (console.warn) {\n console.warn('Numeral.js: Value is not string. It has been co-erced to: ', val);\n }\n }\n\n //trim whitespaces from either sides\n val = val.trim();\n\n //if val is just digits return true\n if (!!val.match(/^\\d+$/)) {\n return true;\n }\n\n //if val is empty return false\n if (val === '') {\n return false;\n }\n\n //get the decimal and thousands separator from numeral.localeData\n try {\n //check if the culture is understood by numeral. if not, default it to current locale\n localeData = numeral.localeData(culture);\n } catch (e) {\n localeData = numeral.localeData(numeral.locale());\n }\n\n //setup the delimiters and currency symbol based on culture/locale\n _currSymbol = localeData.currency.symbol;\n _abbrObj = localeData.abbreviations;\n _decimalSep = localeData.delimiters.decimal;\n if (localeData.delimiters.thousands === '.') {\n _thousandSep = '\\\\.';\n } else {\n _thousandSep = localeData.delimiters.thousands;\n }\n\n // validating currency symbol\n temp = val.match(/^[^\\d]+/);\n if (temp !== null) {\n val = val.substr(1);\n if (temp[0] !== _currSymbol) {\n return false;\n }\n }\n\n //validating abbreviation symbol\n temp = val.match(/[^\\d]+$/);\n if (temp !== null) {\n val = val.slice(0, -1);\n if (temp[0] !== _abbrObj.thousand && temp[0] !== _abbrObj.million && temp[0] !== _abbrObj.billion && temp[0] !== _abbrObj.trillion) {\n return false;\n }\n }\n\n _thousandRegEx = new RegExp(_thousandSep + '{2}');\n\n if (!val.match(/[^\\d.,]/g)) {\n _valArray = val.split(_decimalSep);\n if (_valArray.length > 2) {\n return false;\n } else {\n if (_valArray.length < 2) {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx));\n } else {\n if (_valArray[0].length === 1) {\n return ( !! _valArray[0].match(/^\\d+$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n } else {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n }\n }\n }\n }\n\n return false;\n };\n\n\n /************************************\n Numeral Prototype\n ************************************/\n\n numeral.fn = Numeral.prototype = {\n clone: function() {\n return numeral(this);\n },\n format: function(inputString, roundingFunction) {\n var value = this._value,\n format = inputString || options.defaultFormat,\n kind,\n output,\n formatFunction;\n\n // make sure we have a roundingFunction\n roundingFunction = roundingFunction || Math.round;\n\n // format based on value\n if (value === 0 && options.zeroFormat !== null) {\n output = options.zeroFormat;\n } else if (value === null && options.nullFormat !== null) {\n output = options.nullFormat;\n } else {\n for (kind in formats) {\n if (format.match(formats[kind].regexps.format)) {\n formatFunction = formats[kind].format;\n\n break;\n }\n }\n\n formatFunction = formatFunction || numeral._.numberToFormat;\n\n output = formatFunction(value, format, roundingFunction);\n }\n\n return output;\n },\n value: function() {\n return this._value;\n },\n input: function() {\n return this._input;\n },\n set: function(value) {\n this._value = Number(value);\n\n return this;\n },\n add: function(value) {\n var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr, currI, O) {\n return accum + Math.round(corrFactor * curr);\n }\n\n this._value = _.reduce([this._value, value], cback, 0) / corrFactor;\n\n return this;\n },\n subtract: function(value) {\n var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr, currI, O) {\n return accum - Math.round(corrFactor * curr);\n }\n\n this._value = _.reduce([value], cback, Math.round(this._value * corrFactor)) / corrFactor;\n\n return this;\n },\n multiply: function(value) {\n function cback(accum, curr, currI, O) {\n var corrFactor = _.correctionFactor(accum, curr);\n return Math.round(accum * corrFactor) * Math.round(curr * corrFactor) / Math.round(corrFactor * corrFactor);\n }\n\n this._value = _.reduce([this._value, value], cback, 1);\n\n return this;\n },\n divide: function(value) {\n function cback(accum, curr, currI, O) {\n var corrFactor = _.correctionFactor(accum, curr);\n return Math.round(accum * corrFactor) / Math.round(curr * corrFactor);\n }\n\n this._value = _.reduce([this._value, value], cback);\n\n return this;\n },\n difference: function(value) {\n return Math.abs(numeral(this._value).subtract(value).value());\n }\n };\n\n /************************************\n Default Locale && Format\n ************************************/\n\n numeral.register('locale', 'en', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function(number) {\n var b = number % 10;\n return (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '$'\n }\n });\n\n \n\n(function() {\n numeral.register('format', 'bps', {\n regexps: {\n format: /(BPS)/,\n unformat: /(BPS)/\n },\n format: function(value, format, roundingFunction) {\n var space = numeral._.includes(format, ' BPS') ? ' ' : '',\n output;\n\n value = value * 10000;\n\n // check for space before BPS\n format = format.replace(/\\s?BPS/, '');\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n if (numeral._.includes(output, ')')) {\n output = output.split('');\n\n output.splice(-1, 0, space + 'BPS');\n\n output = output.join('');\n } else {\n output = output + space + 'BPS';\n }\n\n return output;\n },\n unformat: function(string) {\n return +(numeral._.stringToNumber(string) * 0.0001).toFixed(15);\n }\n });\n})();\n\n\n(function() {\n var decimal = {\n base: 1000,\n suffixes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n },\n binary = {\n base: 1024,\n suffixes: ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']\n };\n\n var allSuffixes = decimal.suffixes.concat(binary.suffixes.filter(function (item) {\n return decimal.suffixes.indexOf(item) < 0;\n }));\n var unformatRegex = allSuffixes.join('|');\n // Allow support for BPS (http://www.investopedia.com/terms/b/basispoint.asp)\n unformatRegex = '(' + unformatRegex.replace('B', 'B(?!PS)') + ')';\n\n numeral.register('format', 'bytes', {\n regexps: {\n format: /([0\\s]i?b)/,\n unformat: new RegExp(unformatRegex)\n },\n format: function(value, format, roundingFunction) {\n var output,\n bytes = numeral._.includes(format, 'ib') ? binary : decimal,\n suffix = numeral._.includes(format, ' b') || numeral._.includes(format, ' ib') ? ' ' : '',\n power,\n min,\n max;\n\n // check for space before\n format = format.replace(/\\s?i?b/, '');\n\n for (power = 0; power <= bytes.suffixes.length; power++) {\n min = Math.pow(bytes.base, power);\n max = Math.pow(bytes.base, power + 1);\n\n if (value === null || value === 0 || value >= min && value < max) {\n suffix += bytes.suffixes[power];\n\n if (min > 0) {\n value = value / min;\n }\n\n break;\n }\n }\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return output + suffix;\n },\n unformat: function(string) {\n var value = numeral._.stringToNumber(string),\n power,\n bytesMultiplier;\n\n if (value) {\n for (power = decimal.suffixes.length - 1; power >= 0; power--) {\n if (numeral._.includes(string, decimal.suffixes[power])) {\n bytesMultiplier = Math.pow(decimal.base, power);\n\n break;\n }\n\n if (numeral._.includes(string, binary.suffixes[power])) {\n bytesMultiplier = Math.pow(binary.base, power);\n\n break;\n }\n }\n\n value *= (bytesMultiplier || 1);\n }\n\n return value;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'currency', {\n regexps: {\n format: /(\\$)/\n },\n format: function(value, format, roundingFunction) {\n var locale = numeral.locales[numeral.options.currentLocale],\n symbols = {\n before: format.match(/^([\\+|\\-|\\(|\\s|\\$]*)/)[0],\n after: format.match(/([\\+|\\-|\\)|\\s|\\$]*)$/)[0]\n },\n output,\n symbol,\n i;\n\n // strip format of spaces and $\n format = format.replace(/\\s?\\$\\s?/, '');\n\n // format the number\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n // update the before and after based on value\n if (value >= 0) {\n symbols.before = symbols.before.replace(/[\\-\\(]/, '');\n symbols.after = symbols.after.replace(/[\\-\\)]/, '');\n } else if (value < 0 && (!numeral._.includes(symbols.before, '-') && !numeral._.includes(symbols.before, '('))) {\n symbols.before = '-' + symbols.before;\n }\n\n // loop through each before symbol\n for (i = 0; i < symbols.before.length; i++) {\n symbol = symbols.before[i];\n\n switch (symbol) {\n case '$':\n output = numeral._.insert(output, locale.currency.symbol, i);\n break;\n case ' ':\n output = numeral._.insert(output, ' ', i + locale.currency.symbol.length - 1);\n break;\n }\n }\n\n // loop through each after symbol\n for (i = symbols.after.length - 1; i >= 0; i--) {\n symbol = symbols.after[i];\n\n switch (symbol) {\n case '$':\n output = i === symbols.after.length - 1 ? output + locale.currency.symbol : numeral._.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i)));\n break;\n case ' ':\n output = i === symbols.after.length - 1 ? output + ' ' : numeral._.insert(output, ' ', -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1));\n break;\n }\n }\n\n\n return output;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'exponential', {\n regexps: {\n format: /(e\\+|e-)/,\n unformat: /(e\\+|e-)/\n },\n format: function(value, format, roundingFunction) {\n var output,\n exponential = typeof value === 'number' && !numeral._.isNaN(value) ? value.toExponential() : '0e+0',\n parts = exponential.split('e');\n\n format = format.replace(/e[\\+|\\-]{1}0/, '');\n\n output = numeral._.numberToFormat(Number(parts[0]), format, roundingFunction);\n\n return output + 'e' + parts[1];\n },\n unformat: function(string) {\n var parts = numeral._.includes(string, 'e+') ? string.split('e+') : string.split('e-'),\n value = Number(parts[0]),\n power = Number(parts[1]);\n\n power = numeral._.includes(string, 'e-') ? power *= -1 : power;\n\n function cback(accum, curr, currI, O) {\n var corrFactor = numeral._.correctionFactor(accum, curr),\n num = (accum * corrFactor) * (curr * corrFactor) / (corrFactor * corrFactor);\n return num;\n }\n\n return numeral._.reduce([value, Math.pow(10, power)], cback, 1);\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'ordinal', {\n regexps: {\n format: /(o)/\n },\n format: function(value, format, roundingFunction) {\n var locale = numeral.locales[numeral.options.currentLocale],\n output,\n ordinal = numeral._.includes(format, ' o') ? ' ' : '';\n\n // check for space before\n format = format.replace(/\\s?o/, '');\n\n ordinal += locale.ordinal(value);\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return output + ordinal;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'percentage', {\n regexps: {\n format: /(%)/,\n unformat: /(%)/\n },\n format: function(value, format, roundingFunction) {\n var space = numeral._.includes(format, ' %') ? ' ' : '',\n output;\n\n if (numeral.options.scalePercentBy100) {\n value = value * 100;\n }\n\n // check for space before %\n format = format.replace(/\\s?\\%/, '');\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n if (numeral._.includes(output, ')')) {\n output = output.split('');\n\n output.splice(-1, 0, space + '%');\n\n output = output.join('');\n } else {\n output = output + space + '%';\n }\n\n return output;\n },\n unformat: function(string) {\n var number = numeral._.stringToNumber(string);\n if (numeral.options.scalePercentBy100) {\n return number * 0.01;\n }\n return number;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'time', {\n regexps: {\n format: /(:)/,\n unformat: /(:)/\n },\n format: function(value, format, roundingFunction) {\n var hours = Math.floor(value / 60 / 60),\n minutes = Math.floor((value - (hours * 60 * 60)) / 60),\n seconds = Math.round(value - (hours * 60 * 60) - (minutes * 60));\n\n return hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds);\n },\n unformat: function(string) {\n var timeArray = string.split(':'),\n seconds = 0;\n\n // turn hours and minutes into seconds and add them all up\n if (timeArray.length === 3) {\n // hours\n seconds = seconds + (Number(timeArray[0]) * 60 * 60);\n // minutes\n seconds = seconds + (Number(timeArray[1]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[2]);\n } else if (timeArray.length === 2) {\n // minutes\n seconds = seconds + (Number(timeArray[0]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[1]);\n }\n return Number(seconds);\n }\n });\n})();\n\nreturn numeral;\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","module.exports = __WEBPACK_EXTERNAL_MODULE__4410__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5963__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6615__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7607__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4639__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8512__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2854__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6826__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4135__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6848__;","module.exports = __WEBPACK_EXTERNAL_MODULE__327__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./main.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./main.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["root","factory","exports","module","require","define","amd","i","a","self","__WEBPACK_EXTERNAL_MODULE__4639__","__WEBPACK_EXTERNAL_MODULE__8512__","__WEBPACK_EXTERNAL_MODULE__7607__","__WEBPACK_EXTERNAL_MODULE__6615__","__WEBPACK_EXTERNAL_MODULE__4410__","__WEBPACK_EXTERNAL_MODULE__327__","__WEBPACK_EXTERNAL_MODULE__4135__","__WEBPACK_EXTERNAL_MODULE__2854__","__WEBPACK_EXTERNAL_MODULE__5963__","__WEBPACK_EXTERNAL_MODULE__6826__","__WEBPACK_EXTERNAL_MODULE__6848__","ElementManager","useState","count","setCount","Button","bsStyle","onClick","SelectAttrNewModal","this","props","fnCreate","s_selectKey","value","trim","showModal","fnClose","Modal","backdrop","show","onHide","closeButton","style","overflow","className","Form","horizontal","FormGroup","controlId","InputGroup","FormControl","type","inputRef","ref","t","handleCreate","aria-hidden","Component","propTypes","PropTypes","SelectOption","generic","fnAddOption","input","inputNewOption","newOption","key","label","selectObj","deep","cloneDeep","properties_template","select_options","options","push","fnChange","bsSize","marginBottom","display","renderDeleteButton","name","placeholder","tip","fnClick","fa","size","optionR","defaultValue","onChange","event","onOptionInputChange","SelectOptionLayer","fnAddSelect","showAddSelect","setShowAddSelect","selects","Object","keys","forEach","map","f","marginTop","snode","Panel","defaultExpanded","toggle","txt","btnCls","selectName","sos","optionKey","selectKey","idx","findIndex","o","op","target","splice","defaultProps","delType","delKey","delRoot","fnConfirm","NoDataModal","title","fnHide","GenAnaModal","layer","fnLink","container","specLayer","properties","layers","ai","children","filter","x","is_new","length","layerAi","rows","_ai","id","Constants","disabled","includes","maxHeight","GenericDSDetails","handleReload","bind","newProps","klass","genericDS","properties_release","klass_uuid","uuid","newLayer","curFields","fields","curVal","units","vs","curIdx","field","curType","toString","isNaN","parseInt","toBool","genUnits","option_layers","find","u","value_system","toNum","dataset_klass_id","klass_ols","ols_term_id","klass_label","changed","layersLayout","extLayers","genId","isPreview","isSearch","isActiveWF","margin","uiCtrl","kind","position","minHeight","overflowY","elementalPropertiesItem","absOlsTermLabel","ButtonToolbar","OverlayTrigger","placement","overlay","Tooltip","reducer","state","action","GenInterface","useReducerWithCallback","initialState","dispatch","fnNavi","isSpCall","aiComp","paramsLayersLayout","funcChange","preValue","flow","selected","_source","_target","srcIdx","tmpSrc","tarIdx","propsChange","sortedLayers","sortBy","e","Math","abs","swapAryEls","tmpTar","wf_position","el","ll","orgLayerObject","stopPropagation","selectedIdx","showViewLayer","selectedLayerKey","showAnaModal","rmNeeded","preLayer","nxLayer","getFlowLayer","addToObject","removeFromObject","getWFNode","checked","fileIdx","vals","uploadFiles","files","concat","uid","trunc","startsWith","console","log","opt","search_properties","funcSubChange","obj","subFields","idxSub","m","sub_fields","sub","sub_values","funcClick","newVal","unitConversion","extLys","activeWF","hasAi","LayersLayout","addLayerModal","fnAdd","_layer","origKey","selectedLayer","cnt","wf","wf_uuid","reformCondFields","ix","anaModal","pAiId","pLayer","pAct","GenInterfaceSP","SegmentDetails","segment","nSubs","cSubs","exSubs","nSub","nvl","hitSub","c","organizeSubValues","ELEMENT","SAMPLE","MOLECULE","LAYOUT","GENERAL","DATA","UNLINKED_DATA","DATASET","CONTAINER","ELEMENT_FIELD","GENERIC_GRID","iconClass","onNavi","tip1","tip2","pop","path","el_id","elSvg","el_svg","el_type","endsWith","el_decoupled","tips","el_tip","split","tit","Popover","maxWidth","src","height","width","alt","el_label","role","cursor","el_klass","icon_name","delayShow","trigger","rootClose","KlzIcon","source","taggable","tag","taggable_data","isAssoc","element","reaction_id","wellplate_id","molecule","molecule_name_label","inchikey","cano_smiles","cr_opt","short_label","decoupled","element_klass","dropTarget","drop","targetProps","monitor","sourceProps","getItem","sourceTag","onDrop","canDrop","_targetProps","_monitor","dropCollect","connect","connectDropTarget","isOver","GenericElDropTarget","dndItems","DropTarget","orderDragCollect","connectDragSource","dragSource","isDragging","orderDropCollect","GridDnD","compose","orderTarget","orderSource","beginDrag","fid","rId","rowValue","handleMove","tar","DragSource","s","PanelDnD","handleChange","bs","btnAdd","klz","replace","btnLinkAna","FontAwesomeIcon","icon","faPlus","btnRemove","faMinus","wfIcon","faSitemap","moveIcon","faArrowsAlt","btnLayer","ButtonGroup","extHead","test","panelHeader","float","lineHeight","panelHColor","dndKlz","canDrag","ButtonConfirm","msg","fnParams","place","popover","animation","confirmDelete","str","FieldTypes","ButtonDelField","ButtonReload","fnReload","BTN_RELOAD_TIP","outGeneric","output","reinventGeneric","ButtonTooltip","tooltip","content","FieldLabel","desc","freeze","DEL_LAYER","DEL_FIELD","DEL_SELECT","DEL_OPTION","GenProperties","fieldProps","GenPropertiesCheckbox","GenPropertiesCalculate","GenPropertiesSelect","GenPropertiesDrop","GenPropertiesNumber","GenPropertiesSystemDefined","GenPropertiesInputGroup","GenPropertiesTextArea","GenPropertiesUpload","GenDummy","GenPropertiesTable","GenTextFormula","GenWFNext","GenPropertiesText","fieldCls","fieldHeader","description","showVal","showTxt","newFormula","formula","calFields","regF","varFields","match","sort","b","fi","tmpField","parseFloat","unitConvToBase","eval","toFixed","SyntaxError","message","readOnly","required","min","active","Checkbox","isRequired","createOpt","defaultIcon","Radio","inline","dragTarget","paddingBottom","subs","f_obj","onSubChange","genUnitSup","genUnit","isEditable","val","selectStyles","menuPortal","base","zIndex","menu","isClearable","multi","isDisabled","menuPortalTarget","document","body","styles","componentClass","text_sub_fields","fds","separator","fdt","svv","fd","join","renderListGroupItem","attachment","delBtn","filename","aid","downloadFile","contents","attachments","border","textAlign","paddingTop","color","ListGroup","ListGroupItem","wf_options","menuContainerStyle","FlowView","reactFlowInstance","setReactFlowInstance","elements","setElements","useEffect","flowEls","conFlowEls","flowDefault","fitView","ReactFlowProvider","onLoad","_reactFlowInstance","connectionMode","ConnectionMode","nodeTypes","selectorNode","LayerNode","deleteKeyCode","Controls","FlowViewerModal","data","shortLabel","handle","bounds","faTimes","onConnect","params","Handle","Position","targetHandleStyle","borderWidth","borderColor","borderStyle","sourceHandleStyleA","background","top","memo","GenPropertiesLayer","handleSubChange","moveLayer","k","uIdx","valueOnly","keyLayer","update","selectOptions","sp","cols","perRow","col","floor","klaz","newRow","rowId","unit","rCol","eachCol","showProperties","tabCol","Row","Col","priority","md","lg","handleClick","cl","panelDnD","noneKlass","PanelGroup","accordion","defaultActiveKey","eventKey","views","drawLayout","layout","block","LayerModal","buildExtLys","uk","cond_fields","ig","showLayer","cond","toLowerCase","igs","Attachment","args","assign","buildID","identifier","file","thumb","content_type","is_deleted","isNew","GenericSubField","DropLinkRenderer","sField","node","dId","dVal","el_short_label","DropRenderer","oopt","DropTextRenderer","attr","displayValue","data-clipboard-text","wordBreak","fontSize","subVal","molecule_formula","el_inchikey","el_smiles","el_iupac","iupac_name","el_molecular_weight","molecular_weight","molecule_svg_file","el_name","el_external_label","external_label","molecule_molecular_weight","sample_svg_file","GenericElTableDropTarget","justifyContent","AddRowBtn","addRow","DelRowBtn","delRow","NullRowBtn","DnDRowBtn","moveRow","setCell","columnDef","onCellChange","cellRenderer","cellParams","ColumnHeader","_columnDefs","ch","headerName","headerComponent","headerParams","colCss","minWidth","colId","borderBottom","ColumnRow","_rowValue","NoRow","SamOption","fValue","rUUID","subField","crOpt","SelectRenderer","sOptions","TableRecord","onSelectClick","onUnitClick","onChk","getColumns","newValue","oldValue","Numeral","subVals","v","targetOpt","sValues","columnDefs","act","sF","addOption","addLink","colDef","col_name","colDefExt","editable","UConverterRenderer","molOptions","ext","sOpt","SampOption","samOptions","dtype","DragDropItemTypes","move","alles","sid","tid","temp","rowData","newSub","React","BTN_AI_LINK","BTN_AI_UNLINK","IMG_NOT_AVAILABLE_SVG","IMG_UNDEFINED_STRUCTURE_SVG","collateValues","currentFields","previousFields","previousValues","result","currentValuKeys","previousValueKeys","notInCurrent","currObj","preKey","curr","prev","option_layer","cur","pre","traverseToRemove","rmKey","rms","prototype","hasOwnProperty","call","wf_info","source_layer","_flow","nodeId","templateFlow","sourceLayer","sIdx","nd","ls","animated","ndNs","ns","wfOpts","n","default","node_id","reduce","ok","all","nName","_oKey","_f","conds","addAfter","oKey","srcPosition","_propertiesLayers","srcLayer","rmNode","buildInitWF","template","nNs","nextNodes","orig","l","nls","sortedLayer","fLayer","pas","nextOptions","undefined","initializer","callbackRef","useRef","useReducer","current","callback","klzSty","valIdx","fObj","showField","GenericDummy","inputEventVal","absOlsTermId","parse","Number","reV","supVal","valLower","String","genUnitsSystem","SystemUnits","reUnit","unitsSystem","optionLayers","defaultUnit","uniObj","uniFileds","fiel","preUnit","convertTemp","nm","pIdx","clsInputGroup","genericEl","ff","findCurrentNode","_srcKey","_layerVals","fs","decorateNode","_elements","_layers","lk","lKey","findKey","els","d","chk","right","faCheckCircle","storeFlow","y","isLayerInWF","_element","_layerKey","_ary","idx1","idx2","ary","link","createElement","download","href","window","MouseEvent","view","bubbles","cancelable","dispatchEvent","SYSTEM_UNITS","___CSS_LOADER_EXPORT___","cssWithMappingToString","list","item","needLayer","modules","media","dedupe","supports","alreadyImportedModules","_k","sourceURLs","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","sources","sourceRoot","numeral","_","formats","locales","defaults","currentLocale","zeroFormat","nullFormat","defaultFormat","scalePercentBy100","number","_input","_value","unformatFunction","regexp","isNumeral","regexps","unformat","stringToNumber","version","numberToFormat","format","roundingFunction","leadingCount","abbrForce","int","precision","signed","thousands","locale","negP","optDec","abbr","trillion","billion","million","decimal","neg","indexOf","RegExp","abbreviations","thousand","delimiters","slice","string","abbreviation","stringOriginal","currency","symbol","pow","search","insert","subString","start","array","TypeError","len","arguments","multiplier","parts","correctionFactor","Array","accum","next","mn","maxDecimals","optionals","boundedPrecision","optionalsRegExp","power","splitValue","minDecimals","max","localeData","Error","reset","property","register","validate","culture","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","warn","substr","fn","clone","inputString","formatFunction","round","set","add","corrFactor","currI","O","subtract","multiply","divide","difference","ordinal","space","suffixes","binary","unformatRegex","bytes","suffix","bytesMultiplier","symbols","before","after","toExponential","hours","minutes","seconds","timeArray","ReactPropTypesSecret","r","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","bigint","bool","func","object","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","randomString","random","substring","_len","funcs","_key","arg","apply","stylesInDOM","getIndexByIdentifier","modulesToDom","idCountMap","identifiers","indexByIdentifier","css","sourceMap","references","updater","api","domAPI","newObj","remove","byIndex","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","appendChild","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","parentNode","removeChild","styleSheet","cssText","firstChild","createTextNode","getRandomValues","rnds8","Uint8Array","byteToHex","arr","offset","buf","rnds","rng","crypto","msCrypto","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","__esModule","definition","defineProperty","enumerable","get","hmd","create","prop","Symbol","toStringTag"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"bundle.js","mappings":"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","sources":["webpack://chem-generic-ui/webpack/universalModuleDefinition","webpack://chem-generic-ui/./src/components/admin/ElementManager.js","webpack://chem-generic-ui/./src/components/admin/SelectAttrNewModal.js","webpack://chem-generic-ui/./src/components/admin/SelectOption.js","webpack://chem-generic-ui/./src/components/admin/SelectOptionLayer.js","webpack://chem-generic-ui/./src/components/admin/renderDeleteButton.js","webpack://chem-generic-ui/./src/components/details/GenAnaModal.js","webpack://chem-generic-ui/./src/components/details/GenDSDetails.js","webpack://chem-generic-ui/./src/components/details/GenInterface.js","webpack://chem-generic-ui/./src/components/details/GenInterfaceSP.js","webpack://chem-generic-ui/./src/components/details/GenSgDetails.js","webpack://chem-generic-ui/./src/components/dnd/DragDropItemTypes.js","webpack://chem-generic-ui/./src/components/dnd/GenericElDropTarget.js","webpack://chem-generic-ui/./src/components/dnd/GridDnD.js","webpack://chem-generic-ui/./src/components/dnd/PanelDnD.js","webpack://chem-generic-ui/./src/components/fields/ButtonConfirm.js","webpack://chem-generic-ui/./src/components/fields/ButtonDelField.js","webpack://chem-generic-ui/./src/components/fields/ButtonReload.js","webpack://chem-generic-ui/./src/components/fields/ButtonTooltip.js","webpack://chem-generic-ui/./src/components/fields/FieldLabel.js","webpack://chem-generic-ui/./src/components/fields/FieldTypes.js","webpack://chem-generic-ui/./src/components/fields/GenProperties.js","webpack://chem-generic-ui/./src/components/fields/GenPropertiesFields.js","webpack://chem-generic-ui/./src/components/flow/DnDFlow.js","webpack://chem-generic-ui/./src/components/flow/DnDSidebar.js","webpack://chem-generic-ui/./src/components/flow/FlowView.js","webpack://chem-generic-ui/./src/components/flow/FlowViewerModal.js","webpack://chem-generic-ui/./src/components/flow/LayerNode.js","webpack://chem-generic-ui/./src/components/flow/Workflow.js","webpack://chem-generic-ui/./src/components/layers/GenPropertiesLayer.js","webpack://chem-generic-ui/./src/components/layers/LayerModal.js","webpack://chem-generic-ui/./src/components/layers/LayersLayout.js","webpack://chem-generic-ui/./src/components/models/Attachment.js","webpack://chem-generic-ui/./src/components/models/GenericSubField.js","webpack://chem-generic-ui/./src/components/table/DropLinkRenderer.js","webpack://chem-generic-ui/./src/components/table/DropRenderer.js","webpack://chem-generic-ui/./src/components/table/DropTextRenderer.js","webpack://chem-generic-ui/./src/components/table/GenericElTableDropTarget.js","webpack://chem-generic-ui/./src/components/table/GridBtn.js","webpack://chem-generic-ui/./src/components/table/GridEntry.js","webpack://chem-generic-ui/./src/components/table/SamOption.js","webpack://chem-generic-ui/./src/components/table/SelectRenderer.js","webpack://chem-generic-ui/./src/components/table/TableRecord.js","webpack://chem-generic-ui/./src/components/table/UConverterRenderer.js","webpack://chem-generic-ui/./src/components/tools/Constants.js","webpack://chem-generic-ui/./src/components/tools/collate.js","webpack://chem-generic-ui/./src/components/tools/orten.js","webpack://chem-generic-ui/./src/components/tools/reinventGeneric.js","webpack://chem-generic-ui/./src/components/tools/useReducerWithCallback.js","webpack://chem-generic-ui/./src/components/tools/utils.js","webpack://chem-generic-ui/./src/data/SystemUnits.js","webpack://chem-generic-ui/./src/asserts/main.css","webpack://chem-generic-ui/./node_modules/css-loader/dist/runtime/api.js","webpack://chem-generic-ui/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://chem-generic-ui/./node_modules/numeral/numeral.js","webpack://chem-generic-ui/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://chem-generic-ui/./node_modules/prop-types/index.js","webpack://chem-generic-ui/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://chem-generic-ui/./node_modules/redux/es/redux.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://chem-generic-ui/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/stringify.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/rng.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/regex.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/validate.js","webpack://chem-generic-ui/./node_modules/uuid/dist/esm-browser/v4.js","webpack://chem-generic-ui/external umd {\"commonjs\":\"@fortawesome/free-regular-svg-icons\",\"commonjs2\":\"@fortawesome/free-regular-svg-icons\",\"amd\":\"@fortawesome/free-regular-svg-icons\",\"root\":\"@fortawesome/free-regular-svg-icons\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"@fortawesome/free-solid-svg-icons\",\"commonjs2\":\"@fortawesome/free-solid-svg-icons\",\"amd\":\"@fortawesome/free-solid-svg-icons\",\"root\":\"@fortawesome/free-solid-svg-icons\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"@fortawesome/react-fontawesome\",\"commonjs2\":\"@fortawesome/react-fontawesome\",\"amd\":\"@fortawesome/react-fontawesome\",\"root\":\"@fortawesome/react-fontawesome\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"lodash\",\"commonjs2\":\"lodash\",\"amd\":\"lodash\",\"root\":\"_\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"React\",\"root\":\"React\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-bootstrap\",\"commonjs2\":\"react-bootstrap\",\"amd\":\"react-bootstrap\",\"root\":\"react-bootstrap\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-dnd\",\"commonjs2\":\"react-dnd\",\"amd\":\"react-dnd\",\"root\":\"react-dnd\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-draggable\",\"commonjs2\":\"react-draggable\",\"amd\":\"Draggable\",\"root\":\"Draggable\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-dropzone\",\"commonjs2\":\"react-dropzone\",\"amd\":\"Dropzone\",\"root\":\"Dropzone\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-flow-renderer\",\"commonjs2\":\"react-flow-renderer\",\"amd\":\"react-flow-renderer\",\"root\":\"react-flow-renderer\"}","webpack://chem-generic-ui/external umd {\"commonjs\":\"react-select\",\"commonjs2\":\"react-select\",\"amd\":\"Select\",\"root\":\"Select\"}","webpack://chem-generic-ui/webpack/bootstrap","webpack://chem-generic-ui/webpack/runtime/compat get default export","webpack://chem-generic-ui/webpack/runtime/define property getters","webpack://chem-generic-ui/webpack/runtime/harmony module decorator","webpack://chem-generic-ui/webpack/runtime/hasOwnProperty shorthand","webpack://chem-generic-ui/webpack/runtime/make namespace object","webpack://chem-generic-ui/./src/asserts/main.css?bcb4"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-bootstrap\"), require(\"lodash\"), require(\"@fortawesome/react-fontawesome\"), require(\"@fortawesome/free-regular-svg-icons\"), require(\"react-select\"), require(\"react-dropzone\"), require(\"react-dnd\"), require(\"@fortawesome/free-solid-svg-icons\"), require(\"react-draggable\"), require(\"react-flow-renderer\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"React\", \"react-bootstrap\", \"lodash\", \"@fortawesome/react-fontawesome\", \"@fortawesome/free-regular-svg-icons\", \"Select\", \"Dropzone\", \"react-dnd\", \"@fortawesome/free-solid-svg-icons\", \"Draggable\", \"react-flow-renderer\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"react\"), require(\"react-bootstrap\"), require(\"lodash\"), require(\"@fortawesome/react-fontawesome\"), require(\"@fortawesome/free-regular-svg-icons\"), require(\"react-select\"), require(\"react-dropzone\"), require(\"react-dnd\"), require(\"@fortawesome/free-solid-svg-icons\"), require(\"react-draggable\"), require(\"react-flow-renderer\")) : factory(root[\"React\"], root[\"react-bootstrap\"], root[\"_\"], root[\"@fortawesome/react-fontawesome\"], root[\"@fortawesome/free-regular-svg-icons\"], root[\"Select\"], root[\"Dropzone\"], root[\"react-dnd\"], root[\"@fortawesome/free-solid-svg-icons\"], root[\"Draggable\"], root[\"react-flow-renderer\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})(self, function(__WEBPACK_EXTERNAL_MODULE__4639__, __WEBPACK_EXTERNAL_MODULE__8512__, __WEBPACK_EXTERNAL_MODULE__7607__, __WEBPACK_EXTERNAL_MODULE__6615__, __WEBPACK_EXTERNAL_MODULE__4410__, __WEBPACK_EXTERNAL_MODULE__327__, __WEBPACK_EXTERNAL_MODULE__4135__, __WEBPACK_EXTERNAL_MODULE__2854__, __WEBPACK_EXTERNAL_MODULE__5963__, __WEBPACK_EXTERNAL_MODULE__6826__, __WEBPACK_EXTERNAL_MODULE__6848__) {\nreturn ","import React, { useState } from 'react';\nimport { Button } from 'react-bootstrap';\n\nconst ElementManager = () => {\n const [count, setCount] = useState(0);\n return (\n <div>\n <p>\n You clicked\n {count}\n {' '}\n times\n </p>\n <Button bsStyle=\"primary\" onClick={() => setCount(count + 1)}>\n Click me\n </Button>\n </div>\n );\n};\n\nexport default ElementManager;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Form, FormControl, FormGroup, InputGroup, Modal, Button\n} from 'react-bootstrap';\n\nexport default class SelectAttrNewModal extends Component {\n handleCreate() {\n const { fnCreate } = this.props;\n fnCreate(this.s_selectKey.value.trim());\n }\n\n render() {\n const { showModal, fnClose } = this.props;\n return (\n <Modal backdrop=\"static\" show={showModal} onHide={() => fnClose()}>\n <Modal.Header closeButton><Modal.Title>New Select List</Modal.Title></Modal.Header>\n <Modal.Body style={{ overflow: 'auto' }}>\n <div className=\"col-md-12\">\n <Form horizontal className=\"input-form\">\n <FormGroup controlId=\"formControlSelectKey\">\n <InputGroup>\n <InputGroup.Addon>Name</InputGroup.Addon>\n <FormControl type=\"text\" inputRef={(ref) => { this.s_selectKey = ref; }} />\n </InputGroup>\n <div className=\"help\">\n Seletc List name is unique in the template\n <br />\n Seletc List name must contain only lowercase letters and underscores\n <br />\n Seletc List name should not contain special characters like $, !, %, etc.\n </div>\n </FormGroup>\n </Form>\n <FormGroup>\n <Button\n bsStyle=\"primary\"\n onClick={() => this.handleCreate()}\n >\n Add new select list to template workspace \n <i className=\"fa fa-hdd-o\" aria-hidden=\"true\" />\n </Button>\n \n <Button bsStyle=\"warning\" onClick={() => fnClose()}>Cancel</Button>\n </FormGroup>\n </div>\n </Modal.Body>\n </Modal>\n );\n }\n}\n\nSelectAttrNewModal.propTypes = {\n showModal: PropTypes.bool.isRequired,\n fnClose: PropTypes.func.isRequired,\n fnCreate: PropTypes.func.isRequired,\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormControl, FormGroup, InputGroup } from 'react-bootstrap';\nimport { cloneDeep } from 'lodash';\nimport renderDeleteButton from './renderDeleteButton';\nimport ButtonTooltip from '../fields/ButtonTooltip';\n\nexport default class SelectOption extends Component {\n handleCreate() {\n const { generic, root, fnAddOption } = this.props;\n const input = this.inputNewOption.value.trim();\n const newOption = { key: input, label: input };\n\n // prepare generic with new options of root\n const deep = cloneDeep(generic);\n const selectObj = (deep && deep.properties_template\n && deep.properties_template.select_options[root]\n && deep.properties_template.select_options[root].options) || [];\n selectObj.push(newOption);\n\n fnAddOption(root, input, selectObj); // return [root, new option, new options]\n }\n\n render() {\n const { generic, root, fnChange } = this.props;\n return (\n <FormGroup bsSize=\"sm\" style={{ marginBottom: 'unset', display: 'inline-table' }}>\n <InputGroup>\n <InputGroup.Button>\n {renderDeleteButton(generic, 'Select', root, '', fnChange)}\n </InputGroup.Button>\n <FormControl\n type=\"text\"\n name=\"input_newOption\"\n inputRef={(ref) => { this.inputNewOption = ref; }}\n placeholder=\"Input new option\"\n bsSize=\"sm\"\n />\n <InputGroup.Button>\n <ButtonTooltip\n tip=\"Add new option\"\n fnClick={() => this.handleCreate()}\n fa=\"fa-plus\"\n size=\"sm\"\n />\n </InputGroup.Button>\n </InputGroup>\n </FormGroup>\n );\n }\n}\n\nSelectOption.propTypes = {\n generic: PropTypes.object.isRequired,\n root: PropTypes.string.isRequired,\n fnChange: PropTypes.func.isRequired,\n fnAddOption: PropTypes.func.isRequired\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n FormGroup, FormControl, InputGroup, Panel\n} from 'react-bootstrap';\nimport { findIndex } from 'lodash';\nimport renderDeleteButton from './renderDeleteButton';\nimport SelectAttrNewModal from './SelectAttrNewModal';\nimport SelectOption from './SelectOption';\nimport ButtonTooltip from '../fields/ButtonTooltip';\n\nconst onOptionInputChange = (event, optionKey, selectKey, generic, fnChange) => {\n const options = (generic && generic.properties_template\n && generic.properties_template.select_options[selectKey]\n && generic.properties_template.select_options[selectKey].options) || [];\n const idx = findIndex(options, o => o.key === optionKey);\n const op = {};\n op.key = optionKey;\n op.label = event.target.value;\n options.splice(idx, 1, op);\n fnChange(generic);\n};\n\nconst optionR = (props) => {\n const {\n generic, key, root, label, fnChange\n } = props;\n return (\n <FormGroup bsSize=\"sm\" controlId={`_cgu_frmCtrlSelectOption_${key}`}>\n <InputGroup>\n <InputGroup.Addon>{key}</InputGroup.Addon>\n <FormControl\n type=\"text\"\n name=\"lf_label\"\n defaultValue={label}\n onChange={event => onOptionInputChange(event, key, root, generic, fnChange)}\n />\n <InputGroup.Button>\n {renderDeleteButton(generic, 'Option', key, root, fnChange)}\n </InputGroup.Button>\n </InputGroup>\n </FormGroup>\n );\n};\n\nconst SelectOptionLayer = (props) => {\n const {\n generic, fnChange, fnAddSelect, fnAddOption\n } = props;\n\n const [showAddSelect, setShowAddSelect] = useState(false);\n\n const selects = [];\n Object.keys(generic.properties_template.select_options).forEach((root) => {\n const soptions = (generic.properties_template.select_options[root]\n && generic.properties_template.select_options[root].options) || [];\n const options = soptions.map(f => (\n <div key={`${f.key}_${root}`} style={{ marginTop: '10px' }}>\n {optionR({\n generic, key: f.key, root, label: f.label, fnChange\n })}\n </div>\n ));\n\n const snode = (\n <Panel className=\"panel_generic_properties\" defaultExpanded key={`select_options_${root}`}>\n <Panel.Heading className=\"template_panel_heading\">\n <Panel.Title toggle>{root}</Panel.Title>\n <div>\n <SelectOption\n generic={generic}\n root={root}\n fnAddOption={fnAddOption}\n fnChange={fnChange}\n />\n </div>\n </Panel.Heading>\n <Panel.Collapse><Panel.Body>{options}</Panel.Body></Panel.Collapse>\n </Panel>\n );\n selects.push(snode);\n });\n\n // data validation is outside of this project\n const handleAddSelect = (selectName) => {\n const sos = { ...generic.properties_template.select_options };\n sos[selectName] = {};\n fnAddSelect(selectName, sos); // return [new select name, new select_options]\n setShowAddSelect(false);\n };\n\n return (\n <div>\n <Panel>\n <Panel.Heading>\n <Panel.Title>\n Select Lists\n <ButtonTooltip\n tip=\"Add new select list\"\n fnClick={() => setShowAddSelect(true)}\n fa=\"fa-plus\"\n size=\"xs\"\n txt=\"Add new select list\"\n btnCls=\"button-right\"\n />\n </Panel.Title>\n </Panel.Heading>\n <Panel.Body><div>{ selects }</div></Panel.Body>\n </Panel>\n <SelectAttrNewModal\n showModal={showAddSelect}\n fnClose={() => setShowAddSelect(false)}\n fnCreate={handleAddSelect}\n />\n </div>\n );\n};\n\nSelectOptionLayer.propTypes = {\n generic: PropTypes.object.isRequired,\n fnChange: PropTypes.func.isRequired,\n fnAddSelect: PropTypes.func,\n fnAddOption: PropTypes.func\n};\n\nSelectOptionLayer.defaultProps = { fnAddSelect: () => {}, fnAddOption: () => {} };\n\nexport default SelectOptionLayer;\n","import React from 'react';\nimport ButtonDelField from '../fields/ButtonDelField';\n\nconst renderDeleteButton = (generic, delType, delKey, delRoot, fnConfirm) => (\n <ButtonDelField\n generic={generic}\n delType={delType}\n delKey={delKey}\n delRoot={delRoot}\n fnConfirm={fnConfirm}\n />\n);\n\nexport default renderDeleteButton;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Modal } from 'react-bootstrap';\nimport Constants from '../tools/Constants';\n\nconst NoDataModal = (props) => {\n const { show, title, fnHide } = props;\n return (\n <Modal show={show} bsSize=\"small\" onHide={fnHide}>\n <Modal.Header closeButton>\n <Modal.Title>{title}</Modal.Title>\n </Modal.Header>\n <Modal.Body>No Data</Modal.Body>\n </Modal>\n );\n};\n\nconst GenAnaModal = (props) => {\n const {\n show, generic, layer, fnHide, fnLink\n } = props;\n if (!show) return null;\n const { name, container, properties } = generic;\n const specLayer = (properties && properties.layers && properties.layers[layer]); // pick up the layer\n const title = specLayer.label;\n let ai = (container && container.children && container.children[0].children) || [];\n ai = ai.filter(x => !x.is_new); // get ai is not new\n if (ai.length < 1 || !title) { // means no analysis\n return (\n <NoDataModal\n show={show}\n title={`Analyses, select to link to Layer ${title}`}\n fnHide={fnHide}\n />\n );\n }\n\n const layerAi = (specLayer.ai) || []; // means linked analisys array\n const row = _ai => (\n <div>\n <div className=\"generic_grid_row generic_grid_row_left\">\n {_ai.name}\n </div>\n <div className=\"generic_grid_row generic_grid_row_left\">\n <Button\n bsStyle=\"success\"\n bsSize=\"xsmall\"\n className=\"gu_button_right\"\n onClick={() => fnLink(_ai.id, layer, Constants.BTN_AI_LINK)}\n disabled={layerAi.includes(_ai.id)}\n >\n {Constants.BTN_AI_LINK}\n </Button>\n <Button\n bsStyle=\"danger\"\n bsSize=\"xsmall\"\n className=\"gu_button_right\"\n onClick={() => fnLink(_ai.id, layer, Constants.BTN_AI_UNLINK)}\n disabled={!layerAi.includes(_ai.id)}\n >\n {Constants.BTN_AI_UNLINK}\n </Button>\n </div>\n </div>\n );\n\n const rows = [];\n ai.forEach((_ai) => {\n rows.push(row(_ai));\n });\n\n return (\n <Modal show={show} onHide={fnHide}>\n <Modal.Header closeButton>\n <Modal.Title>\n <b>{name}</b>\n {' '}\n Analyses\n <br />\n select to link/unlink to Layer\n {' '}\n <b>{title}</b>\n </Modal.Title>\n </Modal.Header>\n <Modal.Body>\n <div style={{ maxHeight: '80vh', overflow: 'auto' }}>\n <div className=\"generic_grid\">{rows}</div>\n </div>\n </Modal.Body>\n </Modal>\n );\n};\n\nGenAnaModal.propTypes = {\n show: PropTypes.bool.isRequired,\n generic: PropTypes.object.isRequired,\n layer: PropTypes.string.isRequired,\n fnHide: PropTypes.func.isRequired,\n fnLink: PropTypes.func.isRequired\n};\n\nexport default GenAnaModal;\n","/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findIndex, cloneDeep } from 'lodash';\nimport {\n Panel, Button, ButtonToolbar, OverlayTrigger, Tooltip\n} from 'react-bootstrap';\nimport GenInterface from './GenInterface';\nimport {\n genUnits, toBool, toNum, absOlsTermLabel\n} from '../tools/utils';\n\nclass GenericDSDetails extends Component {\n constructor(props) {\n super(props);\n this.handleReload = this.handleReload.bind(this);\n }\n\n handleReload() {\n const { klass, genericDS, onChange } = this.props;\n if (klass.properties_release) {\n const newProps = cloneDeep(klass.properties_release);\n newProps.klass_uuid = klass.uuid;\n Object.keys(newProps.layers).forEach(key => {\n const newLayer = newProps.layers[key] || {};\n const curFields = (genericDS.properties.layers[key] && genericDS.properties.layers[key].fields) || [];\n (newLayer.fields || []).forEach((f, idx) => {\n const curIdx = findIndex(curFields, o => o.field === f.field);\n if (curIdx >= 0) {\n const curVal = genericDS.properties.layers[key].fields[curIdx].value;\n const curType = typeof curVal;\n if (['select', 'text', 'textarea', 'formula-field'].includes(newProps.layers[key].fields[idx].type)) {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? curVal.toString() : '';\n }\n if (newProps.layers[key].fields[idx].type === 'integer') {\n // eslint-disable-next-line no-restricted-globals\n newProps.layers[key].fields[idx].value = (curType === 'undefined' || curType === 'boolean' || isNaN(curVal)) ? 0 : parseInt(curVal, 10);\n }\n if (newProps.layers[key].fields[idx].type === 'checkbox') {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? toBool(curVal) : false;\n }\n if (newProps.layers[key].fields[idx].type === 'system-defined') {\n const units = genUnits(newProps.layers[key].fields[idx].option_layers);\n const vs = units.find(u => u.key === genericDS.properties.layers[key].fields[curIdx].value_system);\n newProps.layers[key].fields[idx].value_system = (vs && vs.key) || units[0].key;\n newProps.layers[key].fields[idx].value = toNum(curVal);\n }\n }\n });\n });\n genericDS.properties = newProps;\n genericDS.dataset_klass_id = klass.id;\n genericDS.klass_ols = klass.ols_term_id;\n genericDS.klass_label = klass.label;\n genericDS.changed = true;\n onChange(genericDS);\n } else {\n onChange(undefined);\n }\n }\n\n elementalPropertiesItem(genericDS) {\n const { onChange } = this.props;\n const layersLayout = (\n <GenInterface\n generic={genericDS}\n fnChange={onChange}\n extLayers={[]}\n genId={0}\n isPreview={false}\n isSearch={false}\n isActiveWF={false}\n />\n );\n return (<div style={{ margin: '5px' }}>{layersLayout}</div>);\n }\n\n render() {\n const { uiCtrl, genericDS, kind } = this.props;\n if (uiCtrl && Object.keys(genericDS).length !== 0 && kind && kind !== '') {\n return (\n <Panel className=\"panel-detail\">\n <Panel.Body style={{ position: 'relative', minHeight: 260, overflowY: 'unset' }}>\n {this.elementalPropertiesItem(genericDS)}\n <span className=\"g-ds-note label\">\n <span className=\"g-ds-title\">Note</span>\n <br />\n Selected analysis type:\n {' '}\n {absOlsTermLabel(kind)}\n <br />\n Content is designed for:\n {' '}\n {genericDS.klass_label}\n </span>\n <ButtonToolbar className=\"pull-right\">\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id=\"_tooltip_reload\">click to reload the content template</Tooltip>}>\n <Button bsSize=\"xsmall\" bsStyle=\"danger\" onClick={() => this.handleReload()}>Reload</Button>\n </OverlayTrigger>\n </ButtonToolbar>\n </Panel.Body>\n </Panel>\n );\n }\n return null;\n }\n}\n\nGenericDSDetails.propTypes = {\n uiCtrl: PropTypes.bool.isRequired, // MatrixCheck(currentUser.matrix, 'genericDataset')\n kind: PropTypes.string, // selected analysis type\n genericDS: PropTypes.object,\n klass: PropTypes.object, // dataset_klass\n onChange: PropTypes.func.isRequired // change callback\n};\nGenericDSDetails.defaultProps = { kind: '', genericDS: {}, klass: {} };\n\n// export default DragDropContext(HTML5Backend)(GenericDSDetails);\nexport default GenericDSDetails;\n","/* eslint-disable react/no-unused-prop-types */\n/* eslint-disable camelcase */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { cloneDeep, findIndex, sortBy } from 'lodash';\nimport GenAnaModal from './GenAnaModal';\nimport LayersLayout from '../layers/LayersLayout';\nimport LayerModal from '../layers/LayerModal';\nimport Constants from '../tools/Constants';\nimport {\n getWFNode, getFlowLayer, addToObject, removeFromObject, orgLayerObject, reformCondFields\n} from '../tools/orten';\nimport {\n genUnits, swapAryEls, unitConversion, uploadFiles\n} from '../tools/utils';\nimport useReducerWithCallback from '../tools/useReducerWithCallback';\n\nconst initialState = { showViewLayer: false, selectedLayerKey: '', showAnaModal: false };\n\nconst reducer = (state, action) => ({ ...state, ...action });\n\nconst GenInterface = (props) => {\n const [state, dispatch] = useReducerWithCallback(reducer, initialState);\n const {\n generic, fnChange, extLayers, genId, isPreview, isActiveWF, isSearch, fnNavi, isSpCall, aiComp\n } = props;\n\n if (Object.keys(generic).length === 0) return null;\n\n const { container } = generic;\n\n const layerDrop = (_source, _target) => {\n const { layers } = generic.properties;\n let sortedLayers = sortBy(layers, ['position', 'wf_position']);\n // swap or move\n const srcIdx = sortedLayers.findIndex(e => e.key === _source);\n const tmpSrc = sortedLayers[srcIdx];\n let tarIdx = sortedLayers.findIndex(e => e.key === _target);\n if (Math.abs(srcIdx - tarIdx) === 1) {\n sortedLayers = swapAryEls(sortedLayers, srcIdx, tarIdx);\n } else {\n // delete src\n sortedLayers.splice(srcIdx, 1);\n // keep tar\n tarIdx = sortedLayers.findIndex(e => e.key === _target);\n const tmpTar = sortedLayers[tarIdx];\n // prepare new layer\n tmpSrc.position = tmpTar.position;\n tmpSrc.wf_position = (tmpTar.wf_position || 0) + 1;\n // insert new layer\n sortedLayers.splice(tarIdx + 1, 0, tmpSrc);\n }\n // re-count wf_position\n sortedLayers.filter(e => e.position === tmpSrc.position).map((e, idx) => {\n const el = e;\n el.wf_position = idx;\n return el;\n });\n const ll = orgLayerObject(sortedLayers);\n generic.properties.layers = ll;\n generic.changed = true;\n fnChange(generic);\n };\n\n const layerRemove = (elId, layer) => {\n const { layers } = generic.properties;\n const sortedLayers = sortBy(layers, ['position', 'wf_position']);\n const selectedIdx = sortedLayers.findIndex(e => e.key === layer.key);\n const selected = sortedLayers[selectedIdx];\n sortedLayers.splice(selectedIdx, 1);\n sortedLayers.filter(e => e.position === selected.position).map((e, idx) => {\n const el = e;\n el.wf_position = idx;\n return el;\n });\n generic.properties.layers = orgLayerObject(sortedLayers);\n generic.changed = true;\n fnChange(generic);\n };\n\n const layerNext = (event, layer) => {\n const value = event ? event.value : null;\n if (value) {\n const { properties, properties_release } = generic;\n // next step value if exists\n let rmNeeded = false;\n const preValue = properties.layers[`${layer}`].fields.find(e => e.field === '_wf_next').value;\n if (value !== preValue) {\n if (preValue && preValue !== '' && preValue !== value) {\n rmNeeded = true;\n }\n const { flow } = properties_release;\n const preLayer = properties.layers[`${layer}`];\n // value is the next node's id\n const nxLayer = getFlowLayer(flow, value, layer, preLayer.wf_position);\n if (nxLayer) {\n properties.layers = addToObject(properties.layers, layer, nxLayer);\n }\n if (rmNeeded) {\n properties.layers = removeFromObject(properties.layers, layer, getWFNode(flow, preValue));\n }\n // update next step value\n properties.layers[`${layer}`].fields.find(e => e.field === '_wf_next').value = value;\n generic.properties = properties;\n generic.changed = true;\n // this.props.onChange(segment, () => renderFlowModal(segment, false));\n fnChange(generic); // cb move to e.g. SampleDetails.js\n }\n }\n };\n\n const handleLinkAi = (pAiId, pLayer, pAct) => {\n let propsChange = false;\n const { layers } = generic.properties;\n const selectedLayer = layers[pLayer];\n let layerAi = selectedLayer.ai || [];\n switch (pAct) {\n case Constants.BTN_AI_UNLINK:\n layerAi = layerAi.filter(x => x !== pAiId);\n propsChange = true;\n break;\n case Constants.BTN_AI_LINK:\n layerAi.push(pAiId);\n propsChange = true;\n break;\n default:\n break;\n }\n if (propsChange) {\n selectedLayer.ai = layerAi;\n generic.properties.layers[pLayer] = selectedLayer;\n dispatch({ showAnaModal: false, selectedLayerKey: pLayer }, () => {\n fnChange(generic);\n });\n }\n };\n\n const handleAddLayer = (event, _layer) => {\n const layer = _layer;\n const { layers } = generic.properties;\n const sortedLayers = sortBy(layers, ['position', 'wf_position']);\n const idx = sortedLayers.findIndex(e => e.key === state.selectedLayerKey);\n // re-set added layer attributes\n const selectedLayer = sortedLayers[idx];\n layer.position = selectedLayer.position;\n layer.wf_position = selectedLayer.wf_position + 1;\n layer.wf = false;\n layer.wf_uuid = null;\n // layer is standard layer (from released)\n const cnt = sortedLayers\n .filter(e => e.key === layer.key || e.key.startsWith(`${layer.key}.`)).length;\n if (cnt > 0) {\n const origKey = layer.key;\n layer.key = `${layer.key}.${cnt}`;\n layer.fields = reformCondFields(layer, origKey);\n }\n // insert new layer\n sortedLayers.splice(idx + 1, 0, layer);\n // re-count wf_position\n sortedLayers.filter(e => e.position === selectedLayer.position).map((e, ix) => {\n const el = e;\n el.wf_position = ix;\n return el;\n });\n const ll = orgLayerObject(sortedLayers);\n generic.properties.layers = ll;\n dispatch({ showViewLayer: false, selectedLayerKey: layer.key }, () => {\n fnChange(generic);\n });\n };\n\n const handleInputChange = (event, field, layer, type = 'text') => {\n const { properties } = generic;\n let value = '';\n let propsChange = true;\n switch (type) {\n case 'drop-layer':\n layerDrop(field, layer);\n propsChange = false;\n break;\n case 'layer-remove':\n event.stopPropagation();\n layerRemove(field, layer);\n propsChange = false;\n break;\n case 'layer-modal':\n event.stopPropagation();\n propsChange = false;\n dispatch({ showViewLayer: true, selectedLayerKey: layer.key });\n break;\n case 'ana-modal':\n event.stopPropagation();\n propsChange = false;\n dispatch({ showAnaModal: true, selectedLayerKey: layer.key });\n break;\n case 'wf-next':\n propsChange = false;\n layerNext(event, layer);\n break;\n case 'checkbox':\n value = event.target.checked;\n break;\n case 'formula-field':\n if (event.target) {\n ({ value } = event.target);\n } else {\n value = event;\n }\n break;\n case 'upload': {\n const vals = uploadFiles(properties, event, field, layer);\n value = vals[0];\n if (vals[1].length > 0) generic.files = (generic.files || []).concat(vals[1]);\n if (vals.length > 2) {\n const fileIdx = findIndex((generic.files || []), o => o.uid === event.uid);\n if (fileIdx >= 0 && generic.files && generic.files.length > 0) {\n generic.files.splice(fileIdx, 1);\n }\n }\n break;\n }\n case 'select':\n value = event ? event.value : null;\n break;\n case 'drag_molecule':\n value = event;\n break;\n case 'drag_sample':\n value = event;\n break;\n case 'drag_element':\n value = event;\n break;\n case 'integer':\n ({ value } = event.target);\n value = Math.trunc(value);\n break;\n default:\n ({ value } = event.target);\n }\n if (layer === '' && ['name', 'search_name', 'search_short_label'].includes(field)) {\n ({ value } = event.target);\n generic[field] = value;\n }\n if (isSearch && type.startsWith('drag_')) {\n ({ value } = event.target);\n }\n if (propsChange) {\n if (layer === '' && ['name', 'search_name', 'search_short_label'].includes(field)) {\n console.log(field);\n } else {\n properties.layers[`${layer}`].fields.find(e => e.field === field).value = value;\n if (type === 'system-defined' && (!properties.layers[`${layer}`].fields.find(e => e.field === field).value_system || properties.layers[`${layer}`].fields.find(e => e.field === field).value_system === '')) {\n const opt = properties.layers[`${layer}`].fields\n .find(e => e.field === field).option_layers;\n properties.layers[`${layer}`].fields\n .find(e => e.field === field).value_system = genUnits(opt)[0].key;\n }\n generic.properties = properties;\n if (isSearch) generic.search_properties = properties;\n }\n generic.changed = true;\n fnChange(generic);\n }\n };\n\n const handleSubChange = (layer, obj, valueOnly = false) => {\n const { properties } = generic;\n if (!valueOnly) {\n const subFields = properties.layers[`${layer}`].fields\n .find(m => m.field === obj.f.field).sub_fields || [];\n const idxSub = subFields.findIndex(m => m.id === obj.sub.id);\n subFields.splice(idxSub, 1, obj.sub);\n properties.layers[`${layer}`].fields\n .find(e => e.field === obj.f.field).sub_fields = subFields;\n }\n properties.layers[`${layer}`].fields\n .find(e => e.field === obj.f.field).sub_values = obj.f.sub_values || [];\n generic.properties = properties;\n generic.changed = true;\n fnChange(generic);\n };\n\n const handleUnitClick = (layer, obj) => {\n const { properties } = generic;\n const newVal = unitConversion(obj.option_layers, obj.value_system, obj.value);\n properties.layers[`${layer}`].fields.find(e => e.field === obj.field).value_system = obj.value_system;\n properties.layers[`${layer}`].fields.find(e => e.field === obj.field).value = newVal;\n generic.properties = properties;\n generic.changed = true;\n fnChange(generic);\n };\n\n let ai = (container && container.children && container.children[0].children) || [];\n ai = ai.filter(x => !x.is_new); // get ai is not new\n\n const paramsLayersLayout = {\n layers: generic.properties.layers,\n options: generic.properties_release.select_options || {},\n funcChange: handleInputChange,\n funcSubChange: handleSubChange,\n funcClick: handleUnitClick,\n extLys: extLayers || [],\n id: genId,\n isPreview: isPreview || false,\n activeWF: isActiveWF || false,\n isSearch,\n fnNavi,\n isSpCall,\n hasAi: (ai.length > 0),\n aiComp\n };\n\n const layersLayout = LayersLayout(paramsLayersLayout);\n\n const addLayerModal = (\n <LayerModal\n show={state.showViewLayer}\n layers={cloneDeep(generic.properties_release.layers) || {}}\n fnClose={() => dispatch({ showViewLayer: !state.showViewLayer })}\n fnAdd={handleAddLayer}\n />\n );\n\n const anaModal = (\n <GenAnaModal\n show={state.showAnaModal}\n generic={generic}\n layer={state.selectedLayerKey}\n fnHide={() => dispatch({ showAnaModal: !state.showAnaModal })}\n fnLink={handleLinkAi}\n />\n );\n\n return (\n <>\n {layersLayout}\n {addLayerModal}\n {anaModal}\n </>\n );\n};\n\nGenInterface.propTypes = {\n generic: PropTypes.object.isRequired,\n fnChange: PropTypes.func.isRequired,\n extLayers: PropTypes.array,\n genId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n isPreview: PropTypes.bool.isRequired,\n isActiveWF: PropTypes.bool.isRequired,\n isSearch: PropTypes.bool,\n fnNavi: PropTypes.func,\n isSpCall: PropTypes.bool,\n aiComp: PropTypes.any\n};\n\nGenInterface.defaultProps = {\n extLayers: [],\n isSearch: false,\n genId: 0,\n fnNavi: () => {},\n isSpCall: false,\n aiComp: null\n};\n\nexport default GenInterface;\n","/* eslint-disable camelcase */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport GenInterface from './GenInterface';\n\nconst GenInterfaceSP = (props) => {\n const { generic, fnChange } = props;\n if (Object.keys(generic).length === 0) return null;\n return (\n <GenInterface\n generic={generic}\n fnChange={fnChange}\n extLayers={[]}\n genId={0}\n isPreview={false}\n isSearch={false}\n isActiveWF={false}\n isSpCall\n />\n );\n};\n\nGenInterfaceSP.propTypes = {\n generic: PropTypes.object.isRequired,\n fnChange: PropTypes.func.isRequired,\n};\n\nexport default GenInterfaceSP;\n","/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { findIndex, cloneDeep } from 'lodash';\nimport { Panel } from 'react-bootstrap';\nimport GenInterface from './GenInterface';\nimport {\n genUnits, toBool, toNum\n} from '../tools/utils';\nimport organizeSubValues from '../tools/collate';\n\nclass SegmentDetails extends Component {\n constructor(props) {\n super(props);\n this.handleReload = this.handleReload.bind(this);\n }\n\n handleReload() {\n const { klass, segment, onChange } = this.props;\n const newProps = cloneDeep(klass.properties_release);\n newProps.klass_uuid = klass.uuid;\n Object.keys(newProps.layers).forEach(key => {\n const newLayer = newProps.layers[key] || {};\n const curFields = (segment.properties.layers[key] && segment.properties.layers[key].fields)\n || [];\n (newLayer.fields || []).forEach((f, idx) => {\n const curIdx = findIndex(curFields, o => o.field === f.field);\n if (curIdx >= 0) {\n const curVal = segment.properties.layers[key].fields[curIdx].value;\n const curType = typeof curVal;\n if (['select', 'text', 'textarea', 'formula-field'].includes(newProps.layers[key].fields[idx].type)) {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? curVal.toString() : '';\n }\n if (newProps.layers[key].fields[idx].type === 'integer') {\n newProps.layers[key].fields[idx].value = (curType === 'undefined' || curType === 'boolean' || isNaN(curVal)) ? 0 : parseInt(curVal, 10);\n }\n if (newProps.layers[key].fields[idx].type === 'checkbox') {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? toBool(curVal) : false;\n }\n if (newProps.layers[key].fields[idx].type === 'system-defined') {\n const units = genUnits(newProps.layers[key].fields[idx].option_layers);\n const vs = units.find(u => u.key === segment.properties.layers[key].fields[curIdx].value_system);\n newProps.layers[key].fields[idx].value_system = (vs && vs.key) || units[0].key;\n newProps.layers[key].fields[idx].value = toNum(curVal);\n }\n if (newProps.layers[key].fields[idx].type === 'input-group') {\n if (segment.properties.layers[key].fields[curIdx].type\n !== newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].value = undefined;\n } else {\n const nSubs = newProps.layers[key].fields[idx].sub_fields || [];\n const cSubs = segment.properties.layers[key].fields[curIdx].sub_fields || [];\n const exSubs = [];\n if (nSubs.length < 1) {\n newProps.layers[key].fields[idx].value = undefined;\n } else {\n nSubs.forEach(nSub => {\n const hitSub = cSubs.find(c => c.id === nSub.id) || {};\n if (nSub.type === 'label') { exSubs.push(nSub); }\n if (nSub.type === 'text') {\n if (hitSub.type === 'label') {\n exSubs.push(nSub);\n } else { exSubs.push({ ...nSub, value: (hitSub.value || '').toString() }); }\n }\n\n if (['number', 'system-defined'].includes(nSub.type)) {\n const nvl = (typeof hitSub.value === 'undefined' || hitSub.value == null || hitSub.value.length === 0) ? '' : toNum(hitSub.value);\n if (nSub.option_layers === hitSub.option_layers) {\n exSubs.push({ ...nSub, value: nvl, value_system: hitSub.value_system });\n } else {\n exSubs.push({ ...nSub, value: nvl });\n }\n }\n });\n }\n newProps.layers[key].fields[idx].sub_fields = exSubs;\n }\n }\n if (newProps.layers[key].fields[idx].type === 'upload') {\n if (segment.properties.layers[key].fields[curIdx].type\n === newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].value = segment.properties.layers[key].fields[curIdx].value;\n } else {\n newProps.layers[key].fields[idx].value = {};\n }\n }\n if (newProps.layers[key].fields[idx].type === 'table') {\n if (segment.properties.layers[key].fields[curIdx].type\n !== newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].sub_values = [];\n } else {\n newProps.layers[key].fields[idx].sub_values = organizeSubValues(\n newProps.layers[key].fields[idx],\n segment.properties.layers[key].fields[curIdx]\n );\n }\n }\n }\n });\n });\n segment.properties = newProps;\n segment.changed = true;\n onChange(segment);\n }\n\n elementalPropertiesItem(segment) {\n const { onChange, fnNavi, isSearch } = this.props;\n const layersLayout = (\n <GenInterface\n generic={segment}\n fnChange={onChange}\n extLayers={[]}\n genId={0}\n isPreview={false}\n isSearch={isSearch}\n isActiveWF\n fnNavi={fnNavi}\n />\n );\n return (<div style={{ margin: '5px' }}>{layersLayout}</div>);\n }\n\n render() {\n const { uiCtrl, segment } = this.props;\n if (!uiCtrl || Object.keys(segment).length === 0) return null;\n return (\n <div>\n <Panel>\n <Panel.Body style={{ position: 'relative', minHeight: 260, overflowY: 'unset' }}>\n {this.elementalPropertiesItem(segment)}\n </Panel.Body>\n </Panel>\n </div>\n );\n }\n}\n\nSegmentDetails.propTypes = {\n uiCtrl: PropTypes.bool.isRequired,\n segment: PropTypes.object,\n klass: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n fnNavi: PropTypes.func\n};\n\nSegmentDetails.defaultProps = { segment: {}, klass: {}, fnNavi: () => {} };\n\nexport default SegmentDetails;\n","export default {\n ELEMENT: 'element',\n SAMPLE: 'sample',\n MOLECULE: 'molecule',\n LAYOUT: 'layout',\n GENERAL: 'general',\n DATA: 'data',\n UNLINKED_DATA: 'unlinked_data',\n DATASET: 'dataset',\n CONTAINER: 'container',\n ELEMENT_FIELD: 'element_field',\n GENERIC_GRID: 'generic_grid'\n};\n","/* eslint-disable react/prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { DropTarget } from 'react-dnd';\nimport { Tooltip, OverlayTrigger, Popover } from 'react-bootstrap';\nimport Constants from '../tools/Constants';\nimport { KlzIcon } from '../tools/utils';\n\nconst show = (opt, iconClass, onNavi) => {\n if (opt.value && opt.value.el_id) {\n let elSvg = opt.value.el_svg;\n if (opt.value.el_type === 'sample') {\n if (elSvg && !elSvg.endsWith('.svg') && opt.value.el_decoupled) {\n elSvg = Constants.IMG_UNDEFINED_STRUCTURE_SVG;\n }\n }\n if (elSvg && !elSvg.endsWith('.svg')) elSvg = Constants.IMG_NOT_AVAILABLE_SVG;\n const tips = opt.value.el_tip && opt.value.el_tip.split('@@');\n const tip1 = (tips && tips.length >= 1 && tips[0]) || '';\n const tip2 = (tips && tips.length >= 2 && tips[1]) || '';\n const tit = (\n <div>\n {tip1}\n <br />\n {tip2}\n </div>\n );\n const pop = (\n <Popover id=\"popover-svg\" title={tit} style={{ maxWidth: 'none', maxHeight: 'none' }}>\n <img src={elSvg} style={{ height: '26vh', width: '26vh' }} alt=\"\" />\n </Popover>\n );\n let label = opt.value.el_label;\n const asShown = path => ((path === Constants.IMG_UNDEFINED_STRUCTURE_SVG)\n ? null : (\n <OverlayTrigger\n delayShow={1000}\n trigger={['hover']}\n placement=\"top\"\n rootClose\n onHide={null}\n overlay={pop}\n >\n <img className=\"generic_grid_img\" src={path} alt=\"\" />\n </OverlayTrigger>\n ));\n const simg = (path, tip, txt) => ((path && path !== '') ? (\n <div className=\"s-img\">\n {asShown(path)}\n <span className=\"data\">{txt}</span>\n </div>\n ) : (\n <OverlayTrigger\n placement=\"top\"\n overlay={(\n <Tooltip id={uuid()}>\n {tip1}\n <br />\n {tip2}\n </Tooltip>\n )}\n >\n <div className=\"data\">{txt}</div>\n </OverlayTrigger>\n ));\n if (opt.value.el_type === 'sample') {\n if (opt.value.is_new !== true) {\n label = (\n <a role=\"link\" onClick={() => onNavi(opt.value.el_type, opt.value.el_id)} style={{ cursor: 'pointer' }}>\n <span className=\"reaction-material-link\">{label}</span>\n </a>\n );\n }\n }\n if (opt.value.el_type === 'element') {\n label = (\n <a role=\"link\" onClick={() => onNavi(opt.value.el_klass, opt.value.el_id)} style={{ cursor: 'pointer' }}>\n <i className={opt.value.icon_name} />\n {' '}\n <span className=\"reaction-material-link\">{label}</span>\n </a>\n );\n }\n return simg(elSvg, opt.value.el_tip, label);\n }\n if (iconClass === 'element') {\n return (<span className=\"fa fa-link icon_generic_nav indicator\" />);\n }\n return (KlzIcon(`icon-${iconClass} indicator`, { width: '4vw' }));\n};\n\nconst source = (type, props, id) => {\n let isAssoc = false;\n const taggable = (props && props.tag && props.tag.taggable_data) || {};\n if (taggable.element && taggable.element.id === id) {\n isAssoc = false;\n } else {\n isAssoc = !!(taggable.reaction_id || taggable.wellplate_id || taggable.element);\n }\n\n switch (type) {\n case 'molecule':\n return {\n el_id: props.molecule.id,\n el_type: 'molecule',\n el_label: props.molecule_name_label,\n el_tip: `${props.molecule.inchikey}@@${props.molecule.cano_smiles}`,\n };\n case 'sample':\n return {\n el_id: props.id,\n is_new: true,\n cr_opt: isAssoc === true ? 1 : 0,\n isAssoc,\n el_type: 'sample',\n el_label: props.short_label,\n el_tip: props.short_label,\n el_decoupled: props.decoupled || false\n };\n case 'element':\n return {\n el_id: props.id,\n el_type: 'element',\n icon_name: (props.element_klass && props.element_klass.icon_name) || '',\n el_klass: props.type,\n el_label: props.short_label,\n el_tip: `${props.label}@@${props.name}`\n };\n default:\n return {\n el_id: props.id,\n el_type: props.type,\n el_label: props.short_label,\n el_tip: props.short_label,\n };\n }\n};\n\nconst dropTarget = {\n drop(targetProps, monitor) {\n const sourceProps = monitor.getItem().element;\n const sourceTag = source(targetProps.opt.type.split('_')[1], sourceProps, targetProps.opt.id);\n targetProps.onDrop(sourceTag);\n },\n canDrop(_targetProps, _monitor) {\n return true;\n },\n};\n\nconst dropCollect = (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop()\n});\n\nclass GenericElDropTarget extends Component {\n render() {\n const {\n connectDropTarget, isOver, canDrop, opt\n } = this.props;\n const { onNavi } = opt;\n const iconClass = (opt.dndItems && opt.dndItems[0] === 'molecule' ? 'sample' : opt.dndItems[0]);\n const className = `target${isOver ? ' is-over' : ''}${canDrop ? ' can-drop' : ''}`;\n return connectDropTarget(<div className={className}>{show(opt, iconClass, onNavi)}</div>);\n }\n}\n\nexport default\nDropTarget(props => props.opt.dndItems, dropTarget, dropCollect)(GenericElDropTarget);\n\nGenericElDropTarget.propTypes = {\n connectDropTarget: PropTypes.func.isRequired,\n isOver: PropTypes.bool.isRequired,\n canDrop: PropTypes.bool.isRequired,\n};\n","import React from 'react';\nimport { DragSource, DropTarget } from 'react-dnd';\nimport { compose } from 'redux';\n\nconst orderSource = {\n beginDrag(props) {\n const { field, rowValue } = props;\n return { fid: field, rId: rowValue.id };\n },\n};\n\nconst orderTarget = {\n drop(props, monitor) {\n const { field, rowValue, handleMove } = props;\n const tar = { fid: field, rId: rowValue.id };\n const src = monitor.getItem();\n if (tar.fid === src.fid && tar.rId !== src.rId) handleMove(src.rId, tar.rId);\n },\n};\n\nconst orderDragCollect = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n});\n\nconst orderDropCollect = (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n});\n\nconst GridDnD = ({\n connectDragSource, connectDropTarget, isDragging, isOver, canDrop,\n}) => {\n const className = `generic_grid_dnd${isOver ? ' is-over' : ''}${canDrop ? ' can-drop' : ''}${isDragging ? ' is-dragging' : ''}`;\n return compose(connectDragSource, connectDropTarget)(<div className={className}><div className=\"dnd-btn\"><span className=\"text-info fa fa-arrows\" /></div></div>);\n};\n\nexport default compose(\n DragSource(s => s.type, orderSource, orderDragCollect),\n DropTarget(s => s.type, orderTarget, orderDropCollect)\n)(GridDnD);\n","import React from 'react';\nimport { DragSource, DropTarget } from 'react-dnd';\nimport { compose } from 'redux';\nimport {\n Panel, ButtonGroup, OverlayTrigger, Tooltip, Button\n} from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n faArrowsAlt, faPlus, faMinus, faSitemap\n} from '@fortawesome/free-solid-svg-icons';\n\nconst orderSource = {\n canDrag(props) {\n return !props.layer.wf;\n },\n beginDrag(props) {\n const { layer, field, rowValue } = props;\n return { wf: layer.wf, fid: field, rId: rowValue.id };\n },\n};\n\nconst orderTarget = {\n canDrop(props, monitor) {\n const src = monitor.getItem();\n return !props.layer.wf || !src.wf;\n },\n drop(props, monitor) {\n const {\n layer, field, rowValue, handleMove\n } = props;\n const tar = { wf: layer.wf, fid: field, rId: rowValue.id };\n const src = monitor.getItem();\n if (tar.fid === src.fid && tar.rId !== src.rId) handleMove(src.rId, tar.rId);\n },\n};\n\nconst orderDragCollect = (connect, monitor) => ({\n connectDragSource: connect.dragSource(),\n isDragging: monitor.isDragging(),\n});\n\nconst orderDropCollect = (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop(),\n});\n\nconst PanelDnD = ({\n connectDragSource, connectDropTarget, isDragging, isOver, canDrop,\n layer, id, handleChange, bs, hasAi\n}) => {\n const className = `generic_grid_dnd${isOver ? ' is-over' : ''}${canDrop ? ' can-drop' : ''}${isDragging ? ' is-dragging' : ''}`;\n const {\n style, label, wf, key\n } = layer;\n const klz = (style || 'panel_generic_heading').replace('panel_generic_heading', 'panel_generic_heading_slim');\n const btnLinkAna = hasAi ? (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id=\"_tooltip_link_ana\">link analysis</Tooltip>}>\n <Button bsSize=\"xsmall\" onClick={event => handleChange(event, id, layer, 'ana-modal')}>\n <i className=\"fa fa-paperclip\" aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n ) : null;\n const btnAdd = (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id=\"_tooltip_add_layer\">add layer</Tooltip>}>\n <Button bsSize=\"xsmall\" onClick={event => handleChange(event, id, layer, 'layer-modal')}>\n <FontAwesomeIcon icon={faPlus} />\n </Button>\n </OverlayTrigger>\n );\n const btnRemove = (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id=\"_tooltip_remove_layer\">remove layer</Tooltip>}>\n <Button bsSize=\"xsmall\" onClick={event => handleChange(event, id, layer, 'layer-remove')}>\n <FontAwesomeIcon icon={faMinus} />\n </Button>\n </OverlayTrigger>\n );\n const wfIcon = wf ? (\n <span>\n <FontAwesomeIcon icon={faSitemap} />\n </span>\n ) : null;\n const moveIcon = (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id={uuid()}>drag and drop to move position</Tooltip>}>\n <Button onClick={() => {}} bsSize=\"xsmall\"><FontAwesomeIcon icon={faArrowsAlt} /></Button>\n </OverlayTrigger>\n );\n const btnLayer = wf ? (<ButtonGroup className=\"pull-right\">{btnLinkAna}{btnAdd}</ButtonGroup>) : (\n <ButtonGroup className=\"pull-right\">\n {btnLinkAna}\n {btnAdd}\n {btnRemove}\n {moveIcon}\n </ButtonGroup>\n );\n const extHead = (/\\./g.test(key)) ? (\n <>\n (\n {key}\n {wfIcon}\n )\n </>\n ) : null;\n const panelHeader = (\n <Panel.Heading className={klz}>\n <Panel.Title toggle style={{ float: 'left', lineHeight: 'normal' }}>\n {label}\n {' '}\n {extHead}\n </Panel.Title>\n {btnLayer}\n <div className=\"clearfix\" />\n </Panel.Heading>\n );\n const panelHColor = bs !== 'none' ? `panel-${bs}` : '';\n const dndKlz = wf ? `dnd-none ${panelHColor}` : `dnd ${panelHColor}`;\n return compose(connectDragSource, connectDropTarget)(<div className={className}><div className={dndKlz}>{panelHeader}</div></div>);\n};\n\nexport default compose(\n DragSource(s => s.type, orderSource, orderDragCollect),\n DropTarget(s => s.type, orderTarget, orderDropCollect)\n)(PanelDnD);\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, OverlayTrigger, Popover } from 'react-bootstrap';\n\nconst ButtonConfirm = (props) => {\n const {\n msg, size, bs, fnClick, fnParams, place, fa, disabled\n } = props;\n const popover = (\n <Popover id=\"popover-button-confirm\">\n {msg}\n {' '}\n <br />\n <div className=\"btn-toolbar\">\n <Button\n bsSize=\"xsmall\"\n bsStyle=\"danger\"\n aria-hidden=\"true\"\n onClick={() => fnClick(fnParams)}\n >\n Yes\n </Button>\n <span> </span>\n <Button bsSize=\"xsmall\" bsStyle=\"warning\">No</Button>\n </div>\n </Popover>\n );\n\n return (\n <OverlayTrigger animation placement={place} root trigger=\"focus\" overlay={popover}>\n <Button bsSize={size} bsStyle={bs} disabled={disabled}>\n <i className={`fa ${fa}`} aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n );\n};\n\nButtonConfirm.propTypes = {\n msg: PropTypes.string.isRequired,\n fnParams: PropTypes.object.isRequired,\n fnClick: PropTypes.func.isRequired,\n bs: PropTypes.string,\n size: PropTypes.string,\n place: PropTypes.string,\n fa: PropTypes.string,\n disabled: PropTypes.bool,\n};\n\nButtonConfirm.defaultProps = {\n bs: 'danger', size: 'xs', place: 'right', fa: 'fa-trash-o', disabled: false\n};\n\nexport default ButtonConfirm;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { findIndex } from 'lodash';\nimport ButtonConfirm from './ButtonConfirm';\nimport FieldTypes from './FieldTypes';\n\nconst confirmDelete = (props) => {\n const {\n generic, str, key, root, fnConfirm\n } = props;\n if (str === FieldTypes.DEL_SELECT) {\n delete generic.properties_template.select_options[key];\n } else if (str === FieldTypes.DEL_OPTION) {\n const { options } = generic.properties_template.select_options[root];\n if (options && options.length > 0) {\n const idx = findIndex(options, o => o.key === key);\n options.splice(idx, 1);\n }\n } else if (str === FieldTypes.DEL_LAYER) {\n delete generic.properties_template.layers[key];\n } else if (str === FieldTypes.DEL_FIELD) {\n const { fields } = generic.properties_template.layers[root];\n const idx = findIndex(fields, o => o.field === key);\n fields.splice(idx, 1);\n }\n fnConfirm(generic);\n};\n\nconst ButtonDelField = (props) => {\n const {\n generic, delType, delKey, delRoot, fnConfirm\n } = props;\n let msg = 'remove?';\n if (delType === FieldTypes.DEL_SELECT) {\n msg = `remove this select option: [${delKey}] ?`;\n } else if (delType === FieldTypes.DEL_OPTION) {\n msg = `remove this option: [${delKey}] from select [${delRoot}] ?`;\n } else if (delType === FieldTypes.DEL_LAYER) {\n msg = `remove this layer: [${delKey}] ?`;\n } else if (delType === FieldTypes.DEL_FIELD) {\n msg = `remove this field: [${delKey}] from layer [${delRoot}] ?`;\n } else {\n msg = `remove ???: ${delType}`;\n }\n const fnParams = {\n generic, str: delType, key: delKey, root: delRoot, fnConfirm\n };\n\n return (\n <ButtonConfirm\n msg={msg}\n fnClick={confirmDelete}\n fnParams={fnParams}\n bs=\"default\"\n place=\"top\"\n size=\"sm\"\n />\n );\n};\n\nButtonDelField.propTypes = {\n generic: PropTypes.object.isRequired,\n delType: PropTypes.string.isRequired,\n delKey: PropTypes.string,\n delRoot: PropTypes.string,\n fnConfirm: PropTypes.func.isRequired\n};\n\nButtonDelField.defaultProps = { delKey: '', delRoot: '' };\n\nexport default ButtonDelField;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\nimport reinventGeneric from '../tools/reinventGeneric';\n\nconst BTN_RELOAD_TIP = <Tooltip id=\"_cgu_tooltip_reload\">click to reload the template</Tooltip>;\n\nconst ButtonReload = (props) => {\n const { klass, generic, fnReload } = props;\n if (generic && (typeof generic.klass_uuid === 'undefined'\n || generic.klass_uuid === klass.uuid || generic.is_new)) {\n return null;\n }\n\n const handleReload = () => {\n let outGeneric = generic;\n const output = reinventGeneric(generic, klass);\n if (output[1]) {\n outGeneric.properties = output[1];\n outGeneric.changed = true;\n } else {\n outGeneric = output[1];\n }\n outGeneric.properties_release = klass.properties_release;\n fnReload(outGeneric);\n };\n\n return (\n <OverlayTrigger placement=\"top\" overlay={BTN_RELOAD_TIP}>\n <Button bsSize=\"xsmall\" bsStyle=\"primary\" onClick={() => handleReload()}>\n <i className=\"fa fa-refresh\" aria-hidden=\"true\" />\n {' '}\n Reload\n </Button>\n </OverlayTrigger>\n );\n};\n\nButtonReload.propTypes = {\n klass: PropTypes.object,\n generic: PropTypes.object,\n fnReload: PropTypes.func\n};\nButtonReload.defaultProps = {\n klass: {}, generic: {}, fnReload: () => {}\n};\nexport default ButtonReload;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\n\nconst ButtonTooltip = (props) => {\n const { tip } = props;\n const tooltip = <Tooltip id={uuid()}>{tip}</Tooltip>;\n const {\n size, bs, fnClick, element, place, fa, disabled, txt, btnCls\n } = props;\n const content = txt ? (\n <span>\n {txt}\n {' '}\n </span>\n ) : '';\n if (bs === '') {\n return (\n <OverlayTrigger delayShow={1000} placement={place} overlay={tooltip}>\n <Button\n className={btnCls}\n bsSize={size}\n onClick={() => fnClick(element)}\n disabled={disabled}\n >\n {content}\n <i className={`fa ${fa}`} aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n );\n }\n return (\n <OverlayTrigger delayShow={1000} placement={place} overlay={tooltip}>\n <Button\n className={btnCls}\n bsSize={size}\n bsStyle={bs}\n onClick={() => fnClick(element)}\n disabled={disabled}\n >\n {content}\n <i className={`fa ${fa}`} aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n );\n};\n\nButtonTooltip.propTypes = {\n tip: PropTypes.string.isRequired,\n element: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),\n fnClick: PropTypes.func.isRequired,\n bs: PropTypes.string,\n size: PropTypes.string,\n place: PropTypes.string,\n fa: PropTypes.string,\n disabled: PropTypes.bool,\n txt: PropTypes.string,\n btnCls: PropTypes.string,\n};\n\nButtonTooltip.defaultProps = {\n bs: '',\n size: 'xs',\n place: 'top',\n fa: 'fa-pencil-square-o',\n disabled: false,\n txt: null,\n element: {},\n btnCls: ''\n};\n\nexport default ButtonTooltip;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\n\nconst FieldLabel = (props) => {\n const { label, desc, isSpCall } = props;\n const klz = isSpCall ? 'gu_sp_label' : 'gu_sp_label_none';\n return ((desc && desc !== '') && !isSpCall) ? (\n <OverlayTrigger placement=\"top\" delayShow={1000} overlay={<Tooltip id={uuid()}>{desc}</Tooltip>}>\n <span>{label}</span>\n </OverlayTrigger>\n ) : <span className={klz}>{label}</span>;\n};\n\nFieldLabel.propTypes = {\n label: PropTypes.string.isRequired, desc: PropTypes.string, isSpCall: PropTypes.string\n};\nFieldLabel.defaultProps = { desc: '', isSpCall: false };\n\nexport default FieldLabel;\n","export default Object.freeze({\n DEL_LAYER: 'Layer',\n DEL_FIELD: 'Field',\n DEL_SELECT: 'Select',\n DEL_OPTION: 'Option',\n});\n","import {\n GenPropertiesCheckbox,\n GenPropertiesCalculate,\n GenPropertiesSelect,\n GenPropertiesDrop,\n GenPropertiesNumber,\n GenPropertiesSystemDefined,\n GenPropertiesInputGroup,\n GenPropertiesTextArea,\n GenPropertiesUpload,\n GenDummy,\n GenPropertiesTable,\n GenTextFormula,\n GenWFNext,\n GenPropertiesText\n} from './GenPropertiesFields';\n\nconst GenProperties = (opt) => {\n const fieldProps = { ...opt, dndItems: [] };\n const type = fieldProps.type.split('_');\n if (opt.isSearch && type[0] === 'drag') type[0] = 'text';\n // if (opt.isPreview && (type[0] === 'drag' || type[0] === 'upload')) type[0] = 'text';\n switch (type[0]) {\n case 'checkbox':\n return GenPropertiesCheckbox(fieldProps);\n case 'formula-field':\n return GenPropertiesCalculate(fieldProps);\n case 'select':\n return GenPropertiesSelect(fieldProps);\n case 'drag':\n fieldProps.dndItems = [...fieldProps.dndItems, type[1]];\n return GenPropertiesDrop(fieldProps);\n case 'integer':\n return GenPropertiesNumber(fieldProps);\n case 'system-defined':\n return GenPropertiesSystemDefined(fieldProps);\n case 'input-group':\n return GenPropertiesInputGroup(fieldProps);\n case 'textarea':\n return GenPropertiesTextArea(fieldProps);\n case 'upload':\n return GenPropertiesUpload(fieldProps);\n case 'dummy':\n return GenDummy();\n case 'table':\n return GenPropertiesTable(fieldProps);\n case 'text-formula':\n return GenTextFormula(fieldProps);\n case 'wf-next':\n return GenWFNext(fieldProps);\n default:\n return GenPropertiesText(fieldProps);\n }\n};\n\nexport default GenProperties;\n","/* eslint-disable react/destructuring-assignment */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable no-eval */\n/* eslint-disable no-restricted-globals */\n\nimport React from 'react';\nimport {\n Button, Checkbox, FormGroup, FormControl,\n InputGroup, ListGroup, ListGroupItem, OverlayTrigger, Radio, Tooltip\n} from 'react-bootstrap';\nimport Select from 'react-select';\nimport Dropzone from 'react-dropzone';\nimport { v4 as uuid } from 'uuid';\nimport { filter } from 'lodash';\nimport FieldLabel from './FieldLabel';\nimport {\n downloadFile, genUnit, genUnitSup, unitConvToBase\n} from '../tools/utils';\nimport GenericElDropTarget from '../dnd/GenericElDropTarget';\nimport TableRecord from '../table/TableRecord';\n\nconst fieldCls = (isSpCall = false) => {\n const clsFrm = isSpCall ? 'gu_sp_form' : 'gu_sp_form_none';\n const clsCol = isSpCall ? 'gu_sp_column' : 'gu_sp_column_none';\n return [clsFrm, clsCol];\n};\n\nconst fieldHeader = (opt) => {\n const { label, description } = opt;\n if (label === '') return null;\n return (<FieldLabel label={label} desc={description} isSpCall={opt.isSpCall} />);\n};\n\nconst GenPropertiesCalculate = (opt) => {\n const fields = (opt.layer && opt.layer.fields) || [];\n let showVal = 0;\n let showTxt = null;\n let newFormula = opt.formula;\n\n const calFields = filter(fields, o => (o.type === 'integer' || o.type === 'system-defined'));\n const regF = /[a-zA-Z0-9]+/gm;\n // eslint-disable-next-line max-len\n const varFields = (opt.formula && opt.formula.match(regF)) ? opt.formula.match(regF).sort((a, b) => b.length - a.length) : [];\n\n varFields.forEach((fi) => {\n if (!isNaN(fi)) return;\n\n const tmpField = calFields.find(e => e.field === fi);\n if (typeof tmpField === 'undefined' || tmpField == null) {\n newFormula = newFormula.replace(fi, 0);\n } else {\n newFormula = (tmpField.type === 'system-defined') ? newFormula.replace(fi, parseFloat(unitConvToBase(tmpField) || 0)) : newFormula.replace(fi, parseFloat(tmpField.value || 0));\n }\n });\n\n if (opt.type === 'formula-field') {\n try {\n showVal = eval(newFormula);\n showTxt = !isNaN(showVal) ? parseFloat(showVal.toFixed(5)) : 0;\n } catch (e) {\n if (e instanceof SyntaxError) {\n showTxt = e.message;\n }\n }\n }\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <InputGroup className={klz[1]}>\n <FormControl\n type=\"text\"\n value={showTxt}\n onChange={opt.onChange}\n className=\"readonly\"\n readOnly=\"readonly\"\n required={false}\n placeholder={opt.placeholder}\n min={0}\n />\n <InputGroup.Button>\n <OverlayTrigger\n placement=\"bottom\"\n overlay={<Tooltip id=\"update_calculation_field\">adjust</Tooltip>}\n >\n <Button active className=\"clipboardBtn\" onClick={() => opt.onChange(showTxt)}>\n <i className=\"fa fa-arrow-right\" aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n </InputGroup.Button>\n <FormControl\n type=\"text\"\n value={opt.value}\n onChange={opt.onChange}\n required={false}\n placeholder={opt.placeholder}\n min={0}\n />\n </InputGroup>\n </FormGroup>\n );\n};\n\nconst GenPropertiesCheckbox = (opt) => {\n if (opt.isSpCall) {\n return (\n <FormGroup className=\"text_generic_properties gu_sp_form\">\n {fieldHeader(opt)}\n <Checkbox\n name={opt.field}\n checked={opt.value}\n onChange={opt.onChange}\n disabled={opt.readOnly}\n className=\"gu_sp_column\"\n />\n </FormGroup>\n );\n }\n return (\n <FormGroup>\n <Checkbox\n name={opt.field}\n checked={opt.value}\n onChange={opt.onChange}\n disabled={opt.readOnly}\n >\n <FormControl.Static>{opt.label}</FormControl.Static>\n </Checkbox>\n </FormGroup>\n );\n};\n\nconst GenPropertiesDrop = (opt) => {\n const className = opt.isRequired ? 'drop_generic_properties field_required' : 'drop_generic_properties';\n\n let createOpt = null;\n if (opt.value.is_new === true) {\n createOpt = (\n <div className=\"sample_radios\">\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id={uuid()}>associate with this sample</Tooltip>}>\n <Radio name={`dropS_${opt.value.el_id}`} disabled={opt.value.isAssoc === true} checked={opt.value.cr_opt === 0} onChange={() => opt.onChange({ ...opt.value, cr_opt: 0 })} inline>Current</Radio>\n </OverlayTrigger>\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id={uuid()}>split from the sample first and then associate with it</Tooltip>}>\n <Radio name={`dropS_${opt.value.el_id}`} checked={opt.value.cr_opt === 1} onChange={() => opt.onChange({ ...opt.value, cr_opt: 1 })} inline>Split</Radio>\n </OverlayTrigger>\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id={uuid()}>duplicate the sample first and then associate with it</Tooltip>}>\n <Radio name={`dropS_${opt.value.el_id}`} checked={opt.value.cr_opt === 2} onChange={() => opt.onChange({ ...opt.value, cr_opt: 2 })} inline>Copy</Radio>\n </OverlayTrigger>\n </div>\n );\n }\n const defaultIcon = opt.type === 'drag_element' ? <span className=\"fa fa-link icon_generic_nav indicator\" /> : <span className=\"icon-sample indicator\" />;\n const dragTarget = opt.isPreview === true ? <div className=\"target\">{defaultIcon}</div> : <GenericElDropTarget opt={opt} onDrop={opt.onChange} />;\n\n return (\n <FormGroup>\n {fieldHeader(opt)}\n <FormControl.Static style={{ paddingBottom: '0px' }}>\n <div className={className}>\n {dragTarget}\n {createOpt}\n <div>\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id={uuid()}>remove</Tooltip>}>\n <Button className=\"btn_del\" bsStyle=\"danger\" bsSize=\"xsmall\" onClick={() => opt.onChange({})}><i className=\"fa fa-trash-o\" aria-hidden=\"true\" /></Button>\n </OverlayTrigger>\n </div>\n </div>\n </FormControl.Static>\n </FormGroup>\n );\n};\n\nconst GenDummy = () => (\n <FormGroup className=\"text_generic_properties\">\n <FormControl type=\"text\" className=\"dummy\" readOnly />\n </FormGroup>\n);\n\nconst GenPropertiesInputGroup = (opt) => {\n const fLab = e => <div key={uuid()} className=\"form-control g_input_group_label\">{e.value}</div>;\n const fTxt = e => <FormControl className=\"g_input_group\" key={e.id} type={e.type} name={e.id} value={e.value} onChange={o => opt.onSubChange(o, e.id, opt.f_obj)} />;\n const fUnit = e => (\n <span key={`${e.id}_GenPropertiesInputGroup`} className=\"input-group\" style={{ width: '100%' }}>\n <FormControl key={e.id} type=\"number\" name={e.id} value={e.value} onChange={o => opt.onSubChange(o, e.id, opt.f_obj)} min={1} />\n <InputGroup.Button>\n <Button active onClick={() => opt.onSubChange(e, e.id, opt.f_obj)} bsStyle=\"success\">\n {genUnitSup(genUnit(e.option_layers, e.value_system).label) || ''}\n </Button>\n </InputGroup.Button>\n </span>\n );\n const subs = opt.f_obj && opt.f_obj.sub_fields && opt.f_obj.sub_fields.map((e) => {\n if (e.type === 'label') { return fLab(e); } if (e.type === 'system-defined') { return fUnit(e); } return fTxt(e);\n });\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <InputGroup style={{ display: 'flex' }}>\n {subs}\n </InputGroup>\n </FormGroup>\n );\n};\n\nconst GenPropertiesNumber = (opt) => {\n let className = opt.isEditable ? 'editable' : 'readonly';\n className = opt.isRequired && opt.isEditable ? 'required' : className;\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <FormControl\n type=\"number\"\n value={opt.value}\n onChange={opt.onChange}\n className={className}\n readOnly={opt.readOnly}\n required={opt.isRequired}\n placeholder={opt.placeholder}\n min={1}\n />\n </FormGroup>\n );\n};\n\nconst GenPropertiesSelect = (opt) => {\n const options = opt.options.map(op => ({ value: op.key, name: op.key, label: op.label }));\n let className = opt.isEditable ? 'select_generic_properties_editable' : 'select_generic_properties_readonly';\n className = opt.isRequired && opt.isEditable ? 'select_generic_properties_required' : className;\n className = `${className} status-select`;\n const val = options.find(o => o.value === opt.value) || null;\n const klz = fieldCls(opt.isSpCall);\n const selectStyles = {\n menuPortal: base => ({ ...base, zIndex: 9999 }),\n menu: base => ({ ...base, zIndex: 9999 })\n };\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <span className={klz[1]}>\n <Select\n isClearable\n name={opt.field}\n multi={false}\n options={options}\n value={val}\n onChange={opt.onChange}\n className={className}\n isDisabled={opt.readOnly}\n menuPortalTarget={document.body}\n styles={selectStyles}\n />\n </span>\n </FormGroup>\n );\n};\n\nconst GenPropertiesSystemDefined = (opt) => {\n let className = opt.isEditable ? 'editable' : 'readonly';\n className = opt.isRequired && opt.isEditable ? 'required' : className;\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={klz[0]}>\n {fieldHeader(opt)}\n <InputGroup className={klz[1]}>\n <FormControl\n type=\"number\"\n value={opt.value}\n onChange={opt.onChange}\n className={`${className} ${klz[1]}`}\n readOnly={opt.readOnly}\n required={opt.isRequired}\n placeholder={opt.placeholder}\n min={1}\n />\n <InputGroup.Button>\n <Button disabled={opt.readOnly} active onClick={opt.onClick} bsStyle=\"success\">\n {genUnitSup(genUnit(opt.option_layers, opt.value_system).label) || ''}\n </Button>\n </InputGroup.Button>\n </InputGroup>\n </FormGroup>\n );\n};\n\nconst GenPropertiesTable = opt => (\n <FormGroup>\n {fieldHeader(opt)}\n <TableRecord key={`grid_${opt.f_obj.field}`} opt={opt} />\n </FormGroup>\n);\n\nconst GenPropertiesText = (opt) => {\n let className = opt.isEditable ? 'editable' : 'readonly';\n className = opt.isRequired && opt.isEditable ? 'required' : className;\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={`text_generic_properties ${klz[0]}`}>\n {fieldHeader(opt)}\n <FormControl\n type=\"text\"\n value={opt.value}\n onChange={opt.onChange}\n className={`${className} ${klz[1]}`}\n readOnly={opt.readOnly}\n required={opt.isRequired}\n placeholder={opt.placeholder}\n />\n </FormGroup>\n );\n};\n\nconst GenPropertiesTextArea = (opt) => {\n let className = opt.isEditable ? 'editable' : 'readonly';\n className = opt.isRequired && opt.isEditable ? 'required' : className;\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={`text_generic_properties ${klz[0]}`}>\n {fieldHeader(opt)}\n <FormControl\n componentClass=\"textarea\"\n value={opt.value}\n onChange={opt.onChange}\n className={className}\n readOnly={opt.readOnly}\n required={opt.isRequired}\n placeholder={opt.placeholder}\n />\n </FormGroup>\n );\n};\n\nconst GenTextFormula = (opt) => {\n const { layers } = opt;\n const subs = [];\n (opt.f_obj && opt.f_obj.text_sub_fields).map((e) => {\n const { layer, field, separator } = e;\n if (field && field !== '') {\n if (field.includes('[@@]')) {\n const fds = field.split('[@@]');\n if (fds && fds.length === 2) {\n const fdt = ((layers[layer] || {}).fields || []).find(f => f.field === fds[0] && f.type === 'table');\n ((fdt && fdt.sub_values) || []).forEach((svv) => {\n if (svv && svv[fds[1]] && svv[fds[1]] !== '') { subs.push(svv[fds[1]]); subs.push(separator); }\n });\n }\n } else {\n const fd = ((layers[layer] || {}).fields || []).find(f => f.field === field);\n if (fd && fd.value && fd.value !== '') { subs.push(fd.value); subs.push(separator); }\n }\n }\n return true;\n });\n const klz = fieldCls(opt.isSpCall);\n return (\n <FormGroup className={`text_generic_properties ${klz[0]}`}>\n {fieldHeader(opt)}\n <FormControl\n type=\"text\"\n value={subs.join('')}\n className={`readonly ${klz[1]}`}\n readOnly\n required={false}\n />\n </FormGroup>\n );\n};\n\nconst renderListGroupItem = (opt, attachment) => {\n const delBtn = (\n <Button bsSize=\"xsmall\" id={attachment.uid} className=\"button-right\" onClick={() => opt.onChange({ ...opt.value, action: 'd', uid: attachment.uid })}>\n <i className=\"fa fa-times\" aria-hidden=\"true\" />\n </Button>\n );\n const filename = attachment.aid\n ? (<a onClick={() => downloadFile({ contents: `/api/v1/attachments/${attachment.aid}`, name: attachment.filename })} style={{ cursor: 'pointer' }}>{attachment.filename}</a>) : attachment.filename;\n return (\n <div className=\"generic_grid\">\n <div>\n <div>{delBtn}</div>\n <div className=\"generic_grid_row\">{filename}</div>\n <div className=\"generic_grid_row\">\n <FormGroup bsSize=\"small\">\n <FormControl\n type=\"text\"\n value={attachment.label || ''}\n onChange={e => opt.onChange({\n ...opt.value, action: 'l', uid: attachment.uid, val: e\n })}\n />\n </FormGroup>\n </div>\n </div>\n </div>\n );\n};\n\nconst GenPropertiesUpload = (opt) => {\n const attachments = (opt.value && opt.value.files) || [];\n if (opt.isSearch) return (<div>(This is an upload)</div>);\n\n return (\n <FormGroup className=\"text_generic_properties\">\n {fieldHeader(opt)}\n <FormControl.Static style={{ paddingBottom: '0px' }}>\n <Dropzone\n id=\"dropzone\"\n onDrop={e => opt.onChange({\n ...opt.value, action: 'f', val: e\n })}\n style={{ height: 30, width: '100%', border: '3px dashed lightgray' }}\n >\n <div style={{ textAlign: 'center', paddingTop: 6, color: 'gray' }}>\n Drop File, or Click to Select.\n </div>\n </Dropzone>\n </FormControl.Static>\n <ListGroup>\n {attachments.map(attachment => (\n <ListGroupItem key={attachment.id} className=\"generic_files\">\n {renderListGroupItem(opt, attachment)}\n </ListGroupItem>\n ))}\n </ListGroup>\n </FormGroup>\n );\n};\n\nconst GenWFNext = (opt) => {\n const options = (opt.f_obj.wf_options || []).map((op) => {\n const label = op.label.match(/(.*)\\(.*\\)/);\n return ({ value: op.key, name: op.key, label: label[1] === '' ? label[0] : label[1] });\n });\n let className = opt.isEditable ? 'select_generic_properties_editable' : 'select_generic_properties_readonly';\n className = opt.isRequired && opt.isEditable ? 'select_generic_properties_required' : className;\n className = `${className} status-select`;\n const val = options.find(o => o.value === opt.value) || null;\n return (\n <FormGroup>\n {fieldHeader(opt)}\n <Select\n menuContainerStyle={{ position: 'absolute' }}\n name={opt.field}\n multi={false}\n options={options}\n value={val}\n onChange={opt.onChange}\n className={className}\n disabled={opt.readOnly}\n />\n </FormGroup>\n );\n};\n\nexport {\n GenPropertiesCalculate,\n GenPropertiesCheckbox,\n GenPropertiesDrop,\n GenDummy,\n GenTextFormula,\n GenPropertiesInputGroup,\n GenPropertiesNumber,\n GenPropertiesSelect,\n GenPropertiesSystemDefined,\n GenPropertiesTable,\n GenPropertiesText,\n GenPropertiesTextArea,\n GenPropertiesUpload,\n GenWFNext\n};\n","/* eslint-disable no-alert */\n/* eslint-disable no-param-reassign */\n/* eslint-disable react/forbid-prop-types */\nimport React, {\n useState, useRef, useCallback, useEffect\n} from 'react';\nimport PropTypes from 'prop-types';\nimport ReactFlow, {\n ReactFlowProvider,\n addEdge,\n removeElements,\n Controls,\n ConnectionMode,\n} from 'react-flow-renderer';\nimport { Button } from 'react-bootstrap';\nimport { v4 as uuid } from 'uuid';\nimport DnDSidebar from './DnDSidebar';\nimport LayerNode from './LayerNode';\nimport { conFlowEls, storeFlow, flowDefault } from '../tools/utils';\n\nconst DnDFlow = (props) => {\n const { element, fnSave } = props;\n const reactFlowWrapper = useRef(null);\n const [reactFlowInstance, setReactFlowInstance] = useState();\n const [elements, setElements] = useState([]);\n const onConnect = params => setElements(els => addEdge({\n ...params, animated: true, arrowHeadType: 'arrowclosed', label: 'next'\n }, els));\n const onElementsRemove = (elementsToRemove) => {\n const rms = elementsToRemove.filter(e => ['input', 'output'].includes(e.type));\n if (rms.length > 0) {\n alert(`[${rms[0].data.label}] can not be removed.`);\n } else {\n setElements(els => removeElements(elementsToRemove, els));\n }\n };\n\n const onLoad = (_reactFlowInstance) => {\n setReactFlowInstance(_reactFlowInstance);\n };\n\n const onDragOver = (ev) => {\n ev.preventDefault();\n ev.dataTransfer.dropEffect = 'move';\n };\n\n const onDrop = (ev) => {\n ev.preventDefault();\n if (reactFlowInstance) {\n const node = ev.dataTransfer.getData('application/generic');\n const reactFlowBounds = reactFlowWrapper.current.getBoundingClientRect();\n const position = reactFlowInstance.project({\n x: ev.clientX - reactFlowBounds.left,\n y: ev.clientY - reactFlowBounds.top,\n });\n const layer = element.properties_template.layers[node];\n const ll = (\n <div>\n <div className=\"gu_flow_dnd_sidebar\"><b>{layer.label}</b></div>\n <div>\n (\n {layer.key}\n )\n </div>\n </div>\n );\n const newNode = {\n id: uuid(), type: 'default', position, data: { label: ll, lKey: layer.key }\n };\n setElements(es => es.concat(newNode));\n }\n };\n\n const onSave = useCallback(() => {\n if (reactFlowInstance) {\n const flowObject = reactFlowInstance.toObject();\n flowObject.elements = storeFlow(flowObject);\n fnSave({ flowObject });\n }\n }, [reactFlowInstance]);\n\n useEffect(() => {\n let flowEls = conFlowEls({ properties: {}, properties_release: element.properties_template });\n flowEls = flowEls.length > 0 ? flowEls : flowDefault;\n setElements(flowEls);\n }, [element.id]);\n\n useEffect(() => {\n if (reactFlowInstance && elements.length) {\n reactFlowInstance.fitView();\n }\n }, [reactFlowInstance, element.id]);\n\n return (\n <div className=\"dndflow\">\n <ReactFlowProvider>\n <div className=\"reactflow-wrapper\" ref={reactFlowWrapper} style={{ width: '100%' }}>\n <ReactFlow\n elements={elements}\n onConnect={onConnect}\n onElementsRemove={onElementsRemove}\n onLoad={onLoad}\n connectionMode={ConnectionMode.Loose}\n onDrop={onDrop}\n onDragOver={onDragOver}\n nodeTypes={{ selectorNode: LayerNode }}\n deleteKeyCode={46}\n >\n <div className=\"save__controls\">\n <Button bsSize=\"xs\" onClick={onSave}>\n Save to draft \n <i className=\"fa fa-floppy-o\" aria-hidden=\"true\" />\n </Button>\n </div>\n <Controls />\n </ReactFlow>\n </div>\n <DnDSidebar element={element} />\n </ReactFlowProvider>\n </div>\n );\n};\n\nDnDFlow.propTypes = {\n element: PropTypes.object.isRequired,\n fnSave: PropTypes.func.isRequired\n};\n\nexport default DnDFlow;\n","/* eslint-disable no-param-reassign */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { sortBy } from 'lodash';\n\nconst onDragStart = (ev, node) => {\n ev.dataTransfer.setData('application/generic', node);\n ev.dataTransfer.effectAllowed = 'move';\n};\n\nconst DnDSidebar = (props) => {\n const { element } = props;\n const sortedLayers = element.properties_template && element.properties_template.layers\n && sortBy(element.properties_template.layers, l => l.position);\n if (element.properties_template == null) {\n return null;\n }\n return (\n <aside>\n <div className=\"description\">\n You can drag the nodes listed below to the pane on the left to design your flow.\n </div>\n <div className=\"description\">\n To remove the node from the pane, click on the node and press 'Del' button.\n </div>\n {\n (sortedLayers.filter(e => e.wf) || []).map(l => (\n <div\n key={l.key}\n className=\"react-flow__node-default\"\n onDragStart={event => onDragStart(event, l.key)}\n draggable=\"true\"\n >\n <div className=\"gu_flow_dnd_sidebar\">\n <b>{l.label}</b>\n </div>\n <div>\n (\n {l.key}\n )\n </div>\n </div>\n ))\n }\n </aside>\n );\n};\n\nDnDSidebar.propTypes = { element: PropTypes.object.isRequired };\n\nexport default DnDSidebar;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactFlow, { ReactFlowProvider, Controls, ConnectionMode } from 'react-flow-renderer';\nimport LayerNode from './LayerNode';\nimport { conFlowEls, flowDefault } from '../tools/utils';\n\nconst FlowView = (props) => {\n const { properties, properties_release } = props;\n const [reactFlowInstance, setReactFlowInstance] = useState(null);\n const [elements, setElements] = useState([]);\n const onLoad = _reactFlowInstance => {\n setReactFlowInstance(_reactFlowInstance);\n };\n\n useEffect(() => {\n let flowEls = conFlowEls(props);\n flowEls = flowEls.length > 0 ? flowEls : flowDefault;\n // flowEls = decorateNode(flowEls, properties.layers || {});\n setElements(flowEls);\n }, [properties, properties_release]);\n\n useEffect(() => {\n let flowEls = conFlowEls(props);\n flowEls = flowEls.length > 0 ? flowEls : flowDefault;\n // flowEls = decorateNode(flowEls, properties.layers || {});\n setElements(flowEls);\n }, []);\n\n useEffect(() => {\n if (reactFlowInstance && elements.length) {\n reactFlowInstance.fitView();\n }\n }, [reactFlowInstance, elements.length]);\n\n return (\n <ReactFlowProvider>\n <ReactFlow\n elements={elements}\n onLoad={onLoad}\n connectionMode={ConnectionMode.Loose}\n nodeTypes={{ selectorNode: LayerNode }}\n deleteKeyCode={46}\n >\n <Controls />\n </ReactFlow>\n </ReactFlowProvider>\n );\n};\n\nFlowView.propTypes = {\n properties: PropTypes.object.isRequired,\n};\n\nexport default FlowView;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Modal, Panel } from 'react-bootstrap';\nimport Draggable from 'react-draggable';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTimes } from '@fortawesome/free-solid-svg-icons';\nimport FlowView from './FlowView';\n\nconst FlowViewerModal = props => {\n const { show, data, fnHide } = props;\n if (!show) return null;\n const { properties_release, properties, shortLabel } = data;\n if (Object.keys(properties_release).length < 1) return null;\n if ((Object.keys(properties_release.flow || {}).length < 1)\n || ((properties_release.flow.elements || []).length < 3)) {\n return (\n <Modal show={show} bsSize=\"small\" onHide={fnHide}>\n <Modal.Header closeButton>\n <Modal.Title>{`${shortLabel} workflow`}</Modal.Title>\n </Modal.Header>\n <Modal.Body>No defined workflow</Modal.Body>\n </Modal>\n );\n }\n\n return (\n <Draggable handle=\".layer_header\" bounds=\"body\">\n <div className=\"flow_view_draggable\">\n <Panel bsStyle=\"primary\">\n <Panel.Heading className=\"layer_header\">\n {`${shortLabel} workflow`}\n <Button bsStyle=\"danger\" bsSize=\"xsmall\" className=\"gu_button_right\" onClick={fnHide}><FontAwesomeIcon icon={faTimes} /></Button>\n </Panel.Heading>\n <Panel.Body>\n <div className=\"body_bg\">\n <div className=\"body_canvas\"><FlowView properties={properties} properties_release={properties_release} /></div>\n </div>\n </Panel.Body>\n </Panel>\n </div>\n </Draggable>\n );\n};\n\nFlowViewerModal.propTypes = {\n show: PropTypes.bool.isRequired,\n data: PropTypes.shape({\n properties_release: PropTypes.object, properties: PropTypes.object, shortLabel: PropTypes.string\n }).isRequired,\n fnHide: PropTypes.func.isRequired\n};\n\nexport default FlowViewerModal;\n","import React, { memo } from 'react';\nimport { Handle, Position } from 'react-flow-renderer';\n\nconst targetHandleStyle = { background: '#555' };\nconst sourceHandleStyleA = { ...targetHandleStyle, top: 10 };\nconst onConnect = params => console.log('handle onConnect', params);\n\nconst LayerNode = ({ data }) => (\n <>\n <Handle type=\"target\" position={Position.Top} style={targetHandleStyle} onConnect={onConnect} />\n <div>\n <div className=\"gu_flow_dnd_sidebar\"><b>{data.layer.label}</b></div>\n <div>\n (\n {data.layer.key}\n )\n </div>\n </div>\n <Handle type=\"source\" position={Position.Bottom} id=\"a\" style={sourceHandleStyleA} />\n </>\n);\n\nexport default memo(LayerNode);\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport DnDFlow from './DnDFlow';\n\nconst Workflow = (props) => {\n const { element, fnSaveFlow } = props;\n if (Object.keys(element).length < 1) return null;\n return (\n <div>\n <DnDFlow element={element} fnSave={fnSaveFlow} />\n </div>\n );\n};\n\nWorkflow.propTypes = {\n element: PropTypes.object.isRequired, fnSaveFlow: PropTypes.func.isRequired\n};\n\nexport default Workflow;\n","/* eslint-disable max-len */\n/* eslint-disable react/require-default-props */\n/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Panel, Col, PanelGroup, Row\n} from 'react-bootstrap';\nimport GenProperties from '../fields/GenProperties';\nimport { genUnits, showProperties, unitConversion } from '../tools/utils';\nimport PanelDnD from '../dnd/PanelDnD';\n\nexport default class GenPropertiesLayer extends Component {\n constructor(props) {\n super(props);\n this.handleChange = this.handleChange.bind(this);\n this.handleSubChange = this.handleSubChange.bind(this);\n this.moveLayer = this.moveLayer.bind(this);\n }\n\n handleChange(e, f, k, t) {\n const { onChange } = this.props;\n onChange(e, f, k, t);\n }\n\n handleSubChange(e, id, f, valueOnly = false) {\n const { onSubChange } = this.props;\n const sub = f.sub_fields.find(m => m.id === id);\n if (!valueOnly) {\n if (e.type === 'system-defined') {\n const units = genUnits(e.option_layers);\n let uIdx = units.findIndex(u => u.key === e.value_system);\n if (uIdx < units.length - 1) uIdx += 1; else uIdx = 0;\n sub.value_system = units.length > 0 ? units[uIdx].key : '';\n sub.value = unitConversion(e.option_layers, sub.value_system, e.value);\n } else {\n sub.value = e.target.value;\n }\n }\n const { layer } = this.props;\n const obj = { f, sub };\n onSubChange(layer.key, obj, valueOnly);\n }\n\n handleClick(keyLayer, obj, val) {\n const { onClick } = this.props;\n const units = genUnits(obj.option_layers);\n let uIdx = units.findIndex(e => e.key === val);\n if (uIdx < units.length - 1) uIdx += 1; else uIdx = 0;\n const update = obj;\n update.value_system = units.length > 0 ? units[uIdx].key : '';\n onClick(keyLayer, update);\n }\n\n views() {\n const {\n layer, selectOptions, id, layers, isPreview, isSearch, onNavi, isSpCall\n } = this.props;\n const { fields, key, sp } = layer;\n let { cols } = layer;\n if (isSpCall && !!sp) cols = 1;\n const perRow = cols || 1;\n const col = Math.floor(12 / perRow);\n const klaz = (12 % perRow) > 0 ? 'g_col_w' : '';\n const vs = [];\n let op = [];\n let newRow = 0;\n let rowId = 1;\n (fields || []).forEach((f, i) => {\n if (showProperties(f, layers)) {\n const unit = genUnits(f.option_layers)[0] || {};\n const tabCol = (f.cols || 1) * 1;\n const rCol = (f.type === 'table') ? (12 / (tabCol || 1)) : col;\n newRow = (f.type === 'table') ? newRow += (perRow / (tabCol || 1)) : newRow += 1;\n\n if (newRow > perRow) {\n vs.push(<Row key={rowId}>{op}</Row>);\n rowId += 1;\n op = [];\n newRow = (f.type === 'table') ? newRow = (perRow / (tabCol || 1)) : newRow = 1;\n }\n const eachCol = (\n <Col key={`prop_${key}_${f.priority}_${f.field}`} md={rCol} lg={rCol} className={f.type === 'table' ? '' : klaz}>\n <GenProperties\n key={`${id}_${layer}_${f.field}_GenPropertiesLayer`}\n layers={layers}\n id={id}\n layer={layer}\n f_obj={f}\n label={f.label}\n value={f.value || ''}\n description={f.description || ''}\n type={f.type || 'text'}\n field={f.field || 'field'}\n formula={f.formula || ''}\n options={(selectOptions && selectOptions[f.option_layers] && selectOptions[f.option_layers].options) || []}\n onChange={event => this.handleChange(event, f.field, key, f.type)}\n onSubChange={this.handleSubChange}\n isEditable\n isPreview={isPreview}\n isSearch={isSearch}\n readOnly={false}\n isRequired={f.required || false}\n placeholder={f.placeholder || ''}\n option_layers={f.option_layers}\n value_system={f.value_system || unit.key}\n onClick={() => this.handleClick(key, f, (f.value_system || unit.key))}\n selectOptions={selectOptions || {}}\n onNavi={onNavi}\n isSpCall={isSpCall}\n />\n </Col>\n );\n op.push(eachCol);\n if (newRow % perRow === 0) newRow = 0;\n if ((newRow === 0) || (fields.length === (i + 1))) {\n vs.push(<Row key={rowId}>{op}</Row>);\n rowId += 1;\n op = [];\n }\n } else if (fields.length === (i + 1)) {\n vs.push(<Row key={rowId}>{op}</Row>);\n rowId += 1;\n op = [];\n }\n });\n return vs;\n }\n\n moveLayer(src, tar) {\n this.handleChange(null, src, tar, 'drop-layer');\n }\n\n render() {\n const {\n id, layer, activeWF, hasAi, aiComp\n } = this.props;\n const { color, style, label } = layer;\n // const ai = layer.ai || [];\n let bs = color || 'default';\n const cl = (style || 'panel_generic_heading').replace('panel_generic_heading', 'panel_generic_heading_slim');\n // panel header color is based on input bs value\n const panelDnD = (\n <PanelDnD\n type=\"gen_panel\"\n layer={layer}\n field=\"layer\"\n rowValue={{ id: layer.key }}\n handleMove={this.moveLayer}\n id={id}\n handleChange={this.handleChange}\n bs={bs}\n hasAi={hasAi}\n />\n );\n const panelHeader = label === '' ? (<span />) : (\n <Panel.Heading className={cl}>\n <Panel.Title toggle>{label}</Panel.Title>\n </Panel.Heading>\n );\n const noneKlass = bs === 'none' ? 'generic_panel_none' : '';\n if (bs === 'none') bs = 'default';\n return (\n <PanelGroup accordion id=\"accordion_generic_layer\" defaultActiveKey=\"1\" style={{ marginBottom: '0px' }}>\n <Panel bsStyle={bs} className={`panel_generic_properties ${noneKlass}`} eventKey=\"1\">\n {activeWF ? panelDnD : panelHeader}\n <Panel.Collapse>\n <Panel.Body className=\"panel_generic_properties_body\">\n {this.views()}\n {aiComp && aiComp[layer.key]}\n </Panel.Body>\n </Panel.Collapse>\n </Panel>\n </PanelGroup>\n );\n }\n}\n\nGenPropertiesLayer.propTypes = {\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), // element id or new id\n layer: PropTypes.object,\n selectOptions: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n onSubChange: PropTypes.func.isRequired,\n onClick: PropTypes.func,\n layers: PropTypes.object.isRequired,\n isPreview: PropTypes.bool,\n isSearch: PropTypes.bool,\n activeWF: PropTypes.bool,\n isSpCall: PropTypes.bool,\n onNavi: PropTypes.func,\n hasAi: PropTypes.bool,\n aiComp: PropTypes.any\n};\n\nGenPropertiesLayer.defaultProps = {\n id: 0,\n selectOptions: {},\n onClick: () => {},\n isPreview: false,\n isSearch: false,\n activeWF: false,\n isSpCall: false,\n onNavi: () => {},\n hasAi: false,\n aiComp: null\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Button, Tooltip, Modal, OverlayTrigger\n} from 'react-bootstrap';\nimport { sortBy } from 'lodash';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faPlus } from '@fortawesome/free-solid-svg-icons';\n\nconst block = (layer, fnAdd) => (\n <div className=\"generic_layer_column\">\n <div>\n <div>\n <b>{layer.label}</b>\n <br />\n (\n {layer.key}\n )\n </div>\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id=\"_tooltip_layers\">click to add layer</Tooltip>}>\n <Button bsStyle=\"primary\" onClick={event => fnAdd(event, layer)}>\n <FontAwesomeIcon icon={faPlus} />\n </Button>\n </OverlayTrigger>\n </div>\n </div>\n);\n\nconst drawLayout = (layers, fnAdd) => {\n const layout = [];\n layers.forEach(layer => { layout.push(<div key={layer.key}>{block(layer, fnAdd)}</div>); });\n return layout;\n};\n\nconst LayerModal = props => {\n const {\n show, layers, fnClose, fnAdd\n } = props;\n if (!show) return null;\n const sortedLayers = sortBy(layers, ['position', 'wf_position']) || [];\n if (sortedLayers.length < 1) return null;\n const layout = drawLayout(sortedLayers, fnAdd);\n return (\n <Modal show={show} onHide={fnClose}>\n <Modal.Header closeButton><Modal.Title>Choose Layer</Modal.Title></Modal.Header>\n <Modal.Body>\n <div style={{ maxHeight: '80vh', overflow: 'auto' }}>\n <div className=\"generic_grid\">{layout}</div>\n </div>\n </Modal.Body>\n </Modal>\n );\n};\n\nLayerModal.propTypes = {\n show: PropTypes.bool.isRequired,\n layers: PropTypes.object.isRequired,\n fnClose: PropTypes.func.isRequired,\n fnAdd: PropTypes.func.isRequired\n};\n\nexport default LayerModal;\n","import React from 'react';\nimport { sortBy } from 'lodash';\nimport GenPropertiesLayer from './GenPropertiesLayer';\nimport GenProperties from '../fields/GenProperties';\n\nconst LayersLayout = (props) => {\n const {\n layers, options, funcChange, funcSubChange, funcClick,\n extLys, id, isPreview, activeWF, isSearch, fnNavi, isSpCall, hasAi, aiComp\n } = props;\n\n // if call from SP, extra layer is impossible\n const buildExtLys = isSpCall ? [] : extLys.map(e => (\n <GenProperties\n key={`${e.generic.id}_${e.field}_elementalPropertiesExt`}\n field={e.field}\n label={e.label || ''}\n description={e.generic.description || ''}\n value={e.generic[e.field] || ''}\n type={e.type}\n isEditable={e.isEditable || true}\n readOnly={e.readOnly || false}\n isRequired={e.isRequired || false}\n onChange={event => funcChange(event, e.field, '', e.type)}\n />\n ));\n const sortedLayers = sortBy(layers, ['position', 'wf_position']) || [];\n const layout = [].concat(buildExtLys);\n sortedLayers.forEach((layer, idx) => {\n // if call from SP and layer is not sp, skip\n if (isSpCall && !layer.sp) return;\n const uk = `${layer.key}_${idx}`;\n if (typeof layer.cond_fields === 'undefined' || layer.cond_fields == null || layer.cond_fields.length === 0) {\n const ig = (\n <GenPropertiesLayer\n id={id}\n key={uk}\n layer={layer}\n onChange={funcChange}\n onSubChange={funcSubChange}\n selectOptions={options}\n onClick={funcClick}\n layers={layers}\n isPreview={isPreview}\n isSearch={isSearch}\n activeWF={activeWF}\n onNavi={fnNavi}\n isSpCall={isSpCall}\n hasAi={hasAi}\n aiComp={aiComp}\n />\n );\n layout.push(ig);\n } else if (layer.cond_fields && layer.cond_fields.length > 0) {\n let showLayer = false;\n\n for (let i = 0; i < layer.cond_fields.length; i += 1) {\n const cond = layer.cond_fields[i] || {};\n const fd = ((layers[cond.layer] || {}).fields || [])\n .find(f => f.field === cond.field) || {};\n if (fd.type === 'checkbox' && ((['false', 'no', 'f', '0'].includes((cond.value || '').trim().toLowerCase()) && (typeof (fd && fd.value) === 'undefined' || fd.value === false))\n || (['true', 'yes', 't', '1'].includes((cond.value || '').trim().toLowerCase()) && (typeof fd.value !== 'undefined' && fd.value === true)))) {\n showLayer = true;\n break;\n } else if (['text', 'select'].includes(fd.type) && (typeof (fd && fd.value) !== 'undefined' && (fd.value || '').trim() === (cond.value || '').trim())) {\n showLayer = true;\n break;\n }\n }\n\n if (showLayer === true) {\n const igs = (\n <GenPropertiesLayer\n id={id}\n key={uk}\n layer={layer}\n onChange={funcChange}\n onSubChange={funcSubChange}\n selectOptions={options}\n onClick={funcClick}\n layers={layers}\n isPreview={isPreview}\n isSearch={isSearch}\n activeWF={activeWF}\n onNavi={fnNavi}\n isSpCall={isSpCall}\n hasAi={hasAi}\n aiComp={aiComp}\n />\n );\n layout.push(igs);\n }\n }\n });\n return layout;\n};\n\nexport default LayersLayout;\n","import { v4 as uuid } from 'uuid';\n\nexport default class Attachment {\n constructor(args) {\n Object.assign(this, args);\n if (!this.id) { this.id = Attachment.buildID(); }\n }\n\n static buildID() { return uuid(); }\n\n static fromFile(file) {\n return new Attachment({\n file,\n name: file.name,\n filename: file.name,\n identifier: file.id,\n is_deleted: false,\n });\n }\n\n get isNew() {\n return this.is_new === true;\n }\n\n serialize() {\n return super.serialize({\n filename: this.filename,\n identifier: this.identifier,\n file: this.file,\n thumb: this.thumb,\n content_type: this.content_type,\n is_deleted: this.is_deleted,\n id: this.id,\n is_new: this.isNew || false\n });\n }\n}\n","import { v4 as uuid } from 'uuid';\n\nexport default class GenericSubField {\n constructor(args) {\n Object.assign(this, args);\n if (!this.id) { this.id = GenericSubField.buildID(); }\n }\n\n static buildID() { return uuid(); }\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/interactive-supports-focus */\n/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\nconst DropLinkRenderer = (props) => {\n const { sField, node, onNavi } = props;\n const dId = ((node.data[sField.id] || {}).value || {}).el_id || '';\n const dVal = ((node.data[sField.id] || {}).value || {}).el_short_label || ' ';\n if (dId === '') return <div />;\n return (\n <a role=\"link\" onClick={() => onNavi('sample', dId)} style={{ cursor: 'pointer' }}>\n <span className=\"reaction-material-link\">{dVal}</span>\n </a>\n );\n};\n\nDropLinkRenderer.propTypes = {\n sField: PropTypes.object.isRequired,\n node: PropTypes.object.isRequired,\n onNavi: PropTypes.func\n};\n\nDropLinkRenderer.defaultProps = { onNavi: () => {} };\nexport default DropLinkRenderer;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { cloneDeep } from 'lodash';\nimport GenericElTableDropTarget from './GenericElTableDropTarget';\n\nconst DropRenderer = props => {\n const {\n opt, sField, onChange, node\n } = props;\n if (!['drag_molecule', 'drag_sample'].includes(sField.type)) return null;\n const { data } = node;\n opt.dndItems = [sField.type.split('_')[1]];\n opt.sField = sField;\n opt.data = data;\n const oopt = cloneDeep(opt);\n return (\n <div className=\"drop_generic_properties drop_generic_table_wrap\">\n <GenericElTableDropTarget opt={oopt} onDrop={onChange} />\n </div>\n );\n};\n\nDropRenderer.propTypes = {\n sField: PropTypes.object.isRequired,\n opt: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n node: PropTypes.object.isRequired\n};\n\nexport default DropRenderer;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { OverlayTrigger, Tooltip } from 'react-bootstrap';\n\nconst DropTextRenderer = props => {\n const { attr, sField, node } = props;\n let displayValue = ((node.data[sField.id] || {}).value || {})[`el_${attr.value}`] || '';\n displayValue = (attr.value === 'molecular_weight' && displayValue !== '') ? displayValue.toFixed(6) : displayValue;\n return (\n <OverlayTrigger placement=\"top\" overlay={<Tooltip id=\"copy_clipboard\">copy to clipboard</Tooltip>}>\n <div role=\"button\" data-clipboard-text={displayValue} className=\"clipboardBtn\" style={{ wordBreak: 'break-all', cursor: 'copy' }}>\n {displayValue}\n </div>\n </OverlayTrigger>\n );\n};\n\nDropTextRenderer.propTypes = {\n attr: PropTypes.object.isRequired,\n sField: PropTypes.object.isRequired,\n node: PropTypes.object.isRequired\n};\n\nexport default DropTextRenderer;\n","/* eslint-disable no-unused-vars */\n/* eslint-disable react/forbid-prop-types */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { DropTarget } from 'react-dnd';\nimport {\n Tooltip, OverlayTrigger, Popover, Button\n} from 'react-bootstrap';\nimport Constants from '../tools/Constants';\nimport { KlzIcon } from '../tools/utils';\n\nconst base = (opt, iconClass, onDrop = () => {}, params = {}) => {\n if (opt.value && opt.value.el_id) {\n const label = opt.value.el_label;\n let elSvg = opt.value.el_svg;\n if (opt.value.el_type === 'sample') {\n if (elSvg && !elSvg.endsWith('.svg') && opt.value.el_decoupled) {\n elSvg = Constants.IMG_UNDEFINED_STRUCTURE_SVG;\n }\n }\n if (elSvg && !elSvg.endsWith('.svg')) elSvg = Constants.IMG_NOT_AVAILABLE_SVG;\n const pop = (\n <Popover id=\"popover-svg\" title={label} style={{ maxWidth: 'none', maxHeight: 'none' }}>\n <img src={elSvg} style={{ height: '26vh', width: '26vh' }} alt=\"\" />\n </Popover>\n );\n const asShown = path => ((path === Constants.IMG_UNDEFINED_STRUCTURE_SVG)\n ? KlzIcon(`icon-${iconClass}`, { width: '4vw', fontSize: 'x-large' }) : (\n <OverlayTrigger\n delayShow={1000}\n trigger={['hover']}\n placement=\"top\"\n rootClose\n onHide={null}\n overlay={pop}\n >\n <img className=\"generic_grid_img\" src={path} alt=\"\" />\n </OverlayTrigger>\n ));\n const simg = (path, txt) => ((path && path !== '') ? (\n <div className=\"s-img\">\n {asShown(path)}\n <div className=\"del_btn\">\n <OverlayTrigger\n delayShow={1000}\n placement=\"top\"\n overlay={<Tooltip id={uuid()}>remove this molecule</Tooltip>}\n >\n <Button className=\"btn_del\" bsSize=\"xsmall\" onClick={() => onDrop({}, params)}>\n <i className=\"fa fa-trash-o\" aria-hidden=\"true\" />\n </Button>\n </OverlayTrigger>\n </div>\n </div>\n ) : (<div className=\"data\" style={{ width: '4vw' }}>{txt}</div>));\n return simg(elSvg, label);\n }\n return (KlzIcon(`icon-${iconClass} indicator`, { width: '4vw', fontSize: 'x-large' }));\n};\n\nconst show = (opt, iconClass, onDrop) => {\n if (opt.type === 'table') {\n const sField = opt.sField || {};\n const subVal = opt.data[sField.id];\n const { data } = opt;\n return base(subVal, iconClass, onDrop, { sField, data });\n }\n return base(opt, iconClass);\n};\n\nconst source = (type, props, id) => {\n let isAssoc = false;\n const taggable = (props && props.tag && props.tag.taggable_data) || {};\n if (taggable.element && taggable.element.id === id) {\n isAssoc = false;\n } else {\n isAssoc = !!(taggable.reaction_id || taggable.wellplate_id || taggable.element);\n }\n\n switch (type) {\n case 'molecule':\n return {\n el_id: props.molecule.id,\n el_type: 'molecule',\n el_label: props.molecule.cano_smiles || props.molecule_formula || props.molecule_name_label,\n el_inchikey: props.molecule.inchikey,\n el_smiles: props.molecule.cano_smiles,\n el_iupac: props.molecule.iupac_name,\n el_molecular_weight: props.molecule.molecular_weight,\n el_svg: `/images/molecules/${props.molecule.molecule_svg_file}`,\n };\n case 'sample':\n return {\n el_id: props.id,\n is_new: true,\n cr_opt: 1,\n isAssoc,\n el_type: 'sample',\n el_label: props.short_label,\n el_short_label: props.short_label,\n el_name: props.name,\n el_external_label: props.external_label,\n el_molecular_weight: props.molecule_molecular_weight,\n el_svg: props.sample_svg_file ? `/images/samples/${props.sample_svg_file}` : `/images/molecules/${props.molecule.molecule_svg_file}`,\n el_decoupled: props.decoupled || false,\n };\n default:\n return {\n el_id: props.id,\n is_new: true,\n cr_opt: 0,\n el_type: props.type,\n el_label: props.short_label,\n };\n }\n};\n\nconst dropTarget = {\n drop(targetProps, monitor) {\n const sourceProps = monitor.getItem().element;\n const type = targetProps.opt.sField.type.split('_')[1];\n const sourceTag = source(type, sourceProps, targetProps.opt.id);\n targetProps.onDrop(sourceTag, targetProps.opt);\n },\n canDrop(targetProps, monitor) {\n return true;\n },\n};\n\nconst dropCollect = (connect, monitor) => ({\n connectDropTarget: connect.dropTarget(),\n isOver: monitor.isOver(),\n canDrop: monitor.canDrop()\n});\n\nclass GenericElTableDropTarget extends Component {\n render() {\n const {\n connectDropTarget, isOver, canDrop, opt, onDrop\n } = this.props;\n const className = `target${isOver ? ' is-over' : ''}${canDrop ? ' can-drop' : ''}`;\n return connectDropTarget(<div className={className} style={{ display: 'inline-flex', justifyContent: 'center' }}>{show(opt, 'sample', onDrop)}</div>);\n }\n}\n\nexport default\nDropTarget(props => props.opt.dndItems, dropTarget, dropCollect)(GenericElTableDropTarget);\n\nGenericElTableDropTarget.propTypes = {\n connectDropTarget: PropTypes.func.isRequired,\n isOver: PropTypes.bool.isRequired,\n canDrop: PropTypes.bool.isRequired,\n opt: PropTypes.object.isRequired,\n onDrop: PropTypes.func\n};\n\nGenericElTableDropTarget.defaultProps = { onDrop: () => {} };\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { Button, OverlayTrigger, Tooltip } from 'react-bootstrap';\nimport GridDnD from '../dnd/GridDnD';\n\nconst AddRowBtn = ({ addRow }) => (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id={uuid()}>add entry</Tooltip>}>\n <Button onClick={() => addRow()} bsSize=\"xsmall\" bsStyle=\"primary\"><i className=\"fa fa-plus\" aria-hidden=\"true\" /></Button>\n </OverlayTrigger>\n);\n\nAddRowBtn.propTypes = { addRow: PropTypes.func.isRequired };\n\nconst DelRowBtn = ({ delRow, node }) => {\n const { data } = node;\n return (\n <OverlayTrigger delayShow={1000} placement=\"top\" overlay={<Tooltip id={uuid()}>remove</Tooltip>}>\n <Button onClick={() => delRow(data)} bsSize=\"xsmall\"><i className=\"fa fa-times\" aria-hidden=\"true\" /></Button>\n </OverlayTrigger>\n );\n};\n\nDelRowBtn.propTypes = { delRow: PropTypes.func.isRequired, node: PropTypes.object.isRequired };\n\nconst NullRowBtn = () => (<div className=\"grid-btn-none\"><span className=\"fa fa-arrows\" /></div>);\n\nconst DnDRowBtn = ({\n moveRow, field, type, node\n}) => (\n <GridDnD field={field} type={type} rowValue={node.data} handleMove={moveRow} />\n);\n\nDnDRowBtn.propTypes = {\n moveRow: PropTypes.func.isRequired,\n field: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n node: PropTypes.object.isRequired\n};\n\nexport {\n AddRowBtn, DelRowBtn, DnDRowBtn, NullRowBtn\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport { FormControl, InputGroup } from 'react-bootstrap';\n\nconst setCell = (columnDef, rowValue) => {\n const {\n type, field, onCellChange, cellRenderer, cellParams\n } = columnDef;\n switch (type) {\n case 'text':\n return (\n <FormControl type=\"text\" value={rowValue[field] || ''} onChange={e => onCellChange({ e, columnDef, rowValue })} />\n );\n case 'system-defined':\n return (\n <InputGroup>\n <FormControl type=\"number\" value={rowValue[field].value || ''} onChange={e => onCellChange({ e, columnDef, rowValue })} />\n <InputGroup.Button>\n {cellRenderer({ ...cellParams, node: { data: rowValue } })}\n </InputGroup.Button>\n </InputGroup>\n );\n case 'select':\n case 'drag_molecule':\n case 'drag_sample':\n case 'dnd':\n return (cellRenderer({ ...cellParams, node: { data: rowValue } }));\n default:\n return <span />;\n }\n};\n\nconst ColumnHeader = _columnDefs => {\n const columnDefs = _columnDefs;\n const ch = [];\n const h = (col, idx) => {\n const {\n width, headerName, headerComponent, headerParams\n } = col;\n const colCss = {};\n if (width) { Object.assign(colCss, { width, minWidth: width }); }\n return (\n <div key={`column_header_${col.colId || col.field}_${idx}`} className=\"generic_grid_header\" style={colCss}>\n {headerComponent ? headerComponent(headerParams) : null}\n <div style={colCss}>{headerName}</div>\n </div>\n );\n };\n columnDefs.forEach((col, idx) => ch.push(h(col, idx)));\n return (<div className=\"generic_grid\" style={{ borderBottom: '1px solid #ccc' }}><div>{ch}</div></div>);\n};\n\nconst ColumnRow = (_columnDefs, _rowValue) => {\n const columnDefs = _columnDefs;\n const rowValue = _rowValue;\n const ch = [];\n const h = (col, val, idx) => {\n const {\n field, width, cellParams, cellRenderer\n } = col;\n const colCss = {};\n if (width) { Object.assign(colCss, { width, minWidth: width }); }\n return (\n <div key={`column_row_${val.id}_${col.colId || col.field}_${idx}`} className=\"generic_grid_row\" style={colCss}>\n {field ? (setCell(col, val) || '') : (cellRenderer({ ...cellParams, node: { data: val } }) || '')}\n </div>\n );\n };\n columnDefs.forEach((col, idx) => ch.push(h(col, rowValue, idx)));\n return (<div key={`column_row_${rowValue.id}`} className=\"generic_grid\"><div>{ch}</div></div>);\n};\n\nconst NoRow = rows => {\n const values = rows;\n if (values && values.length > 0) return null;\n return (<div className=\"generic_grid\"><div><div className=\"generic_grid_row\" style={{ width: '100%' }}>(No data)</div></div></div>);\n};\n\nexport { ColumnHeader, ColumnRow, NoRow };\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { OverlayTrigger, Radio, Tooltip } from 'react-bootstrap';\n\nconst SamOption = props => {\n const { sField, node, onChange } = props;\n const { data } = node;\n const fValue = (data[sField.id] && data[sField.id].value) || {};\n if (!fValue.is_new) return <div />;\n const rUUID = uuid();\n return (\n <div className=\"generic_sam_options\">\n <OverlayTrigger delayShow={1000} placement=\"right\" overlay={<Tooltip id={uuid()}>associate with this sample</Tooltip>}>\n <Radio\n name={`dropS_${rUUID}`}\n disabled={fValue.isAssoc}\n checked={fValue.cr_opt === 0}\n onChange={() => onChange({ node, subField: sField, crOpt: 0 })}\n >\n Current\n </Radio>\n </OverlayTrigger>\n <OverlayTrigger delayShow={1000} placement=\"right\" overlay={<Tooltip id={uuid()}>split from the sample first and then associate with it</Tooltip>}>\n <Radio\n name={`dropS_${rUUID}`}\n checked={fValue.cr_opt === 1}\n onChange={() => onChange({ node, subField: sField, crOpt: 1 })}\n >\n Split\n </Radio>\n </OverlayTrigger>\n <OverlayTrigger delayShow={1000} placement=\"right\" overlay={<Tooltip id={uuid()}>duplicate the sample first and then associate with it</Tooltip>}>\n <Radio\n name={`dropS_${rUUID}`}\n checked={fValue.cr_opt === 2}\n onChange={() => onChange({ node, subField: sField, crOpt: 2 })}\n >\n Copy\n </Radio>\n </OverlayTrigger>\n </div>\n );\n};\n\nSamOption.propTypes = {\n sField: PropTypes.object.isRequired,\n node: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired\n};\n\nexport default SamOption;\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport Select from 'react-select';\n\nconst SelectRenderer = props => {\n const {\n sField, onChange, sOptions, node\n } = props;\n if (sField.type !== 'select' || sOptions.length < 1) return null;\n const { data } = node;\n const val = sOptions.find(o => o.value === data[sField.id].value) || null;\n return (\n <Select\n isClearable\n menuContainerStyle={{ position: 'absolute' }}\n multi={false}\n options={sOptions}\n value={val}\n onChange={e => onChange(e, sField, node)}\n className=\"status-select\"\n style={{ textAlign: 'left' }}\n />\n );\n};\n\nSelectRenderer.propTypes = {\n sField: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n node: PropTypes.object.isRequired,\n sOptions: PropTypes.arrayOf(PropTypes.object).isRequired\n};\n\nexport default SelectRenderer;\n","/* eslint-disable no-restricted-globals */\n/* eslint-disable no-empty */\n/* eslint-disable react/forbid-prop-types */\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport Numeral from 'numeral';\nimport GenericSubField from '../models/GenericSubField';\nimport {\n AddRowBtn, DelRowBtn, DnDRowBtn, NullRowBtn\n} from './GridBtn';\nimport { ColumnHeader, ColumnRow, NoRow } from './GridEntry';\nimport UConverterRenderer from './UConverterRenderer';\nimport {\n genUnits, unitConversion, molOptions, samOptions\n} from '../tools/utils';\nimport DropRenderer from './DropRenderer';\nimport DropTextRenderer from './DropTextRenderer';\nimport DropLinkRenderer from './DropLinkRenderer';\nimport SampOption from './SamOption';\nimport DragDropItemTypes from '../dnd/DragDropItemTypes';\nimport SelectRenderer from './SelectRenderer';\n\nexport default class TableRecord extends React.Component {\n constructor(props) {\n super(props);\n this.delRow = this.delRow.bind(this);\n this.addRow = this.addRow.bind(this);\n this.moveRow = this.moveRow.bind(this);\n this.onCellChange = this.onCellChange.bind(this);\n this.onSelectClick = this.onSelectClick.bind(this);\n this.onUnitClick = this.onUnitClick.bind(this);\n this.onDrop = this.onDrop.bind(this);\n this.onChk = this.onChk.bind(this);\n this.getColumns = this.getColumns.bind(this);\n }\n\n onCellChange(params) {\n const { e, columnDef, rowValue } = params;\n const newValue = e.target.value;\n const oldValue = rowValue[columnDef.field].value;\n if (oldValue === newValue) return;\n if (columnDef.type === 'text') {\n rowValue[columnDef.field] = newValue;\n }\n if (columnDef.type === 'system-defined') {\n if (isNaN(newValue)) return;\n rowValue[columnDef.field].value = Numeral(newValue).value();\n }\n const { opt } = this.props;\n const subVals = opt.f_obj.sub_values || [];\n const idx = subVals.findIndex(s => s.id === rowValue.id);\n subVals.splice(idx, 1, rowValue);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(0, 0, opt.f_obj, true);\n }\n\n onSelectClick(e, subField, node) {\n const { data } = node;\n const { opt } = this.props;\n const subVals = opt.f_obj.sub_values || [];\n const subVal = subVals.find(s => s.id === data.id);\n subVal[subField.id] = { value: e ? e.value : '' };\n const idx = subVals.findIndex(s => s.id === data.id);\n subVals.splice(idx, 1, subVal);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(subField, subField.id, opt.f_obj, true);\n }\n\n onUnitClick(subField, node) {\n const { data } = node;\n const { opt } = this.props;\n const subVals = opt.f_obj.sub_values || [];\n const subVal = subVals.find(s => s.id === data.id);\n const units = genUnits(subField.option_layers);\n let uIdx = units.findIndex(u => u.key === subVal[subField.id].value_system);\n if (uIdx < units.length - 1) uIdx += 1; else uIdx = 0;\n const vs = units.length > 0 ? units[uIdx].key : '';\n const v = unitConversion(subField.option_layers, vs, subVal[subField.id].value);\n subVal[subField.id] = { value: v, value_system: vs };\n const idx = subVals.findIndex(s => s.id === data.id);\n subVals.splice(idx, 1, subVal);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(subField, subField.id, opt.f_obj, true);\n }\n\n onDrop(targetProps, targetOpt) {\n const { opt } = this.props;\n const subField = targetOpt.sField;\n const subVals = opt.f_obj.sub_values || [];\n const subVal = subVals.find(s => s.id === targetOpt.data.id);\n subVal[subField.id] = { value: targetProps };\n const idx = subVals.findIndex(s => s.id === targetOpt.data.id);\n subVals.splice(idx, 1, subVal);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(subField, subField.id, opt.f_obj, true);\n }\n\n onChk(params) {\n const { node, subField, crOpt } = params;\n const { opt } = this.props;\n const subVals = opt.f_obj.sub_values || [];\n const subVal = subVals.find(s => s.id === node.data.id);\n node.data[subField.id].value.cr_opt = crOpt;\n subVal[subField.id] = { value: node.data[subField.id].value };\n const idx = subVals.findIndex(s => s.id === node.data.id);\n subVals.splice(idx, 1, subVal);\n opt.f_obj.sub_values = subVals;\n opt.onSubChange(subField, subField.id, opt.f_obj, true);\n }\n\n getColumns() {\n const { opt } = this.props;\n const { selectOptions, onNavi } = opt;\n const sValues = (opt.f_obj.sub_values || []);\n let columnDefs = [];\n (opt.f_obj.sub_fields || []).forEach(sF => {\n let colDef = {\n type: sF.type, headerName: sF.col_name, field: sF.id\n };\n const colDefExt = [];\n if (sF.type === 'text') {\n colDef = { ...colDef, editable: true, onCellChange: this.onCellChange };\n }\n if (sF.type === 'select') {\n let sOptions = (selectOptions[sF.option_layers] && selectOptions[sF.option_layers].options) || [];\n sOptions = sOptions.map(op => ({ value: op.key, name: op.key, label: op.label }));\n const cellParams = { sField: sF, onChange: this.onSelectClick, sOptions };\n colDef = {\n ...colDef, cellRenderer: SelectRenderer, cellParams, onCellChange: this.onCellChange\n };\n }\n if (sF.type === 'system-defined') {\n const cellParams = { sField: sF, onChange: this.onUnitClick };\n colDef = {\n ...colDef, cellRenderer: UConverterRenderer, cellParams, onCellChange: this.onCellChange\n };\n }\n if (sF.type === 'drag_molecule') {\n const cellParams = { sField: sF, opt, onChange: this.onDrop };\n colDef = {\n ...colDef, cellRenderer: DropRenderer, cellParams, onCellChange: this.onCellChange, width: '5vw'\n };\n const conf = ((sF.value || '').split(';') || []);\n conf.forEach(c => {\n const attr = molOptions.find(m => m.value === c);\n if (attr) {\n const ext = {\n colId: c, editable: false, type: 'text', headerName: attr.label, cellRenderer: DropTextRenderer, cellParams: { attr, sField: sF }\n };\n colDefExt.push(ext);\n }\n });\n }\n if (sF.type === 'drag_sample') {\n const sOpt = sValues.filter(o => o[sF.id] && o[sF.id].value && o[sF.id].value.is_new);\n const cellParams = { sField: sF, opt, onChange: this.onDrop };\n colDef = {\n ...colDef, cellRenderer: DropRenderer, cellParams, onCellChange: this.onCellChange, width: '5vw'\n };\n const addOption = {\n colId: 'sam_option', editable: false, type: 'text', headerName: '', cellRenderer: SampOption, cellParams: { sField: sF, onChange: this.onChk }, width: '3vw'\n };\n if (sOpt.length > 0) colDefExt.push(addOption);\n const addLink = {\n colId: 'sam_link', editable: false, type: 'text', headerName: 'Short label', cellRenderer: DropLinkRenderer, cellParams: { sField: sF, onNavi }, width: '5vw'\n };\n colDefExt.push(addLink);\n const conf = ((sF.value || '').split(';') || []);\n conf.forEach(c => {\n const attr = samOptions.find(m => m.value === c);\n if (attr) {\n const ext = {\n colId: c, editable: false, type: 'text', headerName: attr.label, cellRenderer: DropTextRenderer, cellParams: { attr, sField: sF }\n };\n colDefExt.push(ext);\n }\n });\n }\n columnDefs.push(colDef);\n if (colDefExt.length > 0) columnDefs = columnDefs.concat(colDefExt);\n });\n const act = {\n type: 'button',\n headerName: '',\n colId: opt.f_obj.field,\n headerComponent: AddRowBtn,\n headerParams: { addRow: this.addRow },\n cellRenderer: DelRowBtn,\n cellParams: { delRow: this.delRow },\n width: 'unset',\n };\n columnDefs.splice(0, 0, act);\n const dtype = `${DragDropItemTypes.GENERIC_GRID}_${opt.layer.key}_${opt.f_obj.field}`;\n const move = {\n type: 'dnd',\n field: opt.f_obj.field,\n headerName: '',\n colId: `${opt.f_obj.field}_dnd`,\n headerComponent: NullRowBtn,\n cellRenderer: DnDRowBtn,\n cellParams: { moveRow: this.moveRow, field: opt.f_obj.field, type: dtype },\n width: 'unset',\n };\n columnDefs.splice(0, 0, move);\n return columnDefs;\n }\n\n moveRow(source, target) {\n const { opt } = this.props;\n const alles = opt.f_obj.sub_values;\n const sid = alles.findIndex(e => e.id === source);\n const tid = alles.findIndex(e => e.id === target);\n const temp = alles[sid];\n alles[sid] = alles[tid];\n alles[tid] = temp;\n opt.onSubChange(0, 0, opt.f_obj, true);\n }\n\n delRow(rowData) {\n const { opt } = this.props;\n opt.f_obj.sub_values = opt.f_obj.sub_values.filter(s => s.id !== rowData.id);\n opt.onSubChange(0, 0, opt.f_obj, true);\n }\n\n addRow() {\n const { opt } = this.props;\n const subFields = opt.f_obj.sub_fields || [];\n const newSub = new GenericSubField();\n subFields.map(e => {\n if (e.type === 'text') return Object.assign(newSub, { [e.id]: '' });\n return Object.assign(newSub, { [e.id]: { value: '', value_system: e.value_system } });\n });\n opt.f_obj.sub_values = opt.f_obj.sub_values || [];\n opt.f_obj.sub_values.push(newSub);\n opt.onSubChange(0, 0, opt.f_obj, true);\n }\n\n render() {\n const { opt } = this.props;\n if (opt.isSearch) return (<div>(This is a table)</div>);\n if ((opt.f_obj.sub_fields || []).length < 1) return null;\n const columnDefs = this.getColumns();\n return (\n <div>\n {ColumnHeader(columnDefs)}\n <div>{NoRow(opt.f_obj.sub_values)}</div>\n <div>{(opt.f_obj.sub_values || []).map(s => ColumnRow(columnDefs, s))}</div>\n </div>\n );\n }\n}\n\nTableRecord.propTypes = {\n opt: PropTypes.object.isRequired,\n};\n","/* eslint-disable react/forbid-prop-types */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from 'react-bootstrap';\nimport { genUnit, genUnitSup } from '../tools/utils';\n\nconst UConverterRenderer = props => {\n const { sField, onChange, node } = props;\n if (sField.type !== 'system-defined') return null;\n const { data } = node;\n return (\n <Button key={`ucr_${data.id}`} active onClick={() => onChange(sField, node)} bsStyle=\"success\">\n {genUnitSup(genUnit(sField.option_layers, data[sField.id].value_system).label) || ''}\n </Button>\n );\n};\n\nUConverterRenderer.propTypes = {\n sField: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n node: PropTypes.object.isRequired\n};\n\nexport default UConverterRenderer;\n","export default Object.freeze({\n BTN_AI_LINK: 'link',\n BTN_AI_UNLINK: 'unlink',\n IMG_NOT_AVAILABLE_SVG: '/images/wild_card/not_available.svg',\n IMG_UNDEFINED_STRUCTURE_SVG: '/images/wild_card/undefined_structure.svg'\n});\n","import { cloneDeep } from 'lodash';\nimport { unitConversion } from './utils';\nimport GenericSubField from '../models/GenericSubField';\n\nconst collateValues = (currentFields, previousFields, previousValues) => {\n const result = [];\n let newSub = new GenericSubField();\n currentFields.map(e => Object.assign(newSub, { [e.id]: '' }));\n const currentValuKeys = Object.keys(newSub);\n const previousValueKeys = Object.keys(previousValues[0]);\n const notInCurrent = previousValueKeys.filter(e => !currentValuKeys.includes(e));\n const currObj = {};\n currentFields.map(c => {\n if (c.type === 'text') return Object.assign(currObj, { [c.id]: '' });\n return Object.assign(currObj, { [c.id]: { value: '', value_system: c.value_system } });\n });\n previousValues.forEach(e => {\n newSub = new GenericSubField();\n Object.assign(newSub, currObj, e);\n notInCurrent.forEach(c => delete newSub[c]);\n previousValueKeys.forEach(preKey => {\n if (newSub[preKey] === undefined || preKey === 'id') return;\n const curr = currentFields.find(f => f.id === preKey);\n const prev = previousFields.find(f => f.id === preKey);\n if (curr.type === 'drag_molecule') {\n if (['text', 'system-defined', 'drag_sample'].includes(prev.type)) {\n newSub[preKey] = { value: undefined };\n }\n }\n if (curr.type === 'text') {\n if (prev.type === 'system-defined') {\n newSub[preKey] = newSub[preKey].value;\n }\n if (['drag_molecule', 'drag_sample'].includes(prev.type)) {\n newSub[preKey] = '';\n }\n }\n if (curr.type === 'system-defined') {\n if (prev.type === 'system-defined' && (curr.option_layers !== prev.option_layers)) {\n newSub[preKey].value_system = curr.value_system;\n }\n if (['text', 'drag_molecule', 'drag_sample'].includes(prev.type)) {\n newSub[preKey] = { value: '', value_system: curr.value_system };\n }\n newSub[preKey].value = unitConversion(curr.option_layer, newSub[preKey].value_system, newSub[preKey].value);\n }\n });\n result.push(newSub);\n });\n return result;\n};\n\nconst organizeSubValues = (cur, pre) => {\n const currentFields = cloneDeep(cur.sub_fields || []);\n const previousFields = cloneDeep(pre.sub_fields || []);\n const previousValues = cloneDeep(pre.sub_values || []);\n if (currentFields.length < 1\n || previousFields.length < 1 || previousValues.length < 1) {\n return [];\n }\n return collateValues(currentFields, previousFields, previousValues);\n};\n\nexport default organizeSubValues;\n","import { cloneDeep, sortBy } from 'lodash';\nimport { v4 as uuid } from 'uuid';\n\nconst getWFNode = (_flow, nodeId) => _flow.elements.filter(e => e.id === nodeId)[0];\n\n// full-flow, node id\nconst getFlowLayer = (templateFlow, nodeId, sourceLayer, sIdx) => {\n const flow = cloneDeep(templateFlow);\n const nd = flow.elements.filter(e => e.id === nodeId); // fetch node\n if (nd.length < 1) return null;\n const { layer } = nd[0].data;\n const ls = flow.elements.filter(e => e.animated); // lines\n const ns = flow.elements.filter(e => e.type === 'default' && e.data); // nodes - Start - End\n const ndNs = ls.filter(e => e.source === nodeId).map(e => e.target); // next nodes' id\n const wfOpts = ns.filter(n => ndNs.includes(n.id)).map(e => ({ key: e.id, label: `${e.data.layer.label}(${e.data.layer.key})` })); // next nodes\n if (wfOpts.length > 0) {\n const position = (layer.fields || []).length + 1;\n layer.fields.push({\n type: 'wf-next', default: '', field: '_wf_next', label: 'Next', required: false, sub_fields: [], text_sub_fields: [], position, wf_options: wfOpts\n });\n }\n layer.wf_info = { node_id: nodeId, source_layer: sourceLayer };\n layer.wf_position = sIdx + 1;\n return layer;\n};\n\nconst orgLayerObject = (_layers = []) => {\n const layers = _layers;\n return layers.reduce((alles, name) => {\n const all = alles;\n const ok = Object.keys(all);\n if (ok.includes(name.key)) {\n const cnt = ok.filter(e => e === name.key || e.startsWith(`${name.key}.`)).length;\n const nName = `${name.key}.${cnt}`;\n name.key = nName;\n all[nName] = name;\n } else {\n all[name.key] = name;\n }\n return all;\n }, {});\n};\n\nconst reformCondFields = (_layer, _oKey) => {\n const layer = _layer;\n layer.fields.map(_f => {\n const f = _f;\n let conds = f.cond_fields;\n // no cond_fields\n if (!conds || conds.length < 1 || conds.filter(o => !o.field || o.field === '').length === conds.length) return f;\n conds = conds.filter(o => o.layer === _oKey);\n // no same layer, remove cond_fields\n if (conds.length < 1) {\n delete f.cond_fields;\n return f;\n }\n // rename layer\n conds = conds.map(o => {\n const n = o;\n n.layer = layer.key;\n return n;\n });\n f.cond_fields = conds;\n return f;\n });\n return layer.fields;\n};\n\nconst addToObject = (obj, key, addAfter) => {\n const temp = {};\n const ok = Object.keys(obj);\n Object.keys(obj).forEach(e => {\n if (Object.prototype.hasOwnProperty.call(obj, e)) {\n temp[e] = obj[e];\n if (e === key) {\n const srcPosition = temp[e].position;\n const cnt = ok.filter(o => o === addAfter.key || o.startsWith(`${addAfter.key}.`)).length;\n if (cnt === 0) {\n temp[addAfter.key] = addAfter;\n temp[addAfter.key].position = srcPosition;\n } else {\n const oKey = addAfter.key;\n temp[`${addAfter.key}.${cnt}`] = addAfter;\n temp[`${addAfter.key}.${cnt}`].position = srcPosition;\n temp[`${addAfter.key}.${cnt}`].key = `${addAfter.key}.${cnt}`;\n temp[addAfter.key].fields = reformCondFields(addAfter, oKey);\n }\n }\n }\n });\n if (Object.keys(obj).length === 0) temp[addAfter.key] = addAfter;\n return temp;\n};\n\nconst traverseToRemove = (layers, rmKey) => {\n let rms = [];\n Object.keys(layers).forEach(e => {\n if (Object.prototype.hasOwnProperty.call(layers, e)) {\n if (layers[e].key === rmKey) rms = rms.concat(rmKey);\n else if (layers[e].wf_info && (layers[e].wf_info.source_layer === rmKey)) {\n rms = rms.concat(traverseToRemove(layers, layers[e].key));\n }\n }\n });\n return rms;\n};\n\nconst removeFromObject = (_propertiesLayers = {}, srcLayer = '', rmNode = {}) => {\n const layers = _propertiesLayers;\n const rmLayer = rmNode.data && rmNode.data.layer ? rmNode.data.layer.key : null;\n if (!rmLayer) return [];\n let rms = [];\n Object.keys(layers).forEach(e => {\n if (Object.prototype.hasOwnProperty.call(layers, e)) {\n const wf = layers[e].wf_info;\n if (wf && (wf.source_layer === srcLayer) && (wf.node_id === rmNode.id)) {\n rms = rms.concat(traverseToRemove(layers, layers[e].key));\n }\n }\n });\n rms.forEach(e => delete layers[e]);\n return layers;\n};\n\nconst buildInitWF = (template) => {\n const orig = cloneDeep(template);\n const { layers, flow } = orig;\n const sortedLayers = sortBy(layers, l => l.position);\n if (flow && flow.elements.filter(e => !['input', 'output'].includes(e.type).length > 0)) {\n // id = 1 Start, id = 2 End\n const nls = flow.elements; // nodes + lines\n const ls = nls.filter(e => e.animated); // lines\n const ns = nls.filter(e => e.type === 'default' && e.data); // nodes - Start - End\n const nNs = ls.filter(e => e.source === '1').map(e => e.target); // get target ids from Start\n const nextNodes = ns.filter(n => nNs.includes(n.id)); // target nodes\n const result = [];\n sortedLayers.forEach((sortedLayer) => {\n const fLayer = sortedLayer;\n if (fLayer.wf) {\n const position = (fLayer.fields || []).length + 1;\n const passen = nextNodes.filter(n => n.data.layer.key === fLayer.key);\n passen.forEach((pas) => {\n const nextOptions = ls.filter(e => e.source === pas.id && e.source !== e.target).map(e => e.target);\n const wfOpts = ns.filter(n => nextOptions.includes(n.id)).map(e => ({ key: e.id, label: `${e.data.layer.label}(${e.data.layer.key})` })); // next nodes\n if (wfOpts.length > 0) {\n fLayer.fields.push({\n type: 'wf-next', default: '', field: '_wf_next', label: 'Next', required: false, sub_fields: [], text_sub_fields: [], position, wf_options: wfOpts\n });\n }\n fLayer.wf_info = { node_id: pas.id };\n fLayer.wf_position = 1;\n fLayer.wf_uuid = uuid();\n result.push(fLayer);\n });\n } else {\n result.push(fLayer);\n }\n });\n const ll = orgLayerObject(result);\n orig.layers = ll;\n } else {\n orig.layers = layers;\n }\n return orig;\n};\n\nexport {\n getWFNode, getFlowLayer, orgLayerObject,\n addToObject, removeFromObject, reformCondFields, buildInitWF\n};\n","/* eslint-disable no-restricted-globals */\nimport { findIndex, cloneDeep } from 'lodash';\nimport { genUnits, toBool, toNum } from './utils';\nimport organizeSubValues from './collate';\n\n// current generic value, new klass value\nconst reinventGeneric = (generic, klass) => {\n if (!generic || !klass || !generic.properties || !klass.properties_release) {\n return [undefined, undefined];\n }\n const newProps = cloneDeep(klass.properties_release);\n newProps.klass = generic.properties.klass;\n newProps.klass_uuid = klass.uuid;\n Object.keys(newProps.layers).forEach((key) => {\n const newLayer = newProps.layers[key] || {};\n const curFields = (generic.properties.layers[key] && generic.properties.layers[key].fields)\n || [];\n (newLayer.fields || []).forEach((f, idx) => {\n const curIdx = findIndex(curFields, o => o.field === f.field);\n if (curIdx >= 0) {\n const curVal = generic.properties.layers[key].fields[curIdx].value;\n const curType = typeof curVal;\n if (['select', 'text', 'textarea', 'formula-field'].includes(newProps.layers[key].fields[idx].type)) {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? curVal.toString() : '';\n }\n if (newProps.layers[key].fields[idx].type === 'integer') {\n newProps.layers[key].fields[idx].value = (curType === 'undefined' || curType === 'boolean' || isNaN(curVal)) ? 0 : parseInt(curVal, 10);\n }\n if (newProps.layers[key].fields[idx].type === 'checkbox') {\n newProps.layers[key].fields[idx].value = curType !== 'undefined' ? toBool(curVal) : false;\n }\n if ((newProps.layers[key].fields[idx].type === 'drag_sample' && generic.properties.layers[key].fields[curIdx].type === 'drag_sample')\n || (newProps.layers[key].fields[idx].type === 'drag_molecule' && generic.properties.layers[key].fields[curIdx].type === 'drag_molecule')) {\n if (typeof curVal !== 'undefined') newProps.layers[key].fields[idx].value = curVal;\n }\n if (newProps.layers[key].fields[idx].type === 'system-defined') {\n const units = genUnits(newProps.layers[key].fields[idx].option_layers);\n const vs = units.find(u => u.key === generic.properties.layers[key].fields[curIdx].value_system);\n newProps.layers[key].fields[idx].value_system = (vs && vs.key) || units[0].key;\n newProps.layers[key].fields[idx].value = toNum(curVal);\n }\n if (newProps.layers[key].fields[idx].type === 'input-group') {\n if (generic.properties.layers[key].fields[curIdx].type\n !== newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].value = undefined;\n } else {\n const nSubs = newProps.layers[key].fields[idx].sub_fields || [];\n const cSubs = generic.properties.layers[key].fields[curIdx].sub_fields || [];\n const exSubs = [];\n if (nSubs.length < 1) {\n newProps.layers[key].fields[idx].value = undefined;\n } else {\n nSubs.forEach((nSub) => {\n const hitSub = cSubs.find(c => c.id === nSub.id) || {};\n if (nSub.type === 'label') { exSubs.push(nSub); }\n if (nSub.type === 'text') {\n if (hitSub.type === 'label') {\n exSubs.push(nSub);\n } else { exSubs.push({ ...nSub, value: (hitSub.value || '').toString() }); }\n }\n if (['number', 'system-defined'].includes(nSub.type)) {\n const nvl = (typeof hitSub.value === 'undefined' || hitSub.value == null || hitSub.value.length === 0) ? '' : toNum(hitSub.value);\n if (nSub.option_layers === hitSub.option_layers) {\n exSubs.push({ ...nSub, value: nvl, value_system: hitSub.value_system });\n } else {\n exSubs.push({ ...nSub, value: nvl });\n }\n }\n });\n }\n newProps.layers[key].fields[idx].sub_fields = exSubs;\n }\n }\n if (newProps.layers[key].fields[idx].type === 'upload') {\n if (generic.properties.layers[key].fields[curIdx].type\n === newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].value = generic.properties.layers[key].fields[curIdx].value;\n } else {\n newProps.layers[key].fields[idx].value = {};\n }\n }\n if (newProps.layers[key].fields[idx].type === 'table') {\n if (generic.properties.layers[key].fields[curIdx].type\n !== newProps.layers[key].fields[idx].type) {\n newProps.layers[key].fields[idx].sub_values = [];\n } else {\n newProps.layers[key].fields[idx].sub_values = organizeSubValues(\n newProps.layers[key].fields[idx],\n generic.properties.layers[key].fields[curIdx]\n );\n }\n }\n }\n });\n });\n return [generic.properties, newProps];\n};\n\nexport default reinventGeneric;\n","import { useEffect, useReducer, useRef } from 'react';\n\nconst useReducerWithCallback = (reducer, initialState, initializer) => {\n const callbackRef = useRef();\n const [state, dispatch] = useReducer(reducer, initialState, initializer);\n\n useEffect(() => {\n if (callbackRef.current) {\n callbackRef.current(state);\n callbackRef.current = null;\n }\n }, [state]);\n\n const customDispatch = (action, callback) => {\n callbackRef.current = callback;\n dispatch(action);\n };\n\n return [state, customDispatch];\n};\n\nexport default useReducerWithCallback;\n","import React from 'react';\n// import PropTypes from 'prop-types';\n// import { Button, OverlayTrigger, Tooltip, Popover, ControlLabel } from 'react-bootstrap';\n// import uuid from 'uuid';\nimport { v4 as uuid } from 'uuid';\nimport { findIndex, findKey, cloneDeep } from 'lodash';\n// import NotificationActions from '../../components/actions/NotificationActions';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheckCircle } from '@fortawesome/free-regular-svg-icons';\nimport SystemUnits from '../../data/SystemUnits';\nimport Attachment from '../models/Attachment';\n\nconst KlzIcon = (klz, klzSty) => (<span className={klz} style={klzSty} />);\n\n// move from GenericElCommon.js > UploadInputChange\nconst uploadFiles = (properties, event, field, layer) => {\n const files = [];\n const fieldObj = properties.layers[`${layer}`].fields.find(e => e.field === field) || {};\n const value = fieldObj.value || {};\n switch (event.action) {\n case 'l': {\n const valIdx = findIndex((value.files || []), o => o.uid === event.uid);\n const label = event && event.val && event.val.target && event.val.target.value;\n if (value.files[valIdx] && label) value.files[valIdx].label = label;\n break;\n }\n case 'f': {\n (event.val || []).forEach((file) => {\n const uid = uuid();\n if (typeof value.files === 'undefined' || value.files === null) value.files = [];\n value.files.push({ uid, filename: file.name });\n files.push({ uid, filename: file.name, file: Attachment.fromFile(file) });\n });\n break;\n }\n case 'd': {\n const valIdx = findIndex((value.files || []), o => o.uid === event.uid);\n if (valIdx >= 0 && value.files && value.files.length > 0) value.files.splice(valIdx, 1);\n return [value, files, event.uid];\n }\n default:\n console.log(event);\n }\n return [value, files];\n};\n\n// move from GenPropertiesLayer.js\nconst showProperties = (fObj, layers) => {\n let showField = true;\n if (fObj && fObj.cond_fields && fObj.cond_fields.length > 0) {\n showField = false;\n for (let i = 0; i < fObj.cond_fields.length; i += 1) {\n const cond = fObj.cond_fields[i] || {};\n const { layer, field, value } = cond;\n if (field && field !== '') {\n const fd = ((layers[layer] || {}).fields || []).find(f => f.field === field) || {};\n if (fd.type === 'checkbox' && ((['false', 'no', 'f', '0'].includes((value || '').trim().toLowerCase()) && (typeof (fd && fd.value) === 'undefined' || fd.value === false))\n || (['true', 'yes', 't', '1'].includes((value || '').trim().toLowerCase()) && (typeof (fd && fd.value) !== 'undefined' && fd.value === true)))) {\n showField = true;\n break;\n } else if (['text', 'select'].includes(fd && fd.type) && (typeof (fd && fd.value) !== 'undefined' && ((fd && fd.value) || '').trim() === (value || '').trim())) {\n showField = true;\n break;\n }\n }\n }\n }\n return showField;\n};\n\nclass GenericDummy {\n constructor() {\n this.type = 'dummy';\n this.field = uuid();\n this.position = 100;\n this.label = '';\n this.default = '';\n this.required = false;\n }\n}\n\nconst inputEventVal = (event, type) => {\n if (type === 'select') {\n return event ? event.value : null;\n } if (type.startsWith('drag')) {\n return event;\n } if (type === 'checkbox') {\n return event.target.checked;\n } if (type === 'formula-field') {\n if (event.target) {\n return event.target.value;\n }\n return event;\n }\n return event.target && event.target.value;\n};\n\nconst absOlsTermId = val => (val || '').split('|')[0].trim();\nconst absOlsTermLabel = val => val.replace(absOlsTermId(val), '').replace('|', '').trim();\nconst toNum = val => {\n const parse = Number((val || ''));\n return Number.isNaN(parse) ? 0 : parse;\n};\n\nconst genUnitSup = val => {\n if (typeof val === 'undefined' || val === null) return '';\n const vals = val.match(/<\\s*(\\w+\\b)(?:(?!<\\s*\\/\\s*\\1\\b)[\\s\\S])*<\\s*\\/\\s*\\1\\s*>|[^<]+/g);\n const reV = vals.map(v => {\n const supVal = v.match(/<sup[^>]*>([^<]+)<\\/sup>/);\n if (supVal) return <sup key={uuid()}>{supVal[1]}</sup>;\n const subVal = v.match(/<sub[^>]*>([^<]+)<\\/sub>/);\n if (subVal) return <sub key={uuid()}>{subVal[1]}</sub>;\n return v;\n });\n return <span>{reV}</span>;\n};\n\nconst toBool = val => {\n const valLower = String(val).toLowerCase();\n return !(!valLower || valLower === 'false' || valLower === '0');\n};\n\nconst genUnitsSystem = () => (SystemUnits.SYSTEM_UNITS || {}).fields || [];\n\nconst genUnits = field => (genUnitsSystem().find(u => u.field === field) || {}).units || [];\n\nconst genUnit = (field, key) => {\n const units = genUnits(field);\n return units.find(u => u.key === key) || {};\n};\n\nconst reUnit = (unitsSystem, optionLayers) => {\n const uniFileds = (unitsSystem.fields || []);\n const uniObj = uniFileds.find(fiel => fiel.field === optionLayers);\n const defaultUnit = ((uniObj && uniObj.field) || '');\n const preUnit = uniFileds.length > 0 ? uniFileds[0].field : '';\n return defaultUnit === '' ? preUnit : defaultUnit;\n};\n\nconst convertTemp = (key, val) => {\n switch (key) {\n case 'F':\n return ((parseFloat(val) * 1.8) + 32).toFixed(2);\n case 'K':\n return (((parseFloat(val) + 459.67) * 5) / 9).toFixed(2);\n case 'C':\n return (parseFloat(val) - 273.15).toFixed(2);\n default:\n return val;\n }\n};\n\nconst unitConvToBase = (field = {}) => {\n const units = genUnits(field.option_layers);\n if (units.length <= 1) {\n return field.value;\n }\n const idx = findIndex(units, u => u.key === field.value_system);\n if (idx <= 0) return field.value;\n return ((field.value * units[0].nm) / ((units[idx] && units[idx].nm) || 1) || 0);\n};\n\nconst unitConversion = (field, key, val) => {\n if (typeof val === 'undefined' || val == null || val === 0 || val === '') {\n return val;\n }\n if (field === 'temperature') {\n return convertTemp(key, val);\n }\n const units = genUnits(field);\n if (units.length <= 1) {\n return val;\n }\n const idx = findIndex(units, u => u.key === key);\n if (idx === -1) {\n return val;\n }\n const pIdx = idx === 0 ? (units.length) : idx;\n const pre = (units[pIdx - 1] && units[pIdx - 1].nm) || 1;\n const curr = (units[idx] && units[idx].nm) || 1;\n return parseFloat((parseFloat(val) * (curr / pre)).toFixed(5));\n};\n\n// const notification = props =>\n// (\n// NotificationActions.add({\n// title: props.title,\n// message: props.msg,\n// level: props.lvl,\n// position: 'tc',\n// dismissible: 'button',\n// autoDismiss: props.autoDismiss || 5,\n// uid: props.uid || uuid.v4()\n// })\n// );\n\n// const validateLayerInput = (layer, act = 'new') => {\n// if (layer.key === '') {\n// notification({ title: `Layer [${layer.key}]`, lvl: 'error', msg: 'Please input Name.' });\n// return false;\n// }\n// if (act === 'new' && !(/^[a-z][a-z_]+[a-z]$/g.test(layer.key))) {\n// notification({ title: `Layer [${layer.key}]`, lvl: 'error', msg: 'This Name is invalid, please try a different one.' });\n// return false;\n// }\n// if (parseInt((layer.cols || 1), 10) < 1) {\n// notification({ title: `Layer [${layer.key}]`, lvl: 'error', msg: 'The minimun of Column per Row is 1, please input a different one.' });\n// return false;\n// }\n// return true;\n// };\n\n// const validateSelectList = (selectName, element) => {\n// if (selectName === '') {\n// notification({ title: `Select List [${selectName}]`, lvl: 'error', msg: 'Please input Name.' });\n// return false;\n// }\n// if (!(/^[a-z][a-z_]+[a-z]$/g.test(selectName))) {\n// notification({ title: `Select List [${selectName}]`, lvl: 'error', msg: 'This Name is invalid, please try a different one.' });\n// return false;\n// }\n// if (element.properties_template.select_options[`${selectName}`]) {\n// notification({ title: `Select List [${selectName}]`, lvl: 'error', msg: 'This name of Select List is already taken. Please choose another one.' });\n// return false;\n// }\n// return true;\n// };\n\nconst clsInputGroup = el => {\n if (!el) return el;\n const genericEl = el;\n const { layers } = genericEl.properties_template;\n const keys = Object.keys(layers);\n keys.forEach(key => {\n const layer = layers[key];\n layer.fields.filter(e => e.type === 'input-group')\n .forEach(e => {\n e.sub_fields.forEach(s => {\n const ff = s;\n if (ff.type === 'text') { ff.value = ''; }\n });\n });\n });\n return genericEl;\n};\n\nconst molOptions = [{ label: 'InChiKey', value: 'inchikey' }, { label: 'SMILES', value: 'smiles' }, { label: 'IUPAC', value: 'iupac' }, { label: 'Mass', value: 'molecular_weight' }];\nconst samOptions = [{ label: 'Name', value: 'name' }, { label: 'Ext. Label', value: 'external_label' }, { label: 'Mass', value: 'molecular_weight' }];\n\nconst findCurrentNode = (_srcKey, _layerVals) => {\n const result = [];\n const fs = _layerVals.filter(o => o.wf && o.wf_info && o.wf_info.source_layer === _srcKey);\n if (fs.length > 1) {\n fs.forEach(o => {\n findCurrentNode(o, _layerVals);\n });\n } else if (fs.length === 1) {\n return findCurrentNode(fs[0].key, _layerVals);\n }\n return [_srcKey];\n};\n\nconst decorateNode = (_elements, _layers) => {\n if (!_elements || _elements.length < 1) return _elements;\n const m = {\n background: '#D6D5E6',\n color: '#333',\n // border: '1px solid #222138',\n // width: 180,\n };\n const elements = _elements;\n elements.map(e => {\n if (['input', 'output'].includes(e.type) || e.animated) return e;\n const lk = e.data.lKey;\n const fk = findKey(_layers, o => o.wf && (o.key === lk || o.key.startsWith(`${lk}.`)));\n if (fk) {\n e.style = m;\n return e;\n }\n return e;\n });\n return elements;\n};\n\nconst conFlowEls = props => {\n const { properties, properties_release } = props;\n const { flow, layers } = properties_release;\n const deep = cloneDeep(flow);\n const els = (deep && deep.elements) || [];\n els.map(d => {\n if (['default'].includes(d.type) && d.data) {\n const { lKey } = d.data;\n const fk = findKey((properties.layers || {}), o => o.wf && (o.key === lKey || o.key.startsWith(`${lKey}.`)));\n const chk = fk ? (<div style={{ position: 'absolute', top: '0px', right: '2px', color: 'green', zIndex: '100' }}><FontAwesomeIcon icon={faCheckCircle} /></div>) : null;\n const layer = layers[lKey] || {};\n const ll = (\n <div>\n {chk}\n <div style={{ borderWidth: '0px 0px 1px 0px', borderColor: 'black', borderStyle: 'solid' }}><b>{layer.label}</b></div>\n <div>\n (\n {layer.key}\n )\n </div>\n </div>\n );\n d.data = { label: ll, lKey: layer.key };\n }\n return d;\n });\n return els;\n};\n\nconst storeFlow = props => {\n const { elements } = props;\n const els = cloneDeep(elements);\n els.map(d => {\n if (['default'].includes(d.type) && d.data) {\n delete d.data.label;\n delete d.data.layer;\n }\n return d;\n });\n return els;\n};\n\nconst flowDefault = [\n {\n id: '1', type: 'input', data: { label: 'Start' }, position: { x: 250, y: 15 }\n },\n {\n id: '2', type: 'output', data: { label: 'End' }, position: { x: 250, y: 255 }\n }\n];\n\nconst isLayerInWF = (_element, _layerKey) => {\n const { flow } = _element.properties_template;\n const finds = ((flow || {}).elements || []).filter(e => e.type === 'default' && (e.data || {}).lKey === _layerKey);\n return (finds.length > 0);\n};\n\n// const validateLayerDeletion = (_element, _delKey) => {\n// if (isLayerInWF(_element, _delKey)) {\n// notification({ title: `Layer [${_delKey}]`, lvl: 'warning', msg: `This layer [${_delKey}] can not be removed because it is currently used in workflow.` });\n// return false;\n// }\n// return true;\n// };\n\n// const validateLayerUpdation = (_element, _updates) => {\n// const { key, wf } = _updates;\n// if (isLayerInWF(_element, key)) {\n// if (!wf) {\n// notification({ title: `Layer [${key}]`, lvl: 'warning', msg: `Can not change the attribute 'used in Workflow?' because this layer [${key}] is currently used in workflow.` });\n// return false;\n// }\n// }\n// const { layers } = _element.properties_template;\n// if (wf && layers[key] && (layers[key].cond_fields || []).length > 0) {\n// notification({ title: `Layer [${key}]`, lvl: 'warning', msg: 'Can not use in Workflow because the Layer Restriction has been set.' });\n// return false;\n// }\n// return true;\n// };\n\nconst swapAryEls = (_ary, idx1, idx2) => {\n const ary = _ary;\n const temp = ary[idx1];\n ary[idx1] = ary[idx2];\n ary[idx2] = temp;\n return ary;\n};\n\n// re-fetch workflow and set to state of store, should be out-of this project\n// const renderFlowModal = (generic, isToggle) => {\n// const segmentKlasses = (UserStore.getState() && UserStore.getState().segmentKlasses) || [];\n// let shortLabel = generic.short_label;\n// if (!shortLabel) {\n// shortLabel = segmentKlasses.filter(s => s.id === generic.segment_klass_id);\n// shortLabel = shortLabel.length > 0 ? shortLabel[0].label : '';\n// }\n// const params = {\n// properties_release: cloneDeep(generic.properties_release) || {},\n// properties: cloneDeep(generic.properties) || {},\n// shortLabel,\n// toggle: isToggle\n// };\n// UIActions.rerenderGenericWorkflow(params);\n// };\n\nconst downloadFile = file => {\n const { contents, name } = file;\n const link = document.createElement('a');\n link.download = name;\n link.href = contents;\n const event = new window.MouseEvent('click', {\n view: window,\n bubbles: true,\n cancelable: true\n });\n link.dispatchEvent(event);\n};\n\nexport {\n GenericDummy,\n // validateLayerInput,\n // validateSelectList,\n // notification,\n genUnitsSystem, genUnits, genUnit,\n unitConvToBase, unitConversion, toBool, toNum, genUnitSup, absOlsTermId, absOlsTermLabel, reUnit,\n clsInputGroup, inputEventVal, molOptions, samOptions, conFlowEls, storeFlow, flowDefault,\n // validateLayerUpdation,\n // validateLayerDeletion,\n swapAryEls, decorateNode, showProperties, downloadFile, uploadFiles, KlzIcon\n};\n","export default {\n SYSTEM_UNITS:\n {\n fields: [\n {\n type: 'numeric',\n field: 'acceleration',\n label: 'Acceleration',\n default: '',\n position: 10,\n placeholder: 'acceleration',\n units: [\n { key: 'mm_s2', label: 'mm/s<sup>2</sup>' }\n ]\n },\n {\n type: 'numeric',\n field: 'agitation',\n label: 'Agitation',\n default: '',\n position: 20,\n placeholder: 'agitation',\n units: [\n { key: 'rpm', label: 'rpm' }\n ]\n },\n {\n type: 'numeric',\n field: 'amount_enzyme',\n label: 'Amount enzyme as nmol/min',\n default: '',\n position: 30,\n placeholder: 'amount enzyme as nmol/min',\n units: [\n { key: 'u', label: 'U', nm: 1 },\n { key: 'mu', label: 'mU', nm: 1000 }\n ]\n },\n {\n type: 'numeric',\n field: 'molarity',\n label: 'Chem. concentration (Molarity)',\n default: '',\n position: 40,\n placeholder: 'molarity',\n units: [\n { key: 'mol_l', label: 'mol/L (M)', nm: 1 },\n { key: 'mmol_l', label: 'mmol/L (mM)', nm: 1000 },\n { key: 'nmol_l', label: 'nmol/L (nM)', nm: 1000000 },\n { key: 'pmol_l', label: 'pmol/L (pM)', nm: 1000000000 }\n ]\n },\n {\n type: 'numeric',\n field: 'chem_distances',\n label: 'Chem. distances',\n default: '',\n position: 50,\n placeholder: 'Chem. distances',\n units: [\n { key: 'angstrom', label: 'Å' }\n ]\n },\n {\n type: 'numeric',\n field: 'concentration',\n label: 'Concentration',\n default: '',\n position: 60,\n placeholder: 'concentration',\n units: [\n { key: 'ng_l', label: 'ng/L', nm: 1000000 },\n { key: 'mg_l', label: 'mg/L', nm: 1000 },\n { key: 'g_l', label: 'g/L', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'conductivity',\n label: 'Conductivity',\n default: '',\n position: 66,\n placeholder: 'conductivity',\n units: [\n { key: 's_m', label: 'S/m', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'current',\n label: 'Current',\n default: '',\n position: 60,\n placeholder: 'Current',\n units: [\n { key: 'A', label: 'A', nm: 1 },\n { key: 'mA', label: 'mA', nm: 1000 },\n { key: 'uA', label: 'µA', nm: 1000000 },\n { key: 'nA', label: 'nA', nm: 1000000000 }\n ]\n },\n {\n type: 'numeric',\n field: 'degree',\n label: 'Degree',\n default: '',\n position: 70,\n placeholder: 'degree',\n units: [\n { key: 'degree', label: '°' }\n ]\n },\n {\n type: 'numeric',\n field: 'density',\n label: 'Density',\n default: '',\n position: 75,\n placeholder: 'density',\n units: [\n { key: 'g_cm3', label: 'g/cm<sup>3</sup>', nm: 1 },\n { key: 'kg_l', label: 'kg/l', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'duration',\n label: 'Duration',\n default: '',\n position: 80,\n placeholder: 'duration',\n units: [\n { key: 'd', label: 'd', nm: 1 },\n { key: 'h', label: 'h', nm: 24 },\n { key: 'min', label: 'm', nm: 1440 },\n { key: 's', label: 's', nm: 86400 }\n ]\n },\n {\n type: 'numeric',\n field: 'elastic_modulus',\n label: 'Elastic modulus',\n default: '',\n position: 86,\n placeholder: 'Elastic modulus',\n units: [\n { key: 'm_pa', label: 'MPa', nm: 1 },\n { key: 'k_pa', label: 'kPa', nm: 1000 },\n { key: 'pa', label: 'Pa', nm: 1000000 }\n ]\n },\n {\n type: 'numeric',\n field: 'electric_field',\n label: 'Electric field',\n default: '',\n position: 86,\n placeholder: 'Electric field',\n units: [\n { key: 'v_m', label: 'V/m', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'energy',\n label: 'Energy',\n default: '',\n position: 88,\n placeholder: 'Joule',\n units: [\n { key: 'j', label: 'J', nm: 1000 },\n { key: 'k_j', label: 'kJ', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'enzyme_activity',\n label: 'Enzyme activity',\n default: '',\n position: 90,\n placeholder: 'Enzyme activity',\n units: [\n { key: 'u_l', label: 'U/L', nm: 1 },\n { key: 'u_ml', label: 'U/mL', nm: 1000 }\n ]\n },\n {\n type: 'numeric',\n field: 'flow_rate',\n label: 'Flow rate',\n default: '',\n position: 100,\n placeholder: 'Flow rate',\n units: [\n { key: 'ul_min', label: 'µl/min', nm: 1000000 },\n { key: 'ml_min', label: 'ml/min', nm: 1000 },\n { key: 'l_m', label: 'l/m', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'frequency',\n label: 'Frequency',\n default: '',\n position: 100,\n placeholder: 'frequency',\n units: [\n { key: 'hz', label: 'Hz', nm: 1000 },\n { key: 'khz', label: 'kHz', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'heating_rate',\n label: 'Heating rate',\n default: '',\n position: 106,\n placeholder: 'heating rate',\n units: [\n { key: 'k_min', label: 'K/min', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'length',\n label: 'Length',\n default: '',\n position: 110,\n placeholder: 'length',\n units: [\n { key: 'pm', label: 'pm', nm: 100000 },\n { key: 'nm', label: 'nm', nm: 10000 },\n { key: 'mm', label: 'mm', nm: 1000 },\n { key: 'cm', label: 'cm', nm: 100 },\n { key: 'm', label: 'm', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'magnetic_flux_density',\n label: 'Magnetic flux density/inductivity',\n default: '',\n position: 120,\n placeholder: '',\n units: [\n { key: 'T', label: 'T', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'mass',\n label: 'Mass',\n default: '',\n position: 120,\n placeholder: 'mass',\n units: [\n { key: 'g', label: 'g', nm: 1 },\n { key: 'mg', label: 'mg', nm: 1000 },\n { key: 'ug', label: 'µg', nm: 1000000 }\n ]\n },\n {\n type: 'numeric',\n field: 'mass_molecule',\n label: 'Mass of molecule',\n default: '',\n position: 126,\n placeholder: 'mass of molecule',\n units: [\n { key: 'dalton', label: 'D', nm: 1000 },\n { key: 'kilo_dalton', label: 'kD', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'molecular_weight',\n label: 'Molecular weight',\n default: '',\n position: 130,\n placeholder: 'Molecular weight',\n units: [\n { key: 'g_mol', label: 'g/mol' }\n ]\n },\n {\n type: 'numeric',\n field: 'percentage',\n label: 'Percentage',\n default: '',\n position: 136,\n placeholder: 'percentage',\n units: [\n { key: 'p', label: '%', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'pressure',\n label: 'Pressure',\n default: '',\n position: 140,\n placeholder: 'pressure',\n units: [\n { key: 'atm', label: 'atm', nm: 1 },\n { key: 'pa', label: 'Pa', nm: 101325 },\n { key: 'torr', label: 'Torr', nm: 760 }\n ]\n },\n {\n type: 'numeric',\n field: 'reaction_rate',\n label: 'Reaction rate',\n default: '',\n position: 150,\n placeholder: 'Reaction rate',\n units: [\n { key: 'mol_lmin', label: 'mol/Lmin', nm: 1 },\n { key: 'mol_lsec', label: 'mol/Ls', nm: 60 }\n ]\n },\n {\n type: 'numeric',\n field: 'specific_volume',\n label: 'Specific Volume',\n default: '',\n position: 160,\n placeholder: 'Specific Volume',\n units: [\n { key: 'cm3_g', label: 'cm<sup>3</sup>/g', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'speed',\n label: 'Speed',\n default: '',\n position: 165,\n placeholder: 'speed',\n units: [\n { key: 'cm_s', label: 'cm/s', nm: 1 },\n { key: 'mm_s', label: 'mm/s', nm: 10 },\n { key: 'cm_h', label: 'cm/h', nm: 3600 },\n { key: 'mm_h', label: 'mm/h', nm: 36000 }\n ]\n },\n {\n type: 'numeric',\n field: 'surface',\n label: 'Surface',\n default: '',\n position: 170,\n placeholder: 'surface',\n units: [\n { key: 'a_2', label: 'A<sup>2</sup>' },\n { key: 'mm_2', label: 'mm<sup>2</sup>' },\n { key: 'cm_2', label: 'cm<sup>2</sup>' }\n ]\n },\n {\n type: 'numeric',\n field: 'temperature',\n label: 'Temperature',\n default: '',\n position: 180,\n placeholder: 'temperature',\n units: [\n { key: 'C', label: '°C' },\n { key: 'F', label: '°F' },\n { key: 'K', label: '°K' }\n ]\n },\n {\n type: 'numeric',\n field: 'turnover_number',\n label: 'Turnover number',\n default: '',\n position: 190,\n placeholder: 'Turnover number',\n units: [\n { key: '1_s', label: '1/s' }\n ]\n },\n {\n type: 'numeric',\n field: 'viscosity',\n label: 'Dynamic Viscosity',\n default: '',\n position: 200,\n placeholder: 'Dynamic Viscosity',\n units: [\n { key: 'pas', label: 'Pas', nm: 1 },\n { key: 'mpas', label: 'mPas', nm: 1000 }\n ]\n },\n {\n type: 'numeric',\n field: 'kinematic_viscosity',\n label: 'Kinematic Viscosity',\n default: '',\n position: 205,\n placeholder: 'Kinematic Viscosity',\n units: [\n { key: 'm2_s', label: 'm<sup>2</sup>/s', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'voltage',\n label: 'Voltage',\n default: '',\n position: 200,\n placeholder: 'voltage',\n units: [\n { key: 'mv', label: 'mV', nm: 1000 },\n { key: 'v', label: 'V', nm: 1 }\n ]\n },\n {\n type: 'numeric',\n field: 'volumes',\n label: 'Volumes',\n default: '',\n position: 210,\n placeholder: 'volume',\n units: [\n { key: 'l', label: 'l', nm: 1 },\n { key: 'ml', label: 'ml', nm: 1000 },\n { key: 'ul', label: 'µl', nm: 1000000 },\n { key: 'nl', label: 'nl', nm: 1000000000 }\n ]\n }\n ]\n }\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".gu_flow_dnd_sidebar{border-width:0px 0px 1px 0px;border-color:#000;border-style:solid}.gu_sp_form{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-bottom:5px}.gu_sp_form .gu_sp_label{width:100%;margin:0px 5px;text-align:left;font-weight:bold}.gu_sp_form .gu_sp_column{width:100%;margin-top:0px;margin-bottom:0px}.gu_button_right{float:right;right:0px;z-index:1;margin-left:2px}.bg-bs-primary{background-color:#337ab7 !important}.bg-bs-warning{background-color:#f0ad4e !important}.icon_generic_nav{font-family:FontAwesome,Helvetica,Arial,sans-serif !important}.field_required{background-color:#ffffe0}.template_panel_heading{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:5px 10px 5px 10px !important}.panel_generic_properties{border-left:unset !important;border-right:unset !important;border-bottom:unset !important;line-height:26px !important;-webkit-box-shadow:unset !important;box-shadow:unset !important;margin-bottom:unset !important}.panel_generic_properties .panel-title{font-weight:bold}.panel_generic_properties .default_style{font-size:14px;line-height:normal}.panel_generic_properties_body{padding-left:unset !important;padding-right:unset !important}.panel_generic_heading_slim{padding:5px 0px !important}.panel_generic_heading{font-weight:bold;padding:10px 0px !important}.panel_generic_heading_bu{font-weight:bold;padding:10px 0px !important;text-decoration:underline}.panel_generic_heading_bui{font-weight:bold;padding:10px 0px !important;text-decoration:underline;font-style:italic}.text_generic_properties .dummy{background-color:unset !important;border:unset !important;-webkit-box-shadow:unset !important;box-shadow:unset !important}.text_generic_properties .editable{background-color:#fff}.text_generic_properties .readonly{background-color:#ddd}.text_generic_properties .required{background-color:#ffffe0}.text_generic_properties input:invalid{border:1px solid #f08080}.select_generic_properties_editable .Select-control{background-color:#fff}.select_generic_properties_readonly .Select-control{background-color:#ddd}.select_generic_properties_required .Select-control{background-color:#ffffe0}.drop_generic_properties{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.drop_generic_properties .target{height:100%;width:100%;margin:0px 10px 0px 10px;display:inline-block}.drop_generic_properties .target .indicator{font-size:x-large}.drop_generic_properties .target .s-img{display:-webkit-box;display:-ms-flexbox;display:flex}.drop_generic_properties .target .s-img img{height:4vh;width:4vw}.drop_generic_properties .target .data{font-size:medium;line-height:normal !important;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;-ms-flex-item-align:center;align-self:center;width:100%}.drop_generic_properties .target.can-drop .indicator{border:2px dashed #d3d3d3;color:#d3d3d3}.drop_generic_properties .target.can-drop .data{border:2px dashed #d3d3d3;color:#d3d3d3}.drop_generic_properties .target.is-over .indicator{border:2px dashed #31708f;color:#31708f}.drop_generic_properties .target.is-over .data{border:2px dashed #31708f;color:#31708f}.drop_generic_properties .btn_del{float:right;-ms-flex-item-align:center;align-self:center}.drop_generic_properties .sample_radios{font-size:xx-small;line-height:2;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;padding-right:5px}.generic_criteria_modal{display:block;padding-left:0px;top:45% !important;width:75vw !important}.search_criteria_mof .modal_body{max-height:70vh;height:70vh;overflow:auto}.search_criteria_mof .btn_footer{margin-top:10px}.input-form .input-group-addon{font-weight:bold}.input-form .help{font-size:80%;margin:6px;font-style:italic}.g-ds-note{color:#000 !important;float:left !important;text-align:left !important;font-weight:lighter !important}.g-ds-note .g-ds-title{text-decoration:underline;font-weight:700;line-height:1.5}.g_input_group{padding:6px 6px !important}.g_input_group_label{background-color:#d3d3d3 !important;width:unset !important;white-space:nowrap !important;padding:6px 6px !important}.g_col_w{width:20% !important}.generic_grid{display:block}.generic_grid>div{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.generic_grid_header{width:100%;margin:6px 0px 6px 6px;text-align:center;line-height:15px;-ms-flex-item-align:center;align-self:center;font-weight:bolder;font-family:\\\"Franklin Gothic Medium\\\",\\\"Arial Narrow\\\",Arial,sans-serif}.generic_grid_row{width:100%;margin:6px 0px 6px 6px;text-align:center;line-height:15px;-ms-flex-item-align:center;align-self:center}.generic_grid_row_left{text-align:left}.generic_version{background-color:#777;display:inline-block;padding:.35em .65em;font-size:.75em;text-align:center;vertical-align:baseline;white-space:nowrap;border-radius:.5rem;color:#fff;background-color:unset;color:blue}.generic_version_draft{background-color:#777;display:inline-block;padding:.35em .65em;font-size:.75em;text-align:center;vertical-align:baseline;white-space:nowrap;border-radius:.5rem;color:#fff;background-color:unset;color:#000}.generic_version_block{display:block;padding:6px 10px;margin:10px;border-radius:10px;border:thin solid #d3d3d3;font-size:1.2em}.generic_version_block>div{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.generic_block_select{border-width:medium;border-style:groove}.generic_panel_none{border-color:#ddd !important}.generic_panel_none>.panel-heading{background-color:#fff !important}.generic_tbl_chks{line-height:1em;margin:0px -10px !important}.generic_tbl_chks>label{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-line-pack:center;align-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.generic_tbl_chks>label>input{margin-top:0px}.generic_btn_default{background-color:#777 !important;color:#fff !important}.drop_generic_table_wrap .target .s-img{position:relative;border:1px solid rgba(0,0,0,0)}.drop_generic_table_wrap .target .s-img img{height:4vw;width:4vw}.drop_generic_table_wrap .target .s-img .del_btn{position:absolute;top:0%;left:0%}.drop_generic_table_wrap .target .s-img .link_btn{position:absolute;bottom:0%;left:0%}.drop_generic_table_wrap .target .s-img:hover{border:1px solid #0dcaf0}.drop_generic_table_wrap .target .data{font-size:unset;white-space:unset;text-align:left}.drop_generic_table_wrap .target.can-drop .s-img{border:2px dashed #d3d3d3;color:#d3d3d3}.drop_generic_table_wrap .target.is-over .s-img{border:2px dashed #31708f;color:#31708f}.generic_grid_img{border:#ddd solid thin}.generic_sam_options{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;text-align:left;font-size:x-small}.generic_sam_options .radio{margin-top:unset;margin-bottom:unset}.generic_files{padding:0px 5px !important}.generic_files>div>div>div{text-align:left;-ms-flex-item-align:center;align-self:center}.generic_files>div>div>div .form-group{margin-bottom:0px}.grid-btn-none{font-size:large;color:#fff}.generic_grid_dnd .dnd{cursor:move}.generic_grid_dnd .dnd-btn{font-size:large}.generic_grid_dnd .dnd-btn span{cursor:move}.generic_grid_dnd.can-drop{border:2px dashed #d3d3d3;color:#d3d3d3}.generic_grid_dnd.is-over{border:2px dashed #31708f;color:#31708f}.generic_grid_dnd.is-dragging{opacity:.2}.generic_layer_modal>.layer_header{background-color:#fff;color:#337ab7;font-size:20px}.generic_layer_column{width:100%;margin:6px 0px 6px 6px;text-align:center;line-height:15px;-ms-flex-item-align:center;align-self:center;border:1px solid #337ab7;background-color:#fff;margin:5px;padding:10px;color:#337ab7;border-radius:4px}.generic_layer_column>div:first-child{display:-webkit-box;display:-ms-flexbox;display:flex}.generic_layer_column>div:first-child>button{float:right;border-radius:50%}.generic_layer_column>div:first-child>div{width:100%}.generic_wf_modal{max-height:100%;overflow:auto}.generic_wf_modal>div:first-child{height:85vh;width:100%}.flow_view_draggable{z-index:100;position:absolute;top:12%;left:10%}.flow_view_draggable .panel-body{padding:5px}.flow_view_draggable .panel-body>.body_bg{max-height:100%;overflow:auto}.flow_view_draggable .panel-body>.body_bg>.body_canvas{resize:both;overflow:auto;height:70vh;width:40vw;min-height:250px;min-width:300px;max-width:1600px;max-height:840px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/asserts/main.css\"],\"names\":[],\"mappings\":\"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\",\"sourcesContent\":[\".gu_flow_dnd_sidebar {\\n border-width: 0px 0px 1px 0px;\\n border-color: black;\\n border-style: solid;\\n}\\n\\n.gu_sp_form {\\n display: flex;\\n align-items: center;\\n flex-wrap: wrap;\\n margin-bottom: 5px;\\n}\\n.gu_sp_form .gu_sp_label {\\n width: 100%;\\n margin: 0px 5px;\\n text-align: left;\\n font-weight: bold;\\n}\\n.gu_sp_form .gu_sp_column {\\n width: 100%;\\n margin-top: 0px;\\n margin-bottom: 0px;\\n}\\n\\n.gu_button_right {\\n float: right;\\n right: 0px;\\n z-index: 1;\\n margin-left: 2px;\\n}\\n\\n.bg-bs-primary {\\n background-color: #337ab7 !important;\\n}\\n\\n.bg-bs-warning {\\n background-color: #f0ad4e !important;\\n}\\n\\n.icon_generic_nav {\\n font-family: FontAwesome, Helvetica, Arial, sans-serif !important;\\n}\\n\\n.field_required {\\n background-color: lightyellow;\\n}\\n\\n.template_panel_heading {\\n display: flex;\\n justify-content: space-between;\\n align-items: center;\\n padding: 5px 10px 5px 10px !important;\\n}\\n\\n.panel_generic_properties {\\n border-left: unset !important;\\n border-right: unset !important;\\n border-bottom: unset !important;\\n line-height: 26px !important;\\n box-shadow: unset !important;\\n margin-bottom: unset !important;\\n}\\n.panel_generic_properties .panel-title {\\n font-weight: bold;\\n}\\n.panel_generic_properties .default_style {\\n font-size: 14px;\\n line-height: normal;\\n}\\n\\n.panel_generic_properties_body {\\n padding-left: unset !important;\\n padding-right: unset !important;\\n}\\n\\n.panel_generic_heading_slim {\\n padding: 5px 0px !important;\\n}\\n\\n.panel_generic_heading {\\n font-weight: bold;\\n padding: 10px 0px !important;\\n}\\n\\n.panel_generic_heading_bu {\\n font-weight: bold;\\n padding: 10px 0px !important;\\n text-decoration: underline;\\n}\\n\\n.panel_generic_heading_bui {\\n font-weight: bold;\\n padding: 10px 0px !important;\\n text-decoration: underline;\\n font-style: italic;\\n}\\n\\n.text_generic_properties .dummy {\\n background-color: unset !important;\\n border: unset !important;\\n box-shadow: unset !important;\\n}\\n.text_generic_properties .editable {\\n background-color: #fff;\\n}\\n.text_generic_properties .readonly {\\n background-color: #ddd;\\n}\\n.text_generic_properties .required {\\n background-color: lightyellow;\\n}\\n.text_generic_properties input:invalid {\\n border: 1px solid lightcoral;\\n}\\n\\n.select_generic_properties_editable .Select-control {\\n background-color: #fff;\\n}\\n\\n.select_generic_properties_readonly .Select-control {\\n background-color: #ddd;\\n}\\n\\n.select_generic_properties_required .Select-control {\\n background-color: lightyellow;\\n}\\n\\n.drop_generic_properties {\\n display: flex;\\n align-items: center;\\n}\\n.drop_generic_properties .target {\\n height: 100%;\\n width: 100%;\\n margin: 0px 10px 0px 10px;\\n display: inline-block;\\n}\\n.drop_generic_properties .target .indicator {\\n font-size: x-large;\\n}\\n.drop_generic_properties .target .s-img {\\n display: flex;\\n}\\n.drop_generic_properties .target .s-img img {\\n height: 4vh;\\n width: 4vw;\\n}\\n.drop_generic_properties .target .data {\\n font-size: medium;\\n line-height: normal !important;\\n text-overflow: ellipsis;\\n overflow: hidden;\\n white-space: nowrap;\\n align-self: center;\\n width: 100%;\\n}\\n.drop_generic_properties .target.can-drop .indicator {\\n border: 2px dashed lightgray;\\n color: lightgray;\\n}\\n.drop_generic_properties .target.can-drop .data {\\n border: 2px dashed lightgray;\\n color: lightgray;\\n}\\n.drop_generic_properties .target.is-over .indicator {\\n border: 2px dashed #31708f;\\n color: #31708f;\\n}\\n.drop_generic_properties .target.is-over .data {\\n border: 2px dashed #31708f;\\n color: #31708f;\\n}\\n.drop_generic_properties .btn_del {\\n float: right;\\n align-self: center;\\n}\\n.drop_generic_properties .sample_radios {\\n font-size: xx-small;\\n line-height: 2;\\n display: inline-flex;\\n padding-right: 5px;\\n}\\n\\n.generic_criteria_modal {\\n display: block;\\n padding-left: 0px;\\n top: 45% !important;\\n width: 75vw !important;\\n}\\n\\n.search_criteria_mof .modal_body {\\n max-height: 70vh;\\n height: 70vh;\\n overflow: auto;\\n}\\n.search_criteria_mof .btn_footer {\\n margin-top: 10px;\\n}\\n\\n.input-form .input-group-addon {\\n font-weight: bold;\\n}\\n.input-form .help {\\n font-size: 80%;\\n margin: 6px;\\n font-style: italic;\\n}\\n\\n.g-ds-note {\\n color: black !important;\\n float: left !important;\\n text-align: left !important;\\n font-weight: lighter !important;\\n}\\n.g-ds-note .g-ds-title {\\n text-decoration: underline;\\n font-weight: 700;\\n line-height: 1.5;\\n}\\n\\n.g_input_group {\\n padding: 6px 6px !important;\\n}\\n\\n.g_input_group_label {\\n background-color: lightgray !important;\\n width: unset !important;\\n white-space: nowrap !important;\\n padding: 6px 6px !important;\\n}\\n\\n.g_col_w {\\n width: 20% !important;\\n}\\n\\n.generic_grid {\\n display: block;\\n}\\n.generic_grid > div {\\n display: flex;\\n flex-wrap: nowrap;\\n}\\n\\n.generic_grid_header {\\n width: 100%;\\n margin: 6px 0px 6px 6px;\\n text-align: center;\\n line-height: 15px;\\n align-self: center;\\n font-weight: bolder;\\n font-family: \\\"Franklin Gothic Medium\\\", \\\"Arial Narrow\\\", Arial, sans-serif;\\n}\\n\\n.generic_grid_row {\\n width: 100%;\\n margin: 6px 0px 6px 6px;\\n text-align: center;\\n line-height: 15px;\\n align-self: center;\\n}\\n\\n.generic_grid_row_left {\\n text-align: left;\\n}\\n\\n.generic_version {\\n background-color: #777;\\n display: inline-block;\\n padding: 0.35em 0.65em;\\n font-size: 0.75em;\\n text-align: center;\\n vertical-align: baseline;\\n white-space: nowrap;\\n border-radius: 0.5rem;\\n color: white;\\n background-color: unset;\\n color: blue;\\n}\\n\\n.generic_version_draft {\\n background-color: #777;\\n display: inline-block;\\n padding: 0.35em 0.65em;\\n font-size: 0.75em;\\n text-align: center;\\n vertical-align: baseline;\\n white-space: nowrap;\\n border-radius: 0.5rem;\\n color: white;\\n background-color: unset;\\n color: black;\\n}\\n\\n.generic_version_block {\\n display: block;\\n padding: 6px 10px;\\n margin: 10px;\\n border-radius: 10px;\\n border: thin solid lightgray;\\n font-size: 1.2em;\\n}\\n.generic_version_block > div {\\n display: flex;\\n flex-wrap: nowrap;\\n}\\n\\n.generic_block_select {\\n border-width: medium;\\n border-style: groove;\\n}\\n\\n.generic_panel_none {\\n border-color: #ddd !important;\\n}\\n.generic_panel_none > .panel-heading {\\n background-color: white !important;\\n}\\n\\n.generic_tbl_chks {\\n line-height: 1em;\\n margin: 0px -10px !important;\\n}\\n.generic_tbl_chks > label {\\n display: inline-flex;\\n align-content: center;\\n align-items: center;\\n}\\n.generic_tbl_chks > label > input {\\n margin-top: 0px;\\n}\\n\\n.generic_btn_default {\\n background-color: #777 !important;\\n color: #fff !important;\\n}\\n\\n.drop_generic_table_wrap .target .s-img {\\n position: relative;\\n border: 1px solid transparent;\\n}\\n.drop_generic_table_wrap .target .s-img img {\\n height: 4vw;\\n width: 4vw;\\n}\\n.drop_generic_table_wrap .target .s-img .del_btn {\\n position: absolute;\\n top: 0%;\\n left: 0%;\\n}\\n.drop_generic_table_wrap .target .s-img .link_btn {\\n position: absolute;\\n bottom: 0%;\\n left: 0%;\\n}\\n.drop_generic_table_wrap .target .s-img:hover {\\n border: 1px solid #0dcaf0;\\n}\\n.drop_generic_table_wrap .target .data {\\n font-size: unset;\\n white-space: unset;\\n text-align: left;\\n}\\n.drop_generic_table_wrap .target.can-drop .s-img {\\n border: 2px dashed lightgray;\\n color: lightgray;\\n}\\n.drop_generic_table_wrap .target.is-over .s-img {\\n border: 2px dashed #31708f;\\n color: #31708f;\\n}\\n\\n.generic_grid_img {\\n border: #ddd solid thin;\\n}\\n\\n.generic_sam_options {\\n display: flex;\\n flex-direction: column;\\n text-align: left;\\n font-size: x-small;\\n}\\n.generic_sam_options .radio {\\n margin-top: unset;\\n margin-bottom: unset;\\n}\\n\\n.generic_files {\\n padding: 0px 5px !important;\\n}\\n.generic_files > div > div > div {\\n text-align: left;\\n align-self: center;\\n}\\n.generic_files > div > div > div .form-group {\\n margin-bottom: 0px;\\n}\\n\\n.grid-btn-none {\\n font-size: large;\\n color: white;\\n}\\n\\n.generic_grid_dnd .dnd {\\n cursor: move;\\n}\\n.generic_grid_dnd .dnd-btn {\\n font-size: large;\\n}\\n.generic_grid_dnd .dnd-btn span {\\n cursor: move;\\n}\\n.generic_grid_dnd.can-drop {\\n border: 2px dashed lightgray;\\n color: lightgray;\\n}\\n.generic_grid_dnd.is-over {\\n border: 2px dashed #31708f;\\n color: #31708f;\\n}\\n.generic_grid_dnd.is-dragging {\\n opacity: 0.2;\\n}\\n\\n.generic_layer_modal > .layer_header {\\n background-color: white;\\n color: #337ab7;\\n font-size: 20px;\\n}\\n\\n.generic_layer_column {\\n width: 100%;\\n margin: 6px 0px 6px 6px;\\n text-align: center;\\n line-height: 15px;\\n align-self: center;\\n border: 1px solid #337ab7;\\n background-color: white;\\n margin: 5px;\\n padding: 10px;\\n color: #337ab7;\\n border-radius: 4px;\\n}\\n\\n.generic_layer_column > div:first-child {\\n display: flex;\\n}\\n\\n.generic_layer_column > div:first-child > button {\\n float: right;\\n border-radius: 50%;\\n}\\n\\n.generic_layer_column > div:first-child > div {\\n width: 100%;\\n}\\n\\n.generic_wf_modal {\\n max-height: 100%;\\n overflow: auto;\\n}\\n\\n.generic_wf_modal > div:first-child {\\n height: 85vh;\\n width: 100%;\\n}\\n\\n.flow_view_draggable {\\n z-index: 100;\\n position: absolute;\\n top: 12%;\\n left: 10%;\\n}\\n.flow_view_draggable .panel-body {\\n padding: 5px;\\n}\\n.flow_view_draggable .panel-body > .body_bg {\\n max-height: 100%;\\n overflow: auto;\\n}\\n.flow_view_draggable .panel-body > .body_bg > .body_canvas {\\n resize: both;\\n overflow: auto;\\n height: 70vh;\\n width: 40vw;\\n min-height: 250px;\\n min-width: 300px;\\n max-width: 1600px;\\n max-height: 840px;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n\n content += cssWithMappingToString(item);\n\n if (needLayer) {\n content += \"}\";\n }\n\n if (item[2]) {\n content += \"}\";\n }\n\n if (item[4]) {\n content += \"}\";\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n\n\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","/*! @preserve\n * numeral.js\n * version : 2.0.6\n * author : Adam Draper\n * license : MIT\n * http://adamwdraper.github.com/Numeral-js/\n */\n\n(function (global, factory) {\n if (typeof define === 'function' && define.amd) {\n define(factory);\n } else if (typeof module === 'object' && module.exports) {\n module.exports = factory();\n } else {\n global.numeral = factory();\n }\n}(this, function () {\n /************************************\n Variables\n ************************************/\n\n var numeral,\n _,\n VERSION = '2.0.6',\n formats = {},\n locales = {},\n defaults = {\n currentLocale: 'en',\n zeroFormat: null,\n nullFormat: null,\n defaultFormat: '0,0',\n scalePercentBy100: true\n },\n options = {\n currentLocale: defaults.currentLocale,\n zeroFormat: defaults.zeroFormat,\n nullFormat: defaults.nullFormat,\n defaultFormat: defaults.defaultFormat,\n scalePercentBy100: defaults.scalePercentBy100\n };\n\n\n /************************************\n Constructors\n ************************************/\n\n // Numeral prototype object\n function Numeral(input, number) {\n this._input = input;\n\n this._value = number;\n }\n\n numeral = function(input) {\n var value,\n kind,\n unformatFunction,\n regexp;\n\n if (numeral.isNumeral(input)) {\n value = input.value();\n } else if (input === 0 || typeof input === 'undefined') {\n value = 0;\n } else if (input === null || _.isNaN(input)) {\n value = null;\n } else if (typeof input === 'string') {\n if (options.zeroFormat && input === options.zeroFormat) {\n value = 0;\n } else if (options.nullFormat && input === options.nullFormat || !input.replace(/[^0-9]+/g, '').length) {\n value = null;\n } else {\n for (kind in formats) {\n regexp = typeof formats[kind].regexps.unformat === 'function' ? formats[kind].regexps.unformat() : formats[kind].regexps.unformat;\n\n if (regexp && input.match(regexp)) {\n unformatFunction = formats[kind].unformat;\n\n break;\n }\n }\n\n unformatFunction = unformatFunction || numeral._.stringToNumber;\n\n value = unformatFunction(input);\n }\n } else {\n value = Number(input)|| null;\n }\n\n return new Numeral(input, value);\n };\n\n // version number\n numeral.version = VERSION;\n\n // compare numeral object\n numeral.isNumeral = function(obj) {\n return obj instanceof Numeral;\n };\n\n // helper functions\n numeral._ = _ = {\n // formats numbers separators, decimals places, signs, abbreviations\n numberToFormat: function(value, format, roundingFunction) {\n var locale = locales[numeral.options.currentLocale],\n negP = false,\n optDec = false,\n leadingCount = 0,\n abbr = '',\n trillion = 1000000000000,\n billion = 1000000000,\n million = 1000000,\n thousand = 1000,\n decimal = '',\n neg = false,\n abbrForce, // force abbreviation\n abs,\n min,\n max,\n power,\n int,\n precision,\n signed,\n thousands,\n output;\n\n // make sure we never format a null value\n value = value || 0;\n\n abs = Math.abs(value);\n\n // see if we should use parentheses for negative number or if we should prefix with a sign\n // if both are present we default to parentheses\n if (numeral._.includes(format, '(')) {\n negP = true;\n format = format.replace(/[\\(|\\)]/g, '');\n } else if (numeral._.includes(format, '+') || numeral._.includes(format, '-')) {\n signed = numeral._.includes(format, '+') ? format.indexOf('+') : value < 0 ? format.indexOf('-') : -1;\n format = format.replace(/[\\+|\\-]/g, '');\n }\n\n // see if abbreviation is wanted\n if (numeral._.includes(format, 'a')) {\n abbrForce = format.match(/a(k|m|b|t)?/);\n\n abbrForce = abbrForce ? abbrForce[1] : false;\n\n // check for space before abbreviation\n if (numeral._.includes(format, ' a')) {\n abbr = ' ';\n }\n\n format = format.replace(new RegExp(abbr + 'a[kmbt]?'), '');\n\n if (abs >= trillion && !abbrForce || abbrForce === 't') {\n // trillion\n abbr += locale.abbreviations.trillion;\n value = value / trillion;\n } else if (abs < trillion && abs >= billion && !abbrForce || abbrForce === 'b') {\n // billion\n abbr += locale.abbreviations.billion;\n value = value / billion;\n } else if (abs < billion && abs >= million && !abbrForce || abbrForce === 'm') {\n // million\n abbr += locale.abbreviations.million;\n value = value / million;\n } else if (abs < million && abs >= thousand && !abbrForce || abbrForce === 'k') {\n // thousand\n abbr += locale.abbreviations.thousand;\n value = value / thousand;\n }\n }\n\n // check for optional decimals\n if (numeral._.includes(format, '[.]')) {\n optDec = true;\n format = format.replace('[.]', '.');\n }\n\n // break number and format\n int = value.toString().split('.')[0];\n precision = format.split('.')[1];\n thousands = format.indexOf(',');\n leadingCount = (format.split('.')[0].split(',')[0].match(/0/g) || []).length;\n\n if (precision) {\n if (numeral._.includes(precision, '[')) {\n precision = precision.replace(']', '');\n precision = precision.split('[');\n decimal = numeral._.toFixed(value, (precision[0].length + precision[1].length), roundingFunction, precision[1].length);\n } else {\n decimal = numeral._.toFixed(value, precision.length, roundingFunction);\n }\n\n int = decimal.split('.')[0];\n\n if (numeral._.includes(decimal, '.')) {\n decimal = locale.delimiters.decimal + decimal.split('.')[1];\n } else {\n decimal = '';\n }\n\n if (optDec && Number(decimal.slice(1)) === 0) {\n decimal = '';\n }\n } else {\n int = numeral._.toFixed(value, 0, roundingFunction);\n }\n\n // check abbreviation again after rounding\n if (abbr && !abbrForce && Number(int) >= 1000 && abbr !== locale.abbreviations.trillion) {\n int = String(Number(int) / 1000);\n\n switch (abbr) {\n case locale.abbreviations.thousand:\n abbr = locale.abbreviations.million;\n break;\n case locale.abbreviations.million:\n abbr = locale.abbreviations.billion;\n break;\n case locale.abbreviations.billion:\n abbr = locale.abbreviations.trillion;\n break;\n }\n }\n\n\n // format number\n if (numeral._.includes(int, '-')) {\n int = int.slice(1);\n neg = true;\n }\n\n if (int.length < leadingCount) {\n for (var i = leadingCount - int.length; i > 0; i--) {\n int = '0' + int;\n }\n }\n\n if (thousands > -1) {\n int = int.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, '$1' + locale.delimiters.thousands);\n }\n\n if (format.indexOf('.') === 0) {\n int = '';\n }\n\n output = int + decimal + (abbr ? abbr : '');\n\n if (negP) {\n output = (negP && neg ? '(' : '') + output + (negP && neg ? ')' : '');\n } else {\n if (signed >= 0) {\n output = signed === 0 ? (neg ? '-' : '+') + output : output + (neg ? '-' : '+');\n } else if (neg) {\n output = '-' + output;\n }\n }\n\n return output;\n },\n // unformats numbers separators, decimals places, signs, abbreviations\n stringToNumber: function(string) {\n var locale = locales[options.currentLocale],\n stringOriginal = string,\n abbreviations = {\n thousand: 3,\n million: 6,\n billion: 9,\n trillion: 12\n },\n abbreviation,\n value,\n i,\n regexp;\n\n if (options.zeroFormat && string === options.zeroFormat) {\n value = 0;\n } else if (options.nullFormat && string === options.nullFormat || !string.replace(/[^0-9]+/g, '').length) {\n value = null;\n } else {\n value = 1;\n\n if (locale.delimiters.decimal !== '.') {\n string = string.replace(/\\./g, '').replace(locale.delimiters.decimal, '.');\n }\n\n for (abbreviation in abbreviations) {\n regexp = new RegExp('[^a-zA-Z]' + locale.abbreviations[abbreviation] + '(?:\\\\)|(\\\\' + locale.currency.symbol + ')?(?:\\\\))?)?$');\n\n if (stringOriginal.match(regexp)) {\n value *= Math.pow(10, abbreviations[abbreviation]);\n break;\n }\n }\n\n // check for negative number\n value *= (string.split('-').length + Math.min(string.split('(').length - 1, string.split(')').length - 1)) % 2 ? 1 : -1;\n\n // remove non numbers\n string = string.replace(/[^0-9\\.]+/g, '');\n\n value *= Number(string);\n }\n\n return value;\n },\n isNaN: function(value) {\n return typeof value === 'number' && isNaN(value);\n },\n includes: function(string, search) {\n return string.indexOf(search) !== -1;\n },\n insert: function(string, subString, start) {\n return string.slice(0, start) + subString + string.slice(start);\n },\n reduce: function(array, callback /*, initialValue*/) {\n if (this === null) {\n throw new TypeError('Array.prototype.reduce called on null or undefined');\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError(callback + ' is not a function');\n }\n\n var t = Object(array),\n len = t.length >>> 0,\n k = 0,\n value;\n\n if (arguments.length === 3) {\n value = arguments[2];\n } else {\n while (k < len && !(k in t)) {\n k++;\n }\n\n if (k >= len) {\n throw new TypeError('Reduce of empty array with no initial value');\n }\n\n value = t[k++];\n }\n for (; k < len; k++) {\n if (k in t) {\n value = callback(value, t[k], k, t);\n }\n }\n return value;\n },\n /**\n * Computes the multiplier necessary to make x >= 1,\n * effectively eliminating miscalculations caused by\n * finite precision.\n */\n multiplier: function (x) {\n var parts = x.toString().split('.');\n\n return parts.length < 2 ? 1 : Math.pow(10, parts[1].length);\n },\n /**\n * Given a variable number of arguments, returns the maximum\n * multiplier that must be used to normalize an operation involving\n * all of them.\n */\n correctionFactor: function () {\n var args = Array.prototype.slice.call(arguments);\n\n return args.reduce(function(accum, next) {\n var mn = _.multiplier(next);\n return accum > mn ? accum : mn;\n }, 1);\n },\n /**\n * Implementation of toFixed() that treats floats more like decimals\n *\n * Fixes binary rounding issues (eg. (0.615).toFixed(2) === '0.61') that present\n * problems for accounting- and finance-related software.\n */\n toFixed: function(value, maxDecimals, roundingFunction, optionals) {\n var splitValue = value.toString().split('.'),\n minDecimals = maxDecimals - (optionals || 0),\n boundedPrecision,\n optionalsRegExp,\n power,\n output;\n\n // Use the smallest precision value possible to avoid errors from floating point representation\n if (splitValue.length === 2) {\n boundedPrecision = Math.min(Math.max(splitValue[1].length, minDecimals), maxDecimals);\n } else {\n boundedPrecision = minDecimals;\n }\n\n power = Math.pow(10, boundedPrecision);\n\n // Multiply up by precision, round accurately, then divide and use native toFixed():\n output = (roundingFunction(value + 'e+' + boundedPrecision) / power).toFixed(boundedPrecision);\n\n if (optionals > maxDecimals - boundedPrecision) {\n optionalsRegExp = new RegExp('\\\\.?0{1,' + (optionals - (maxDecimals - boundedPrecision)) + '}$');\n output = output.replace(optionalsRegExp, '');\n }\n\n return output;\n }\n };\n\n // avaliable options\n numeral.options = options;\n\n // avaliable formats\n numeral.formats = formats;\n\n // avaliable formats\n numeral.locales = locales;\n\n // This function sets the current locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n numeral.locale = function(key) {\n if (key) {\n options.currentLocale = key.toLowerCase();\n }\n\n return options.currentLocale;\n };\n\n // This function provides access to the loaded locale data. If\n // no arguments are passed in, it will simply return the current\n // global locale object.\n numeral.localeData = function(key) {\n if (!key) {\n return locales[options.currentLocale];\n }\n\n key = key.toLowerCase();\n\n if (!locales[key]) {\n throw new Error('Unknown locale : ' + key);\n }\n\n return locales[key];\n };\n\n numeral.reset = function() {\n for (var property in defaults) {\n options[property] = defaults[property];\n }\n };\n\n numeral.zeroFormat = function(format) {\n options.zeroFormat = typeof(format) === 'string' ? format : null;\n };\n\n numeral.nullFormat = function (format) {\n options.nullFormat = typeof(format) === 'string' ? format : null;\n };\n\n numeral.defaultFormat = function(format) {\n options.defaultFormat = typeof(format) === 'string' ? format : '0.0';\n };\n\n numeral.register = function(type, name, format) {\n name = name.toLowerCase();\n\n if (this[type + 's'][name]) {\n throw new TypeError(name + ' ' + type + ' already registered.');\n }\n\n this[type + 's'][name] = format;\n\n return format;\n };\n\n\n numeral.validate = function(val, culture) {\n var _decimalSep,\n _thousandSep,\n _currSymbol,\n _valArray,\n _abbrObj,\n _thousandRegEx,\n localeData,\n temp;\n\n //coerce val to string\n if (typeof val !== 'string') {\n val += '';\n\n if (console.warn) {\n console.warn('Numeral.js: Value is not string. It has been co-erced to: ', val);\n }\n }\n\n //trim whitespaces from either sides\n val = val.trim();\n\n //if val is just digits return true\n if (!!val.match(/^\\d+$/)) {\n return true;\n }\n\n //if val is empty return false\n if (val === '') {\n return false;\n }\n\n //get the decimal and thousands separator from numeral.localeData\n try {\n //check if the culture is understood by numeral. if not, default it to current locale\n localeData = numeral.localeData(culture);\n } catch (e) {\n localeData = numeral.localeData(numeral.locale());\n }\n\n //setup the delimiters and currency symbol based on culture/locale\n _currSymbol = localeData.currency.symbol;\n _abbrObj = localeData.abbreviations;\n _decimalSep = localeData.delimiters.decimal;\n if (localeData.delimiters.thousands === '.') {\n _thousandSep = '\\\\.';\n } else {\n _thousandSep = localeData.delimiters.thousands;\n }\n\n // validating currency symbol\n temp = val.match(/^[^\\d]+/);\n if (temp !== null) {\n val = val.substr(1);\n if (temp[0] !== _currSymbol) {\n return false;\n }\n }\n\n //validating abbreviation symbol\n temp = val.match(/[^\\d]+$/);\n if (temp !== null) {\n val = val.slice(0, -1);\n if (temp[0] !== _abbrObj.thousand && temp[0] !== _abbrObj.million && temp[0] !== _abbrObj.billion && temp[0] !== _abbrObj.trillion) {\n return false;\n }\n }\n\n _thousandRegEx = new RegExp(_thousandSep + '{2}');\n\n if (!val.match(/[^\\d.,]/g)) {\n _valArray = val.split(_decimalSep);\n if (_valArray.length > 2) {\n return false;\n } else {\n if (_valArray.length < 2) {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx));\n } else {\n if (_valArray[0].length === 1) {\n return ( !! _valArray[0].match(/^\\d+$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n } else {\n return ( !! _valArray[0].match(/^\\d+.*\\d$/) && !_valArray[0].match(_thousandRegEx) && !! _valArray[1].match(/^\\d+$/));\n }\n }\n }\n }\n\n return false;\n };\n\n\n /************************************\n Numeral Prototype\n ************************************/\n\n numeral.fn = Numeral.prototype = {\n clone: function() {\n return numeral(this);\n },\n format: function(inputString, roundingFunction) {\n var value = this._value,\n format = inputString || options.defaultFormat,\n kind,\n output,\n formatFunction;\n\n // make sure we have a roundingFunction\n roundingFunction = roundingFunction || Math.round;\n\n // format based on value\n if (value === 0 && options.zeroFormat !== null) {\n output = options.zeroFormat;\n } else if (value === null && options.nullFormat !== null) {\n output = options.nullFormat;\n } else {\n for (kind in formats) {\n if (format.match(formats[kind].regexps.format)) {\n formatFunction = formats[kind].format;\n\n break;\n }\n }\n\n formatFunction = formatFunction || numeral._.numberToFormat;\n\n output = formatFunction(value, format, roundingFunction);\n }\n\n return output;\n },\n value: function() {\n return this._value;\n },\n input: function() {\n return this._input;\n },\n set: function(value) {\n this._value = Number(value);\n\n return this;\n },\n add: function(value) {\n var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr, currI, O) {\n return accum + Math.round(corrFactor * curr);\n }\n\n this._value = _.reduce([this._value, value], cback, 0) / corrFactor;\n\n return this;\n },\n subtract: function(value) {\n var corrFactor = _.correctionFactor.call(null, this._value, value);\n\n function cback(accum, curr, currI, O) {\n return accum - Math.round(corrFactor * curr);\n }\n\n this._value = _.reduce([value], cback, Math.round(this._value * corrFactor)) / corrFactor;\n\n return this;\n },\n multiply: function(value) {\n function cback(accum, curr, currI, O) {\n var corrFactor = _.correctionFactor(accum, curr);\n return Math.round(accum * corrFactor) * Math.round(curr * corrFactor) / Math.round(corrFactor * corrFactor);\n }\n\n this._value = _.reduce([this._value, value], cback, 1);\n\n return this;\n },\n divide: function(value) {\n function cback(accum, curr, currI, O) {\n var corrFactor = _.correctionFactor(accum, curr);\n return Math.round(accum * corrFactor) / Math.round(curr * corrFactor);\n }\n\n this._value = _.reduce([this._value, value], cback);\n\n return this;\n },\n difference: function(value) {\n return Math.abs(numeral(this._value).subtract(value).value());\n }\n };\n\n /************************************\n Default Locale && Format\n ************************************/\n\n numeral.register('locale', 'en', {\n delimiters: {\n thousands: ',',\n decimal: '.'\n },\n abbreviations: {\n thousand: 'k',\n million: 'm',\n billion: 'b',\n trillion: 't'\n },\n ordinal: function(number) {\n var b = number % 10;\n return (~~(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n },\n currency: {\n symbol: '$'\n }\n });\n\n \n\n(function() {\n numeral.register('format', 'bps', {\n regexps: {\n format: /(BPS)/,\n unformat: /(BPS)/\n },\n format: function(value, format, roundingFunction) {\n var space = numeral._.includes(format, ' BPS') ? ' ' : '',\n output;\n\n value = value * 10000;\n\n // check for space before BPS\n format = format.replace(/\\s?BPS/, '');\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n if (numeral._.includes(output, ')')) {\n output = output.split('');\n\n output.splice(-1, 0, space + 'BPS');\n\n output = output.join('');\n } else {\n output = output + space + 'BPS';\n }\n\n return output;\n },\n unformat: function(string) {\n return +(numeral._.stringToNumber(string) * 0.0001).toFixed(15);\n }\n });\n})();\n\n\n(function() {\n var decimal = {\n base: 1000,\n suffixes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n },\n binary = {\n base: 1024,\n suffixes: ['B', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']\n };\n\n var allSuffixes = decimal.suffixes.concat(binary.suffixes.filter(function (item) {\n return decimal.suffixes.indexOf(item) < 0;\n }));\n var unformatRegex = allSuffixes.join('|');\n // Allow support for BPS (http://www.investopedia.com/terms/b/basispoint.asp)\n unformatRegex = '(' + unformatRegex.replace('B', 'B(?!PS)') + ')';\n\n numeral.register('format', 'bytes', {\n regexps: {\n format: /([0\\s]i?b)/,\n unformat: new RegExp(unformatRegex)\n },\n format: function(value, format, roundingFunction) {\n var output,\n bytes = numeral._.includes(format, 'ib') ? binary : decimal,\n suffix = numeral._.includes(format, ' b') || numeral._.includes(format, ' ib') ? ' ' : '',\n power,\n min,\n max;\n\n // check for space before\n format = format.replace(/\\s?i?b/, '');\n\n for (power = 0; power <= bytes.suffixes.length; power++) {\n min = Math.pow(bytes.base, power);\n max = Math.pow(bytes.base, power + 1);\n\n if (value === null || value === 0 || value >= min && value < max) {\n suffix += bytes.suffixes[power];\n\n if (min > 0) {\n value = value / min;\n }\n\n break;\n }\n }\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return output + suffix;\n },\n unformat: function(string) {\n var value = numeral._.stringToNumber(string),\n power,\n bytesMultiplier;\n\n if (value) {\n for (power = decimal.suffixes.length - 1; power >= 0; power--) {\n if (numeral._.includes(string, decimal.suffixes[power])) {\n bytesMultiplier = Math.pow(decimal.base, power);\n\n break;\n }\n\n if (numeral._.includes(string, binary.suffixes[power])) {\n bytesMultiplier = Math.pow(binary.base, power);\n\n break;\n }\n }\n\n value *= (bytesMultiplier || 1);\n }\n\n return value;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'currency', {\n regexps: {\n format: /(\\$)/\n },\n format: function(value, format, roundingFunction) {\n var locale = numeral.locales[numeral.options.currentLocale],\n symbols = {\n before: format.match(/^([\\+|\\-|\\(|\\s|\\$]*)/)[0],\n after: format.match(/([\\+|\\-|\\)|\\s|\\$]*)$/)[0]\n },\n output,\n symbol,\n i;\n\n // strip format of spaces and $\n format = format.replace(/\\s?\\$\\s?/, '');\n\n // format the number\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n // update the before and after based on value\n if (value >= 0) {\n symbols.before = symbols.before.replace(/[\\-\\(]/, '');\n symbols.after = symbols.after.replace(/[\\-\\)]/, '');\n } else if (value < 0 && (!numeral._.includes(symbols.before, '-') && !numeral._.includes(symbols.before, '('))) {\n symbols.before = '-' + symbols.before;\n }\n\n // loop through each before symbol\n for (i = 0; i < symbols.before.length; i++) {\n symbol = symbols.before[i];\n\n switch (symbol) {\n case '$':\n output = numeral._.insert(output, locale.currency.symbol, i);\n break;\n case ' ':\n output = numeral._.insert(output, ' ', i + locale.currency.symbol.length - 1);\n break;\n }\n }\n\n // loop through each after symbol\n for (i = symbols.after.length - 1; i >= 0; i--) {\n symbol = symbols.after[i];\n\n switch (symbol) {\n case '$':\n output = i === symbols.after.length - 1 ? output + locale.currency.symbol : numeral._.insert(output, locale.currency.symbol, -(symbols.after.length - (1 + i)));\n break;\n case ' ':\n output = i === symbols.after.length - 1 ? output + ' ' : numeral._.insert(output, ' ', -(symbols.after.length - (1 + i) + locale.currency.symbol.length - 1));\n break;\n }\n }\n\n\n return output;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'exponential', {\n regexps: {\n format: /(e\\+|e-)/,\n unformat: /(e\\+|e-)/\n },\n format: function(value, format, roundingFunction) {\n var output,\n exponential = typeof value === 'number' && !numeral._.isNaN(value) ? value.toExponential() : '0e+0',\n parts = exponential.split('e');\n\n format = format.replace(/e[\\+|\\-]{1}0/, '');\n\n output = numeral._.numberToFormat(Number(parts[0]), format, roundingFunction);\n\n return output + 'e' + parts[1];\n },\n unformat: function(string) {\n var parts = numeral._.includes(string, 'e+') ? string.split('e+') : string.split('e-'),\n value = Number(parts[0]),\n power = Number(parts[1]);\n\n power = numeral._.includes(string, 'e-') ? power *= -1 : power;\n\n function cback(accum, curr, currI, O) {\n var corrFactor = numeral._.correctionFactor(accum, curr),\n num = (accum * corrFactor) * (curr * corrFactor) / (corrFactor * corrFactor);\n return num;\n }\n\n return numeral._.reduce([value, Math.pow(10, power)], cback, 1);\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'ordinal', {\n regexps: {\n format: /(o)/\n },\n format: function(value, format, roundingFunction) {\n var locale = numeral.locales[numeral.options.currentLocale],\n output,\n ordinal = numeral._.includes(format, ' o') ? ' ' : '';\n\n // check for space before\n format = format.replace(/\\s?o/, '');\n\n ordinal += locale.ordinal(value);\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n return output + ordinal;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'percentage', {\n regexps: {\n format: /(%)/,\n unformat: /(%)/\n },\n format: function(value, format, roundingFunction) {\n var space = numeral._.includes(format, ' %') ? ' ' : '',\n output;\n\n if (numeral.options.scalePercentBy100) {\n value = value * 100;\n }\n\n // check for space before %\n format = format.replace(/\\s?\\%/, '');\n\n output = numeral._.numberToFormat(value, format, roundingFunction);\n\n if (numeral._.includes(output, ')')) {\n output = output.split('');\n\n output.splice(-1, 0, space + '%');\n\n output = output.join('');\n } else {\n output = output + space + '%';\n }\n\n return output;\n },\n unformat: function(string) {\n var number = numeral._.stringToNumber(string);\n if (numeral.options.scalePercentBy100) {\n return number * 0.01;\n }\n return number;\n }\n });\n})();\n\n\n(function() {\n numeral.register('format', 'time', {\n regexps: {\n format: /(:)/,\n unformat: /(:)/\n },\n format: function(value, format, roundingFunction) {\n var hours = Math.floor(value / 60 / 60),\n minutes = Math.floor((value - (hours * 60 * 60)) / 60),\n seconds = Math.round(value - (hours * 60 * 60) - (minutes * 60));\n\n return hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds);\n },\n unformat: function(string) {\n var timeArray = string.split(':'),\n seconds = 0;\n\n // turn hours and minutes into seconds and add them all up\n if (timeArray.length === 3) {\n // hours\n seconds = seconds + (Number(timeArray[0]) * 60 * 60);\n // minutes\n seconds = seconds + (Number(timeArray[1]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[2]);\n } else if (timeArray.length === 2) {\n // minutes\n seconds = seconds + (Number(timeArray[0]) * 60);\n // seconds\n seconds = seconds + Number(timeArray[1]);\n }\n return Number(seconds);\n }\n });\n})();\n\nreturn numeral;\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","\"use strict\";\n\nvar stylesInDOM = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n\n return updater;\n}\n\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n\n stylesInDOM.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n/* istanbul ignore next */\n\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n}\n/* istanbul ignore next */\n\n\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n}\n\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\n\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\n\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n\n var needLayer = typeof obj.layer !== \"undefined\";\n\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n\n css += obj.css;\n\n if (needLayer) {\n css += \"}\";\n }\n\n if (obj.media) {\n css += \"}\";\n }\n\n if (obj.supports) {\n css += \"}\";\n }\n\n var sourceMap = obj.sourceMap;\n\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n options.styleTagTransform(css, styleElement, options.options);\n}\n\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n\n styleElement.parentNode.removeChild(styleElement);\n}\n/* istanbul ignore next */\n\n\nfunction domAPI(options) {\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\n\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n\n styleElement.appendChild(document.createTextNode(css));\n }\n}\n\nmodule.exports = styleTagTransform;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","module.exports = __WEBPACK_EXTERNAL_MODULE__4410__;","module.exports = __WEBPACK_EXTERNAL_MODULE__5963__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6615__;","module.exports = __WEBPACK_EXTERNAL_MODULE__7607__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4639__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8512__;","module.exports = __WEBPACK_EXTERNAL_MODULE__2854__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6826__;","module.exports = __WEBPACK_EXTERNAL_MODULE__4135__;","module.exports = __WEBPACK_EXTERNAL_MODULE__6848__;","module.exports = __WEBPACK_EXTERNAL_MODULE__327__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.hmd = function(module) {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: function() {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","\n import API from \"!../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./main.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/postcss-loader/dist/cjs.js!../../node_modules/sass-loader/dist/cjs.js!./main.css\";\n export default content && content.locals ? content.locals : undefined;\n"],"names":["root","factory","exports","module","require","define","amd","i","a","self","__WEBPACK_EXTERNAL_MODULE__4639__","__WEBPACK_EXTERNAL_MODULE__8512__","__WEBPACK_EXTERNAL_MODULE__7607__","__WEBPACK_EXTERNAL_MODULE__6615__","__WEBPACK_EXTERNAL_MODULE__4410__","__WEBPACK_EXTERNAL_MODULE__327__","__WEBPACK_EXTERNAL_MODULE__4135__","__WEBPACK_EXTERNAL_MODULE__2854__","__WEBPACK_EXTERNAL_MODULE__5963__","__WEBPACK_EXTERNAL_MODULE__6826__","__WEBPACK_EXTERNAL_MODULE__6848__","ElementManager","useState","count","setCount","Button","bsStyle","onClick","SelectAttrNewModal","this","props","fnCreate","s_selectKey","value","trim","showModal","fnClose","Modal","backdrop","show","onHide","closeButton","style","overflow","className","Form","horizontal","FormGroup","controlId","InputGroup","FormControl","type","inputRef","ref","t","handleCreate","aria-hidden","Component","propTypes","PropTypes","SelectOption","generic","fnAddOption","input","inputNewOption","newOption","key","label","selectObj","deep","cloneDeep","properties_template","select_options","options","push","fnChange","bsSize","marginBottom","display","renderDeleteButton","name","placeholder","tip","fnClick","fa","size","optionR","defaultValue","onChange","event","onOptionInputChange","SelectOptionLayer","fnAddSelect","showAddSelect","setShowAddSelect","selects","Object","keys","forEach","map","f","marginTop","snode","Panel","defaultExpanded","toggle","txt","btnCls","selectName","sos","optionKey","selectKey","idx","findIndex","o","op","target","splice","defaultProps","delType","delKey","delRoot","fnConfirm","NoDataModal","title","fnHide","GenAnaModal","layer","fnLink","container","specLayer","properties","layers","ai","children","filter","x","is_new","length","layerAi","rows","_ai","id","Constants","disabled","includes","maxHeight","GenericDSDetails","handleReload","bind","newProps","klass","genericDS","properties_release","klass_uuid","uuid","newLayer","curFields","fields","curVal","units","vs","curIdx","field","curType","toString","isNaN","parseInt","toBool","genUnits","option_layers","find","u","value_system","toNum","dataset_klass_id","klass_ols","ols_term_id","klass_label","changed","layersLayout","extLayers","genId","isPreview","isSearch","isActiveWF","margin","uiCtrl","kind","position","minHeight","overflowY","elementalPropertiesItem","absOlsTermLabel","ButtonToolbar","OverlayTrigger","placement","overlay","Tooltip","reducer","state","action","GenInterface","useReducerWithCallback","initialState","dispatch","fnNavi","isSpCall","aiComp","paramsLayersLayout","funcChange","preValue","flow","selected","_source","_target","srcIdx","tmpSrc","tarIdx","propsChange","sortedLayers","sortBy","e","Math","abs","swapAryEls","tmpTar","wf_position","el","ll","orgLayerObject","stopPropagation","selectedIdx","showViewLayer","selectedLayerKey","showAnaModal","rmNeeded","preLayer","nxLayer","getFlowLayer","addToObject","removeFromObject","getWFNode","checked","fileIdx","vals","uploadFiles","files","concat","uid","trunc","startsWith","console","log","opt","search_properties","funcSubChange","obj","subFields","idxSub","m","sub_fields","sub","sub_values","funcClick","newVal","unitConversion","extLys","activeWF","hasAi","LayersLayout","addLayerModal","fnAdd","_layer","origKey","selectedLayer","cnt","wf","wf_uuid","reformCondFields","ix","anaModal","pAiId","pLayer","pAct","GenInterfaceSP","SegmentDetails","segment","nSubs","cSubs","exSubs","nSub","nvl","hitSub","c","organizeSubValues","ELEMENT","SAMPLE","MOLECULE","LAYOUT","GENERAL","DATA","UNLINKED_DATA","DATASET","CONTAINER","ELEMENT_FIELD","GENERIC_GRID","iconClass","onNavi","tip1","tip2","pop","path","el_id","elSvg","el_svg","el_type","endsWith","el_decoupled","tips","el_tip","split","tit","Popover","maxWidth","src","height","width","alt","el_label","role","cursor","el_klass","icon_name","delayShow","trigger","rootClose","KlzIcon","source","taggable","tag","taggable_data","isAssoc","element","reaction_id","wellplate_id","molecule","molecule_name_label","inchikey","cano_smiles","cr_opt","short_label","decoupled","element_klass","dropTarget","drop","targetProps","monitor","sourceProps","getItem","sourceTag","onDrop","canDrop","_targetProps","_monitor","dropCollect","connect","connectDropTarget","isOver","GenericElDropTarget","dndItems","DropTarget","orderDragCollect","connectDragSource","dragSource","isDragging","orderDropCollect","GridDnD","compose","orderTarget","orderSource","beginDrag","fid","rId","rowValue","handleMove","tar","DragSource","s","PanelDnD","handleChange","bs","btnAdd","klz","replace","btnLinkAna","FontAwesomeIcon","icon","faPlus","btnRemove","faMinus","wfIcon","faSitemap","moveIcon","faArrowsAlt","btnLayer","ButtonGroup","extHead","test","panelHeader","float","lineHeight","panelHColor","dndKlz","canDrag","ButtonConfirm","msg","fnParams","place","popover","animation","confirmDelete","str","FieldTypes","ButtonDelField","ButtonReload","fnReload","BTN_RELOAD_TIP","outGeneric","output","reinventGeneric","ButtonTooltip","tooltip","content","FieldLabel","desc","freeze","DEL_LAYER","DEL_FIELD","DEL_SELECT","DEL_OPTION","GenProperties","fieldProps","GenPropertiesCheckbox","GenPropertiesCalculate","GenPropertiesSelect","GenPropertiesDrop","GenPropertiesNumber","GenPropertiesSystemDefined","GenPropertiesInputGroup","GenPropertiesTextArea","GenPropertiesUpload","GenDummy","GenPropertiesTable","GenTextFormula","GenWFNext","GenPropertiesText","fieldCls","fieldHeader","description","showVal","showTxt","newFormula","formula","calFields","regF","varFields","match","sort","b","fi","tmpField","parseFloat","unitConvToBase","eval","toFixed","SyntaxError","message","readOnly","required","min","active","Checkbox","isRequired","createOpt","defaultIcon","Radio","inline","dragTarget","paddingBottom","subs","f_obj","onSubChange","genUnitSup","genUnit","isEditable","val","selectStyles","menuPortal","base","zIndex","menu","isClearable","multi","isDisabled","menuPortalTarget","document","body","styles","componentClass","text_sub_fields","fds","separator","fdt","svv","fd","join","renderListGroupItem","attachment","delBtn","filename","aid","downloadFile","contents","attachments","border","textAlign","paddingTop","color","ListGroup","ListGroupItem","wf_options","menuContainerStyle","DnDFlow","fnSave","reactFlowWrapper","useRef","reactFlowInstance","setReactFlowInstance","elements","setElements","onSave","useCallback","flowObject","toObject","storeFlow","useEffect","flowEls","conFlowEls","flowDefault","fitView","ReactFlowProvider","onConnect","params","els","addEdge","animated","arrowHeadType","onElementsRemove","elementsToRemove","rms","alert","data","removeElements","onLoad","_reactFlowInstance","connectionMode","ConnectionMode","ev","newNode","preventDefault","node","dataTransfer","getData","reactFlowBounds","current","getBoundingClientRect","project","clientX","left","y","clientY","top","lKey","es","onDragOver","dropEffect","nodeTypes","selectorNode","LayerNode","deleteKeyCode","Controls","onDragStart","setData","effectAllowed","DnDSidebar","l","draggable","FlowView","FlowViewerModal","shortLabel","handle","bounds","faTimes","Handle","Position","targetHandleStyle","sourceHandleStyleA","background","memo","Workflow","fnSaveFlow","GenPropertiesLayer","handleSubChange","moveLayer","k","uIdx","valueOnly","keyLayer","update","selectOptions","sp","cols","perRow","col","floor","klaz","newRow","rowId","unit","rCol","eachCol","showProperties","tabCol","Row","Col","priority","md","lg","handleClick","cl","panelDnD","noneKlass","PanelGroup","accordion","defaultActiveKey","eventKey","views","drawLayout","layout","block","LayerModal","buildExtLys","uk","cond_fields","ig","showLayer","cond","toLowerCase","igs","Attachment","args","assign","buildID","identifier","file","thumb","content_type","is_deleted","isNew","GenericSubField","DropLinkRenderer","sField","dId","dVal","el_short_label","DropRenderer","oopt","DropTextRenderer","attr","displayValue","data-clipboard-text","wordBreak","fontSize","subVal","molecule_formula","el_inchikey","el_smiles","el_iupac","iupac_name","el_molecular_weight","molecular_weight","molecule_svg_file","el_name","el_external_label","external_label","molecule_molecular_weight","sample_svg_file","GenericElTableDropTarget","justifyContent","AddRowBtn","addRow","DelRowBtn","delRow","NullRowBtn","DnDRowBtn","moveRow","setCell","columnDef","onCellChange","cellRenderer","cellParams","ColumnHeader","_columnDefs","ch","headerName","headerComponent","headerParams","colCss","minWidth","colId","borderBottom","ColumnRow","_rowValue","NoRow","SamOption","fValue","rUUID","subField","crOpt","SelectRenderer","sOptions","TableRecord","onSelectClick","onUnitClick","onChk","getColumns","newValue","oldValue","Numeral","subVals","v","targetOpt","sValues","columnDefs","act","sF","addOption","addLink","colDef","col_name","colDefExt","editable","UConverterRenderer","molOptions","ext","sOpt","SampOption","samOptions","dtype","DragDropItemTypes","move","alles","sid","tid","temp","rowData","newSub","React","BTN_AI_LINK","BTN_AI_UNLINK","IMG_NOT_AVAILABLE_SVG","IMG_UNDEFINED_STRUCTURE_SVG","collateValues","currentFields","previousFields","previousValues","result","currentValuKeys","previousValueKeys","notInCurrent","currObj","preKey","curr","prev","option_layer","cur","pre","traverseToRemove","rmKey","prototype","hasOwnProperty","call","wf_info","source_layer","_flow","nodeId","templateFlow","sourceLayer","sIdx","nd","ls","ndNs","ns","wfOpts","n","default","node_id","reduce","ok","all","nName","_oKey","_f","conds","addAfter","oKey","srcPosition","_propertiesLayers","srcLayer","rmNode","buildInitWF","template","nNs","nextNodes","orig","nls","sortedLayer","fLayer","pas","nextOptions","undefined","initializer","callbackRef","useReducer","callback","klzSty","valIdx","fObj","showField","GenericDummy","inputEventVal","absOlsTermId","parse","Number","reV","supVal","valLower","String","genUnitsSystem","SystemUnits","reUnit","unitsSystem","optionLayers","defaultUnit","uniObj","uniFileds","fiel","preUnit","convertTemp","nm","pIdx","clsInputGroup","genericEl","ff","findCurrentNode","_srcKey","_layerVals","fs","decorateNode","_elements","_layers","lk","findKey","d","chk","right","faCheckCircle","borderWidth","borderColor","borderStyle","isLayerInWF","_element","_layerKey","_ary","idx1","idx2","ary","link","createElement","download","href","window","MouseEvent","view","bubbles","cancelable","dispatchEvent","SYSTEM_UNITS","___CSS_LOADER_EXPORT___","cssWithMappingToString","list","item","needLayer","modules","media","dedupe","supports","alreadyImportedModules","_k","sourceURLs","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","sourceMapping","sources","sourceRoot","numeral","_","formats","locales","defaults","currentLocale","zeroFormat","nullFormat","defaultFormat","scalePercentBy100","number","_input","_value","unformatFunction","regexp","isNumeral","regexps","unformat","stringToNumber","version","numberToFormat","format","roundingFunction","leadingCount","abbrForce","int","precision","signed","thousands","locale","negP","optDec","abbr","trillion","billion","million","decimal","neg","indexOf","RegExp","abbreviations","thousand","delimiters","slice","string","abbreviation","stringOriginal","currency","symbol","pow","search","insert","subString","start","array","TypeError","len","arguments","multiplier","parts","correctionFactor","Array","accum","next","mn","maxDecimals","optionals","boundedPrecision","optionalsRegExp","power","splitValue","minDecimals","max","localeData","Error","reset","property","register","validate","culture","_decimalSep","_thousandSep","_currSymbol","_valArray","_abbrObj","_thousandRegEx","warn","substr","fn","clone","inputString","formatFunction","round","set","add","corrFactor","currI","O","subtract","multiply","divide","difference","ordinal","space","suffixes","binary","unformatRegex","bytes","suffix","bytesMultiplier","symbols","before","after","toExponential","hours","minutes","seconds","timeArray","ReactPropTypesSecret","r","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","location","propFullName","secret","err","getShim","ReactPropTypes","bigint","bool","func","object","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","randomString","random","substring","_len","funcs","_key","arg","apply","stylesInDOM","getIndexByIdentifier","modulesToDom","idCountMap","identifiers","indexByIdentifier","css","sourceMap","references","updater","api","domAPI","newObj","remove","byIndex","lastIdentifiers","newList","index","newLastIdentifiers","_i","_index","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","appendChild","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","parentNode","removeChild","styleSheet","cssText","firstChild","createTextNode","getRandomValues","rnds8","Uint8Array","byteToHex","arr","offset","buf","rnds","rng","crypto","msCrypto","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","__esModule","definition","defineProperty","enumerable","get","hmd","create","prop","Symbol","toStringTag"],"sourceRoot":""}
|