{"version":3,"file":"2700.7d7506ef65e9634878de.js","mappings":"2oEAEO,MAAMA,UAAsB,GAAa,CAM9C,KAAKC,EAAM,CACX,CAOA,YAAYC,EAAM,CAChB,YAAK,KAAOA,EACL,IACT,CACF,C,kICnBO,IAAIC,GAA+BC,IACxCA,EAAY,QAAa,WACzBA,EAAY,WAAgB,aACrBA,IACND,GAAc,CAAC,CAAC,EACZ,MAAME,CAAa,CAExB,cAAcC,EAAK,CACjB,YAAK,YAAcA,EACZ,IACT,CACA,aAAc,CACZ,KAAK,KAAO,CAAC,CACf,CACF,C,oCCdO,IAAIC,GAAgCC,IACzCA,EAAa,OAAY,SACzBA,EAAa,aAAkB,gBACxBA,IACND,GAAe,CAAC,CAAC,C,4CCJb,SAASE,EAAUC,EAAI,CAC5B,OAAOA,CACT,CACO,SAASC,EAAQC,EAAK,CAC3B,OAAOA,CACT,C,6UCLO,IAAIC,GAAgCC,IACzCA,EAAa,QAAa,UAC1BA,EAAa,KAAU,OACvBA,EAAa,QAAa,QACnBA,IACND,GAAe,CAAC,CAAC,C,oCCLb,IAAIE,GAA8BC,IACvCA,EAAW,UAAe,YAC1BA,EAAW,eAAoB,iBAC/BA,EAAW,QAAa,UACjBA,IACND,GAAa,CAAC,CAAC,C,yKCFlB,MAAME,KAAe,MAAU,EACzBC,EAAOD,EAAa,MAAQA,EAAa,QACxC,SAASE,EAAuBC,EAAQ,CAC7C,SAAO,MAAIF,EAAO,KAAiB,CAAE,OAAAE,CAAO,CAAC,EAAE,KAAMC,GAAQA,CAAG,CAClE,CACO,SAASC,EAAoBF,EAAQ,CAC1C,SAAO,MAAKF,EAAO,KAAiBE,CAAM,CAC5C,CACO,SAASG,EAAoBH,EAAQ,CAC1C,SAAO,MAAQF,EAAO,KAAkB,IAAME,EAAO,KAAMA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CACtF,CACO,SAASG,EAAcJ,EAAQ,CACpC,SAAO,MAAIF,EAAO,KAAQ,CAAE,OAAAE,CAAO,CAAC,EAAE,KAAMC,GAAQA,CAAG,CACzD,CACO,SAASI,EAAiBL,EAAQ,CACvC,MAAMM,EAAO,GAAGR,EAAO,QAAUE,EAAO,OACxC,SAAO,MACLM,EACAN,EAAO,QAAU,CACf,OAAQ,CACN,QAASA,EAAO,OAClB,CACF,EAAI,CAAC,CACP,EAAE,KAAMC,GAAQA,CAAG,CACrB,CACO,SAASM,EAAaP,EAAQ,CACnC,MAAMM,EAAO,GAAGR,EAAO,QAAUE,EAAO,eACxC,SAAO,MAAKM,EAAMN,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC7C,CACO,SAASO,GAAYR,EAAQ,CAClC,MAAMM,EAAO,GAAGR,EAAO,QAAUE,EAAO,cAClCS,EAAM,CAAE,KAAMT,EAAO,WAAY,QAASA,EAAO,OAAQ,EAC/D,OAAIA,EAAO,WACTS,EAAI,SAAWT,EAAO,aAEjB,MAAKM,EAAMG,CAAG,EAAE,KAAMR,GAAQA,CAAG,CAC1C,CACO,SAASS,EAAaV,EAAQ,CACnC,MAAMM,EAAO,GAAGR,EAAO,QAAUE,EAAO,cAClCS,EAAM,CAAE,KAAMT,EAAO,WAAY,QAASA,EAAO,OAAQ,EAC/D,OAAIA,EAAO,WACTS,EAAI,SAAWT,EAAO,aAEjB,MAAIM,EAAMG,CAAG,EAAE,KAAMR,GAAQA,CAAG,CACzC,CACO,SAASU,GAAgBX,EAAQ,CACtC,MAAMM,EAAO,GAAGR,EAAO,QAAUE,EAAO,cACxC,SAAO,MAAIM,EAAMN,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC5C,CACO,SAASW,GAAiBZ,EAAQ,CACvC,SAAO,MAAIF,EAAO,KAAcE,CAAM,CACxC,C,6bClDA,MAAMa,KADe,MAAU,EACN,QAAU,KAC5B,SAASC,EAAmBd,EAAQ,CACzC,SAAO,MAAIa,EAAK,CAAE,OAAAb,CAAO,CAAC,EAAE,KAAMC,GAAQA,CAAG,CAC/C,CACO,SAASc,EAAkBf,EAAQ,CACxC,MAAMgB,EAAY,GAAGH,aAAeb,EAAO,UAC3C,SAAO,MAAKgB,EAAWhB,CAAM,EAAE,KAAMC,IAAQA,EAAG,CAClD,CACO,SAASgB,EAAsBjB,EAAQ,CAC5C,SAAO,MAAI,GAAGa,KAAOb,EAAO,OAAQA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC/D,CACO,SAASiB,EAAqBlB,EAAQ,CAC3C,SAAO,MAAI,GAAGa,KAAOb,EAAO,aAAaA,EAAO,iBAAkBA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC7F,CACO,SAASkB,EAAwBnB,EAAQ,CAC9C,SAAO,MAAI,GAAGa,KAAOb,EAAO,cAAeA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CACtE,CACO,SAASmB,EAAkBpB,EAAQ,CACxC,SAAO,MAAQa,EAAM,IAAMb,EAAO,KAAMA,CAAM,CAChD,CACO,SAASqB,GAAyBrB,EAAQ,CAC/C,KAAM,CAAE,QAAAsB,CAAQ,EAAItB,EACpB,SAAO,MAAI,GAAGa,KAAOS,eAAsB,CAAC,CAAC,EAAE,KAAMrB,IAAQA,EAAG,CAClE,CACO,SAASsB,EAA2BvB,EAAQwB,EAAO,CACxD,SAAO,MAAK,GAAGX,KAAOW,EAAM,qBAAsBxB,CAAM,EAAE,KAAMC,IAAQA,EAAG,CAC7E,CACO,SAASwB,GAAoBzB,EAAQ,CAC1C,OAAO,KAAK,GAAGa,KAAOb,EAAO,mBAAmBA,EAAO,gBAAiBA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CACnG,CACO,SAASyB,GAAkB1B,EAAQ2B,EAAa,CACrD,SAAO,MAAK,GAAGd,KAAOb,EAAO,iBAAkBA,EAAQ2B,CAAW,CACpE,CACO,SAASC,EAAc5B,EAAQ,CACpC,SAAO,MAAI,GAAGa,KAAOb,EAAO,mBAAoBA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC3E,CACO,SAAS4B,EAAaP,EAAStB,EAAQ,CAC5C,SAAO,MAAK,GAAGa,KAAOS,aAAoBtB,CAAM,EAAE,KAAMC,IAAQA,EAAG,CACrE,CACO,SAAS6B,EAAaR,EAASS,EAAY/B,GAAQ,CACxD,SAAO,MAAI,GAAGa,KAAOS,cAAoBS,IAAc/B,EAAM,EAAE,KAAMC,IAAQA,EAAG,CAClF,CACO,SAAS+B,EAAgBhC,EAAQ,CACtC,SAAO,MAAI,GAAGa,KAAOb,EAAO,oBAAoBA,EAAO,aAAcA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAChG,CACO,SAASgC,EAAajC,EAAQ,CACnC,MAAMkC,EAAO,GAAGrB,KAAOb,EAAO,oBAAoBA,EAAO,aACzD,OAAIA,EAAO,SACF,MAAQkC,EAAM,CAAE,OAAQ,CAAE,MAAO,EAAK,CAAE,EAAG,EAAI,EAAE,KAAMjC,IAAQA,EAAG,KAEpE,MAAQiC,EAAM,CAAC,EAAG,EAAI,EAAE,KAAMjC,IAAQA,EAAG,CAClD,CACO,SAASkC,EAA0BnC,EAAQ,CAChD,OAAO,KAAK,GAAGa,KAAOb,EAAO,gBAAiBA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CACzE,CACO,SAASmC,GAA4BpC,EAAQ,CAClD,SAAO,MAAK,GAAGa,KAAOb,EAAO,eAAgBA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CACxE,CACO,SAASoC,EAA4BrC,EAAQ,CAClD,SAAO,MAAI,GAAGa,KAAOb,EAAO,gBAAgBA,EAAO,OAAQA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CACtF,CACO,SAASqC,EAAyBtC,EAAQ,CAC/C,SAAO,MAAI,GAAGa,KAAOb,EAAO,eAAgBA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CACvE,CACO,SAASsC,GAA4BvC,EAAQ,CAClD,SAAO,MAAQ,GAAGa,KAAOb,EAAO,gBAAgBA,EAAO,UAAW,CAAC,CAAC,EAAE,KAAMC,GAAQA,CAAG,CACzF,CACO,SAASuC,GAA6BxC,EAAQ,CACnD,SAAO,MAAK,GAAGa,KAAOb,EAAO,gBAAgBA,EAAO,kBAAmB,CAAC,CAAC,EAAE,KAAMC,GAAQA,CAAG,CAC9F,CACO,SAASwC,EAAwBnB,EAASoB,EAAe,CAC9D,SAAO,MAAI,GAAG7B,KAAOS,gBAAsBoB,IAAiB,CAAC,CAAC,EAAE,KAAMzC,IAAQA,EAAG,CACnF,CACO,SAAS0C,EAAY3C,EAAQwB,EAAO,CACzC,KAAM,CAAE,QAAAF,GAAS,cAAAoB,EAAc,EAAIlB,EACnC,SAAO,MAAK,GAAGX,KAAOS,iBAAsBoB,YAAwB1C,CAAM,EAAE,KAAMC,IAAQA,EAAG,CAC/F,CACO,SAAS2C,GAAY5C,EAAQwB,EAAO,CACzC,KAAM,CAAE,QAAAF,GAAS,cAAAoB,GAAe,UAAAG,EAAU,EAAIrB,EAC9C,SAAO,MAAI,GAAGX,KAAOS,iBAAsBoB,aAAwBG,KAAa7C,CAAM,EAAE,KAAMC,IAAQA,EAAG,CAC3G,CACO,SAAS6C,GAAYtB,EAAO,CACjC,KAAM,CAAE,QAAAF,EAAS,cAAAoB,GAAe,UAAAG,EAAU,EAAIrB,EAC9C,SAAO,MAAQ,GAAGX,KAAOS,gBAAsBoB,aAAwBG,KAAa,CAAC,CAAC,EAAE,KAAM5C,IAAQA,EAAG,CAC3G,CACO,SAAS8C,GAAcvB,EAAO,CACnC,KAAM,CAAE,QAAAF,CAAQ,EAAIE,EACpB,SAAO,MAAI,GAAGX,KAAOS,cAAqB,CAAE,OAAQE,CAAM,CAAC,EAAE,KAAMvB,IAAQA,EAAG,CAChF,CACO,SAAS+C,GAAexB,EAAO,CACpC,KAAM,CAAE,QAAAF,EAAS,SAAA2B,EAAS,EAAIzB,EAC9B,SAAO,MAAI,GAAGX,KAAOS,eAAqB2B,KAAY,CAAC,CAAC,EAAE,KAAMhD,IAAQA,EAAG,CAC7E,CACO,SAASiD,GAAqB1B,EAAO,CAC1C,KAAM,CAAE,QAAAF,EAAS,SAAA2B,EAAS,EAAIzB,EAC9B,SAAO,MAAK,GAAGX,KAAOS,eAAqB2B,cAAqB,CAAC,CAAC,EAAE,KAAMhD,IAAQA,EAAG,CACvF,CACO,SAASkD,EAAyBnD,EAAQ,CAC/C,SAAO,MAAI,GAAGa,KAAOb,EAAO,qBAAsBA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC7E,CACO,SAASmD,EAA6BpD,EAAQ,CACnD,OAAO,IAAI,GAAGa,KAAOb,EAAO,kBAAmBA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC1E,CACO,SAASoD,EAAyBrD,EAAQ,CAC/C,SAAO,MAAI,GAAGa,KAAOb,EAAO,gBAAgBA,EAAO,kBAAmB,CACpE,OAAQ,CACN,SAAUA,EAAO,UAAY,GAC7B,KAAMA,EAAO,MAAQ,CACvB,CACF,CAAC,EAAE,KAAMC,GAAQA,CAAG,CACtB,CACO,SAASqD,GAA0BtD,EAAQwB,EAAO,CACvD,SAAO,MAAI,GAAGX,KAAOW,EAAM,sBAAsBA,EAAM,gBAAiBxB,CAAM,EAAE,KAAMC,IAAQA,EAAG,CACnG,CACO,SAASsD,EAAgCvD,EAAQ,CACtD,KAAM,CAAE,QAAAsB,EAAS,aAAAkC,GAAc,WAAAC,EAAW,EAAIzD,EAC9C,SAAO,MAAI,GAAGa,KAAOS,eAAqBkC,cAAwBC,YAAqB,CAAC,CAAC,EAAE,KAAMxD,IAAQA,EAAG,CAC9G,CACO,SAASyD,GAAkC1D,EAAQ,CACxD,KAAM,CAAE,QAAAsB,EAAS,aAAAkC,GAAc,WAAAC,EAAW,EAAIzD,EAC9C,SAAO,MAAI,GAAGa,KAAOS,eAAqBkC,cAAwBC,cAAuB,CAAC,CAAC,EAAE,KAAMxD,IAAQA,EAAG,CAChH,CACO,SAAS0D,GAAmC3D,EAAQ,CACzD,KAAM,CAAE,QAAAsB,EAAS,aAAAkC,GAAc,WAAAC,EAAW,EAAIzD,EAC9C,SAAO,MAAI,GAAGa,KAAOS,eAAqBkC,cAAwBC,eAAwB,CAAC,CAAC,EAAE,KAAMxD,IAAQA,EAAG,CACjH,CACO,SAAS2D,GAAuB5D,EAAQ,CAC7C,KAAM,CAAE,QAAAsB,CAAQ,EAAItB,EACpB,SAAO,MAAI,GAAGa,KAAOS,aAAoB,CAAC,CAAC,EAAE,KAAMrB,IAAQA,EAAG,CAChE,CACO,SAAS4D,EAAkB7D,EAAQ,CACxC,SAAO,MAAI,GAAGa,KAAOb,EAAO,OAAQA,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC/D,CACO,SAAS6D,GAAc9D,EAAQwB,EAAO,CAC3C,KAAM,CAAE,QAAAF,EAAQ,EAAIE,EACpB,SAAO,MAAK,GAAGX,KAAOS,cAAoBtB,CAAM,EAAE,KAAMC,IAAQA,EAAG,CACrE,CACO,SAAS8D,GAAc/D,EAAQwB,EAAO,CAC3C,KAAM,CAAE,QAAAF,GAAS,MAAA0C,EAAM,EAAIxC,EAC3B,SAAO,MAAI,GAAGX,KAAOS,eAAoB0C,KAAShE,CAAM,EAAE,KAAMC,IAAQA,EAAG,CAC7E,CACO,SAASgE,GAAcjE,EAAQ,CACpC,KAAM,CAAE,QAAAsB,EAAS,MAAA0C,EAAM,EAAIhE,EAC3B,SAAO,MAAQ,GAAGa,KAAOS,cAAoB0C,KAAS,CAAC,CAAC,EAAE,KAAM/D,IAAQA,EAAG,CAC7E,CACO,SAASiE,GAAgB1C,EAAO,CACrC,SAAO,MAAQ,GAAGX,KAAOW,EAAM,sBAAsBA,EAAM,gBAAiB,CAAC,CAAC,EAAE,KAAMvB,GAAQA,CAAG,CACnG,CACO,SAASkE,GAAmB7C,EAAStB,EAAQ,CAClD,MAAMoE,GAAO,GAAGvD,KAAOS,YACvB,SAAO,MAAK8C,GAAMpE,CAAM,EAAE,KAAMC,IAAQA,EAAG,CAC7C,CACO,SAASoE,GAAkB/C,EAAStB,EAAQ,CACjD,SAAO,MAAK,GAAGa,KAAOS,YAAmBtB,EAAQ,EAAI,EAAE,KAAMC,IAAQA,EAAG,CAC1E,C,qHCpJO,SAASqE,EAAStE,EAAQ,CAC/B,MAAMa,GAAM,KACZ,SAAO,MAAKA,GAAK,CAAE,GAAGb,CAAO,EAAG,EAAI,EAAE,KAAMC,GAAQA,CAAG,CACzD,CACO,SAASsE,EAAWvE,EAAQ,CACjC,MAAMa,GAAM,KACZ,SAAO,MAAKA,GAAK,CAAE,GAAGb,CAAO,EAAG,EAAI,EAAE,KAAMC,GAAQA,CAAG,CACzD,CACO,SAASuE,GAAe,CAC7B,MAAM3D,EAAM,KACZ,SAAO,MAAIA,EAAK,CAAC,CAAC,EAAE,KAAMZ,IAAQA,EAAG,CACvC,CACO,SAASwE,GAAe,CAC7B,MAAM5D,EAAM,KACZ,SAAO,MAAIA,EAAK,CAAC,CAAC,EAAE,KAAMZ,IAAQA,EAAG,CACvC,CACO,SAASyE,EAAiB1E,EAAQ,CACvC,MAAMa,GAAM,yBACZ,OAAO,IAAIA,GAAKb,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC3C,CACO,SAAS0E,GAAmB,CACjC,MAAM9D,EAAM,KACZ,SAAO,MAAIA,EAAK,CAAC,CAAC,EAAE,KAAMZ,IAAQA,EAAG,CACvC,CACO,SAAS2E,GAAoB,CAClC,MAAM/D,EAAM,KACZ,SAAO,MAAIA,EAAK,CAAC,CAAC,EAAE,KAAMZ,IAAQA,EAAG,CACvC,CACO,SAAS4E,EAAU7E,EAAQ,CAChC,MAAMa,GAAM,KACZ,SAAO,MAAIA,GAAKb,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC3C,C,uJC/BA,MAAM6E,KADe,MAAU,EACH,KACtBjE,EAAMiE,EAAS,KAAe,KAC7B,SAASC,EAAe/E,EAAQ,CACrC,SAAO,MAAIa,EAAK,CAAE,OAAAb,CAAO,CAAC,EAAE,KAAMC,GAAQA,CAAG,CAC/C,CACO,SAAS+E,EAAchF,EAAQ,CACpC,SAAO,MAAKa,EAAKb,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC5C,CACO,SAASgF,EAAcjF,EAAQ,CACpC,SAAO,MAAIa,EAAM,IAAMb,EAAO,KAAMA,CAAM,CAC5C,CACO,SAASkF,EAAclF,EAAQ,CACpC,SAAO,MAAQ,GAAG,QAAWA,EAAO,cAAeA,CAAM,CAC3D,CACO,SAASmF,GAAkBnF,EAAQ,CACxC,MAAMM,EAAOwE,EAAS,GAAG,OAA2B,GAAG,QAAW9E,EAAO,cACzE,SAAO,MAAIM,EAAMN,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC5C,CACO,SAASmF,EAAqBpF,EAAQ,CAC3C,KAAM,CAAE,SAAAqF,EAAU,KAAAC,EAAM,SAAAC,CAAS,EAAIvF,EAC/BM,EAAOwE,EAAS,GAAG,OAA0B,GAAG,uBAA0BO,UAAiBC,cAAiBC,IAClH,cAAOvF,EAAO,KACd,OAAOA,EAAO,SACd,OAAOA,EAAO,YACP,MAAKM,EAAMN,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC7C,CACO,SAASuF,GAAoBxF,EAAQ,CAC1C,KAAM,CAAE,SAAAqF,CAAS,EAAIrF,EACfM,EAAOwE,EAAS,GAAG,OAA6B,GAAG,uBAA0BO,YACnF,cAAOrF,EAAO,YACP,MAAKM,EAAMN,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC7C,CACO,SAASwF,GAAuBzF,EAAQ,CAC7C,MAAMM,EAAO,GAAG,QAAWN,EAAO,qBAClC,SAAO,MAAKM,EAAM,CAAE,UAAWN,EAAO,SAAU,CAAC,EAAE,KAAMC,GAAQA,CAAG,CACtE,C,uKCzCA,MAAMH,KADe,MAAU,EACL,QACnB,SAAS4F,EAAcC,EAAa,CACzC,IAAI9E,EAAMf,EAAO,KACjB,OAAI6F,IACF9E,EAAMf,EAAO,KAAU,IAAM6F,EAAc,wBAEtC,MAAI9E,EAAK,CAAC,CAAC,EAAE,KAAMZ,GAAQA,CAAG,CACvC,CACO,SAAS2F,EAAeC,EAAWF,EAAa,CACrD,IAAI9E,EAAMf,EAAO,KAAkB,IAAI+F,EAAU,OACjD,OAAIF,IACF9E,EAAMf,EAAO,KAAU,IAAM6F,EAAc,qBAAuBE,EAAU,SAEvE,MAAIhF,EAAK,CACd,OAAQ,CACN,UAAWgF,EAAU,SACvB,CACF,CAAC,EAAE,KAAM5F,GAAQA,CAAG,CACtB,CACO,SAAS6F,EAAaC,EAAMJ,EAAa,CAC9C,IAAI9E,EAAMf,EAAO,KACjB,OAAI6F,IACF9E,EAAMf,EAAO,KAAU,IAAM6F,EAAc,eAEtC,MAAK9E,EAAKkF,CAAI,EAAE,KAAM9F,GAAQA,CAAG,CAC1C,CACO,SAAS+F,EAAaC,EAAMF,EAAMJ,EAAa,CACpD,IAAI9E,EAAMf,EAAO,KAAU,IAAImG,IAC/B,OAAIN,IACF9E,EAAMf,EAAO,KAAU,IAAM6F,EAAc,YAAcM,MAEpD,MAAIpF,EAAKkF,CAAI,EAAE,KAAM9F,GAAQA,CAAG,CACzC,CACO,SAASiG,EAAWC,EAAU,CACnC,MAAMtF,EAAMf,EAAO,KACnB,SAAO,MAAIe,EAAK,CACd,OAAQ,CAAE,SAAUsF,GAAsB,EAAG,CAC/C,CAAC,EAAE,KAAMlG,GAAQA,CAAG,CACtB,CACO,SAASmG,EAAaH,EAAMN,EAAa,CAC9C,IAAI9E,EAAMf,EAAO,KAAU,IAAImG,IAC/B,OAAIN,IACF9E,EAAMf,EAAO,KAAU,IAAM6F,EAAc,YAAcM,MAEpD,MAAIpF,EAAK,CAAC,CAAC,EAAE,KAAMZ,GAAQA,CAAG,CACvC,CACO,SAASoG,GAAaJ,EAAMN,EAAa,CAC9C,IAAI9E,EAAMf,EAAO,KAAU,IAAImG,IAC/B,OAAIN,IACF9E,EAAMf,EAAO,KAAU,IAAM6F,EAAc,YAAcM,MAEpD,MAAQpF,EAAK,CAAC,CAAC,EAAE,KAAMZ,GAAQA,CAAG,CAC3C,CACO,SAASqG,EAAkB9E,EAAO,CACvC,MAAM+E,EAAU,KAAU,IAAI/E,EAAM,sBACpC,SAAO,MAAI+E,EAAS,CAAC,CAAC,EAAE,KAAMtG,GAAQA,CAAG,CAC3C,CACO,SAASuG,GAA8BhF,EAAO,CACnD,MAAM+E,EAAU,KAAU,IAAI/E,EAAM,4BACpC,SAAO,MAAI+E,EAAS,CAAC,CAAC,EAAE,KAAMtG,GAAQA,CAAG,CAC3C,CACO,SAASwG,GAA+Bd,EAAa3F,EAAQ,CAClE,MAAMuG,EAAU,KAAU,IAAIZ,kBAC9B,SAAO,MAAKY,EAASvG,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAChD,CACO,SAASyG,EAAgCf,EAAaM,EAAM,CACjE,MAAMM,EAAU,KAAU,IAAIZ,mBAA6BM,IAC3D,SAAO,MAAQM,EAAS,CAAC,CAAC,EAAE,KAAMtG,GAAQA,CAAG,CAC/C,C,8JCpEA,MAAMH,KADe,MAAU,EACL,QACnB,SAAS6G,EAAmB3G,EAAQ,CACzC,MAAMa,EAAMf,EAAO,KACb,CAAE,eAAA8G,EAAgB,SAAAC,CAAS,EAAI7G,EACrC,SAAO,MAAIa,EAAK,CAAE,OAAQ,CAAE,KAAM+F,EAAgB,SAAAC,CAAS,CAAE,CAAC,EAAE,KAAM5G,GAAQA,CAAG,CACnF,CACO,SAAS6G,EAAiB9G,EAAQ,CACvC,MAAMa,EAAMf,EAAO,GAAG,QAAcE,EAAO,OAC3C,SAAO,MAAIa,EAAK,CAAE,OAAQ,CAAE,KAAMb,EAAO,IAAK,CAAE,CAAC,EAAE,KAAMC,GAAQA,CAAG,CACtE,CACO,SAAS8G,EAAuB/G,EAAQ,CAC7C,MAAMa,EAAMf,EAAO,GAAG,QAAcE,EAAO,cACrCgH,EAAa,CACjB,WAAYhH,EAAO,WACnB,KAAMA,EAAO,IACf,EACA,SAAO,MAAIa,EAAKmG,CAAU,EAAE,KAAM/G,GAAQA,CAAG,CAC/C,CACO,SAASgH,EAAejH,EAAQ,CACrC,MAAMa,EAAMf,EAAO,GAAG,QAAcE,EAAO,gBACrCgH,EAAa,CACjB,KAAMhH,EAAO,eACb,SAAUA,EAAO,QACnB,EACA,SAAO,MAAIa,EAAKmG,CAAU,EAAE,KAAM/G,GAAQA,CAAG,CAC/C,CACO,SAASiH,GAA0B,CACxC,MAAM9C,EAAOtE,EAAO,KACpB,SAAO,MAAIsE,EAAM,CAAE,OAAQ,CAAE,KAAM,WAAY,CAAE,CAAC,EAAE,KAAMnE,GAAQA,CAAG,CACvE,CACO,SAASkH,EAA0BnH,EAAQ,CAChD,MAAMoE,EAAO,GAAGtE,EAAO,QAAcE,EAAO,OAC5C,SAAO,MAAIoE,EAAM,CAAE,OAAQ,CAAE,KAAM,WAAY,CAAE,CAAC,EAAE,KAAMnE,GAAQA,CAAG,CACvE,CACO,SAASmH,IAAuB,CACrC,MAAMhD,EAAOtE,EAAO,KACpB,SAAO,MAAIsE,EAAM,CAAE,OAAQ,CAAE,KAAM,QAAS,CAAE,CAAC,EAAE,KAAMnE,GAAQA,CAAG,CACpE,CACO,SAASoH,EAAuBrH,EAAQ,CAC7C,MAAMoE,EAAO,GAAGtE,EAAO,QAAcE,EAAO,OAC5C,SAAO,MAAIoE,EAAM,CAAE,OAAQ,CAAE,KAAM,QAAS,CAAE,CAAC,EAAE,KAAMnE,GAAQA,CAAG,CACpE,CACO,SAASqH,GAAoBtH,EAAQ,CAC1C,MAAMoE,EAAOtE,EAAO,KACpB,SAAO,MAAIsE,EAAM,CAAE,OAAQ,CAAE,KAAM,QAAS,gBAAiBpE,EAAO,eAAgB,CAAE,CAAC,EAAE,KACtFC,GAAQA,CACX,CACF,CACO,SAASsH,GAAsBvH,EAAQ,CAC5C,MAAMoE,EAAO,GAAGtE,EAAO,QAAcE,EAAO,OAC5C,SAAO,MAAIoE,EAAM,CAAE,OAAQ,CAAE,KAAM,OAAQ,CAAE,CAAC,EAAE,KAAMnE,GAAQA,CAAG,CACnE,C,mFCvDO,MAAMuH,EAAmB,yBACnBC,EAAc,wBACdC,EAAe,qBACfC,EAAiB,uBACjBC,EAAe,yBACfC,EAAqB,2BACrBC,EAA6B,mCAC7BC,EAA2B,iCAC3BC,EAAoB,0BACpBC,EAAuB,6BACvBC,EAAyB,+BACzBC,GAA6B,mCAC7BC,EAAgC,sCAChCC,GAAkC,wCAClCC,GAA2B,iCAC3BC,EAAyB,+BACzBC,EAAqB,2BACrBC,EAAoB,0BACpBC,EAAwB,8BACxBC,EAAiC,uCACjCC,EAA2B,iCAC3BC,GAAsB,4BACtBC,EAA0B,gCAC1BC,EAAwB,8BACxBC,GAA2B,iCAC3BC,GAA4B,kCAC5BC,EAAiB,uBACjBC,EAAkC,wCAClCC,GAA2B,iCAC3BC,GAAgB,sBAChBC,GAA8B,mCAC9BC,GAAqC,0CACrCC,GAA4B,KAC5BC,EAAsB,I,qGC9BnC,MAAM5J,KAAe,MAAU,EACzBC,EAAOD,EAAa,MAAQA,EAAa,QACxC,SAAS6J,EAAQ1J,EAAQ,CAC9B,MAAMa,EAAMf,EAAO,KACnB,SAAO,MAAIe,EAAK,CAAE,OAAAb,CAAO,CAAC,EAAE,KAAMC,IAAQA,EAAG,CAC/C,CACO,SAAS0J,EAAU3J,EAAQ,CAChC,MAAMa,EAAMf,EAAO,KAAS,YAAcE,EAAO,QACjD,SAAO,MAAKa,EAAKb,CAAM,CACzB,CACO,SAAS4J,EAAU5J,EAAQ,CAChC,MAAMa,EAAMf,EAAO,GAAG,QAAUE,EAAO,OACvC,SAAO,MAAQa,EAAKb,CAAM,CAC5B,CACO,SAAS6J,EAAU7J,EAAQ,CAChC,MAAMa,EAAMf,EAAO,GAAG,QAAUE,EAAO,OACvC,SAAO,MAAIa,EAAKb,CAAM,CACxB,C,iICjBA,MAAMH,KAAe,MAAU,EACzBC,EAAOD,EAAa,MAAQA,EAAa,QACxC,SAASiK,EAAc9J,EAAQ,CACpC,SAAO,MAAIF,EAAO,KAAc,CAAE,OAAAE,CAAO,CAAC,EAAE,KAAMC,IAAQA,EAAG,CAC/D,CACO,SAAS8J,EAAa/J,EAAQ,CACnC,SAAO,MAAI,GAAGF,EAAO,QAAgBE,EAAO,KAAM,CAAE,OAAAA,CAAO,CAAC,EAAE,KAAMC,IAAQA,EAAG,CACjF,CACO,SAAS+J,EAAahK,EAAQ,CACnC,SAAO,MAAK,GAAGF,EAAO,QAAgBE,EAAO,YAAaA,CAAM,CAClE,CACO,SAASiK,EAAcjK,EAAQ,CACpC,SAAO,MAAK,GAAGF,EAAO,QAAgBE,EAAO,aAAcA,CAAM,CACnE,CACO,SAASkK,EAAUlK,EAAQ,CAChC,SAAO,MAAK,GAAGF,EAAO,QAAgBE,EAAO,aAAcA,CAAM,CACnE,CACO,SAASmK,EAAcnK,EAAQ,CACpC,SAAO,MAAK,GAAGF,EAAO,QAAgBE,EAAO,aAAc,CAAE,IAAKA,EAAO,GAAI,CAAC,CAChF,CACO,SAASoK,GAAgBpK,EAAQ,CACtC,SAAO,MAAK,GAAGF,EAAO,QAAgBE,EAAO,eAAgB,CAAC,CAAC,CACjE,C,wPCzBO,MAAMqK,EAAc,uBACdC,EAAa,sBACbC,EAAS,iBACTC,EAAe,wBACfC,EAAkB,2BAClBC,EAAU,mBACVC,EAAU,mBACVC,EAAY,kBACZC,EAAS,eACTC,EAAiB,wBACjBC,EAAa,qBACbC,GAAsB,qBACtBC,EAA0B,0BAC1BC,GAA2B,KAC3BC,GAA0B,0BAC1BC,EAA6B,KAC7BC,EAAyB,yBACzBC,EAAgC,gCAChCC,EAA0B,0BAC1BC,EAAQ,gBACRC,EAAQ,gBACRC,GAAsB,sBACtBC,EAAU,kBACVC,EAAkB,2BAClBC,GAAa,qBACbC,GAAS,KACTC,EAAe,wB,+NCpB5B,MAAMlL,KAFe,MAAU,EACH,KACP,KAAe,KAC7B,SAASmL,EAAehM,EAAQ,CACrC,SAAO,MAAIa,EAAK,CAAE,OAAAb,CAAO,CAAC,EAAE,KAAMC,IAAQA,EAAG,CAC/C,CACO,SAASgM,EAAcjM,EAAQ,CACpC,SAAO,MAAKa,EAAKb,CAAM,EAAE,KAAMC,IAAQA,EAAG,CAC5C,CACO,SAASiM,EAAclM,EAAQ,CACpC,MAAMuG,GAAU,KAAU,IAAIvG,EAAO,OACrC,SAAO,MAAIuG,GAASvG,CAAM,EAAE,KAAMC,IAAQA,EAAG,CAC/C,CACO,SAASkM,EAAcnM,EAAQ,CACpC,MAAMuG,GAAU,KAAU,IAAIvG,EAAO,OACrC,SAAO,MAAQuG,GAAS,CAAC,CAAC,EAAE,KAAMtG,IAAQA,EAAG,CAC/C,CACO,SAASmM,GAAiBpM,EAAQ,CACvC,MAAMuG,GAAU,KAAU,IAAIvG,EAAO,cACrC,SAAO,MAAIuG,GAAS,CAAC,CAAC,EAAE,KAAMtG,IAAQA,EAAG,CAC3C,CACO,SAASoM,EAAqBrM,EAAQ,CAC3C,MAAMuG,GAAU,KAAU,IAAIvG,EAAO,sBACrC,SAAO,MAAIuG,GAAS,CAAC,CAAC,EAAE,KAAMtG,IAAQA,EAAG,CAC3C,CACO,SAASqM,GAAsBtM,EAAQ,CAC5C,MAAMuG,GAAU,KAAU,IAAIvG,EAAO,0BACrC,SAAO,MAAIuG,GAAS,CAAC,CAAC,EAAE,KAAMtG,IAAQA,EAAG,CAC3C,CACO,SAASsM,GAAgB/K,EAAO,CACrC,MAAM+E,GAAU,KAAU,IAAI/E,EAAM,oBACpC,SAAO,MAAI+E,GAAS,CAAC,CAAC,EAAE,KAAMtG,IAAQA,EAAG,CAC3C,CACO,SAASuM,EAAmBhL,EAAOxB,GAAQ,CAChD,MAAMuG,GAAU,KAAU,IAAI/E,EAAM,oBACpC,SAAO,MAAK+E,GAASvG,EAAM,EAAE,KAAMC,GAAQA,CAAG,CAChD,CACO,SAASwM,EAAmBjL,EAAOxB,GAAQ,CAChD,MAAMuG,GAAU,KAAU,IAAI/E,EAAM,qBAAqBA,EAAM,WAC/D,SAAO,MAAI+E,GAASvG,EAAM,EAAE,KAAMC,GAAQA,CAAG,CAC/C,CACO,SAASyM,EAAmBlL,EAAO,CACxC,MAAM+E,GAAU,KAAU,IAAI/E,EAAM,qBAAqBA,EAAM,WAC/D,SAAO,MAAQ+E,GAAS,CAAC,CAAC,EAAE,KAAMtG,IAAQA,EAAG,CAC/C,CACO,SAAS0M,EAAgBnL,EAAO,CACrC,MAAM+E,GAAU,KAAU,IAAI/E,EAAM,oBACpC,SAAO,MAAI+E,GAAS,CAAE,OAAQ/E,CAAM,CAAC,EAAE,KAAMvB,IAAQA,EAAG,CAC1D,CACO,SAAS2M,EAAmBpL,EAAOxB,GAAQ,CAChD,MAAMuG,GAAU,KAAU,IAAI/E,EAAM,oBACpC,SAAO,MAAK+E,GAASvG,EAAM,EAAE,KAAMC,GAAQA,CAAG,CAChD,CACO,SAAS4M,EAAkBrL,EAAOxB,GAAQ,CAC/C,MAAMuG,GAAU,KAAU,IAAI/E,EAAM,qBAAqBA,EAAM,WAC/D,SAAO,MAAI+E,GAASvG,EAAM,EAAE,KAAMC,GAAQA,CAAG,CAC/C,CACO,SAAS6M,GAAkBtL,EAAOxB,GAAQ,CAC/C,MAAMuG,GAAU,KAAU,IAAI/E,EAAM,qBAAqBA,EAAM,WAC/D,SAAO,MAAQ+E,GAASvG,EAAM,EAAE,KAAMC,GAAQA,CAAG,CACnD,CACO,SAAS8M,EAA4BpH,EAAa,CACvD,MAAMY,GAAU,KAAU,IAAIZ,cAC9B,SAAO,MAAIY,GAAS,CAAC,CAAC,EAAE,KAAMtG,IAAQA,EAAG,CAC3C,C,8ECnEO,MAAM+M,EAAO,CAACnM,EAAKb,EAAQ2B,OACzB,KAAc,EAAE,iBAAiB,EAAE,KAAKd,EAAKb,CAAM,EAAE,KAAMC,GACzDA,GAAOA,EAAI,IACnB,EAAE,MAAOgN,GAAQ,IAChB,MAAeA,EAAKjN,EAAO,aAAe2B,CAAW,CACvD,CAAC,EAEUuL,EAAM,CAACrM,EAAKb,OAChB,KAAc,EAAE,iBAAiB,EAAE,IAAIa,EAAKb,CAAM,EAAE,KAAMC,GACxDA,GAAOA,EAAI,IACnB,EAAE,MAAOgN,GAAQ,IAChB,MAAeA,EAAKjN,EAAO,WAAW,CACxC,CAAC,EAEUmN,EAAU,CAACtM,EAAKb,EAAQ2B,OAC5B,KAAc,EAAE,iBAAiB,EAAE,OAAOd,EAAKb,CAAM,EAAE,KAAMC,GAC3DA,GAAOA,EAAI,IACnB,EAAE,MAAOgN,GAAQ,IAChB,MAAeA,EAAKjN,EAAO,aAAe2B,CAAW,CACvD,CAAC,EAEUyL,EAAM,CAACvM,EAAKb,EAAQ2B,OACxB,KAAc,EAAE,iBAAiB,EAAE,IAAId,EAAKb,CAAM,EAAE,KAAMC,GACxDA,GAAOA,EAAI,IACnB,EAAE,MAAOgN,GAAQ,IAChB,MAAeA,EAAKjN,EAAO,aAAe2B,CAAW,CACvD,CAAC,C,sECzBH,MAAM0L,KAAY,MAAU,EACfC,EAAUD,EAAU,SAAWA,EAAU,KAC/C,SAASE,GAAiB,CAC/B,MAAM1M,EAAM,sBACZ,SAAO,MAAIA,EAAK,CAAC,CAAC,CACpB,CACO,SAAS6D,EAAiB1E,EAAQ,CACvC,MAAMa,EAAM,sBACZ,SAAO,MAAIA,EAAKb,EAAQ,EAAI,CAC9B,C,gHCNA,MAAM8E,KADe,MAAU,EACH,KACrB,SAAS0I,EAAUxN,EAAQ,CAChC,MAAMa,GAAMiE,EAAS,KAAiB,KACtC,SAAO,MAAIjE,GAAK,CAAE,OAAAb,CAAO,CAAC,EAAE,KAAMC,GAAQA,CAAG,CAC/C,CACO,SAASwN,EAAazN,EAAQ,CACnC,MAAMa,GAAMiE,EAAS,KAAiB,KACtC,SAAO,MAAKjE,GAAKb,CAAM,CACzB,CACO,SAAS0N,EAAa1N,EAAQ,CACnC,MAAMa,GAAMiE,EAAS,KAAiB,GAAG,QAAa9E,EAAO,OAC7D,SAAO,MAAQa,GAAKb,CAAM,CAC5B,CACO,SAAS2N,EAAa3N,EAAQ,CACnC,MAAMa,GAAMiE,EAAS,KAAiB,GAAG,QAAa9E,EAAO,OAC7D,SAAO,MAAIa,GAAKb,CAAM,CACxB,C,uKCjBA,MAAMF,KADe,MAAU,EACL,QACnB,SAAS8N,EAAa5N,EAAQ,CACnC,MAAMa,EAAMf,EAAO,GAAG,QAAeE,EAAO,oBAC5C,SAAO,MAAIa,EAAK,CAAC,CAAC,EAAE,KAAMZ,GAAQA,CAAG,CACvC,CACO,SAAS4N,EAAeC,EAAY9N,EAAQ,CACjD,MAAMa,EAAMf,EAAO,GAAG,QAAegO,EAAW,qBAAqBA,EAAW,eAChF,SAAO,MAAIjN,EAAKb,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC3C,CACO,SAAS8N,EAAeD,EAAY9N,EAAQ,CACjD,MAAMa,EAAMf,EAAO,GAAG,QAAegO,EAAW,oBAChD,SAAO,MAAKjN,EAAKb,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC5C,CACO,SAAS+N,EAAqBhO,EAAQ,CAC3C,MAAMa,EAAMf,EAAO,GAAG,eAAeE,EAAO,qBAAqBA,EAAO,uBACxE,OAAO,IAAIa,EAAKb,CAAM,EAAE,KAAMC,GAAQA,CAAG,CAC3C,CACO,SAASgO,EAAejO,EAAQ,CACrC,MAAMa,EAAMf,EAAO,GAAG,QAAeE,EAAO,qBAAqBA,EAAO,OACxE,SAAO,MAAIa,EAAK,CAAC,CAAC,CACpB,CACO,SAASqN,EAAqBlO,EAAQ,CAC3C,MAAMa,EAAMf,EAAO,GAAG,QAAeE,EAAO,qBAAqBA,EAAO,wBAAwBA,EAAO,SACvG,SAAO,MAAIa,EAAK,CAAC,CAAC,CACpB,CACO,SAASsN,GAAsBnO,EAAQ,CAC5C,MAAMa,EAAMf,EAAO,GAAG,QAAeE,EAAO,qBAAqBA,EAAO,wBAAwBA,EAAO,cACvG,SAAO,MAAIa,EAAK,CAAE,OAAQ,CAAE,KAAMb,EAAO,IAAK,CAAE,CAAC,CACnD,CACO,SAASoO,EAAwBpO,EAAQ,CAC9C,MAAMa,EAAMf,EAAO,GAAG,QAAeE,EAAO,qBAAqBA,EAAO,wBAAwBA,EAAO,gBACvG,SAAO,MAAIa,EAAK,CAAE,OAAQ,CAAE,KAAMb,EAAO,IAAK,CAAE,CAAC,CACnD,CACO,SAASqO,GAAyBrO,EAAQ,CAC/C,MAAMa,EAAMf,EAAO,GAAG,QAAeE,EAAO,qBAAqBA,EAAO,wBAAwBA,EAAO,iBACvG,SAAO,MAAIa,EAAK,CAAE,OAAQ,CAAE,KAAMb,EAAO,IAAK,CAAE,CAAC,CACnD,CACO,SAASsO,GAAetO,EAAQ,CACrC,MAAMa,EAAMf,EAAO,GAAG,QAAeE,EAAO,qBAAqBA,EAAO,OACxE,SAAO,MAAQa,EAAK,CAAC,CAAC,CACxB,CACO,SAAS0N,EAAuBC,EAAO,CAC5C,MAAM3N,EAAMf,EAAO,GAAG,OACtB,SAAO,MAAIe,EAAK,CAAE,OAAQ,CAAE,KAAM,eAAgB,MAAA2N,CAAM,CAAE,CAAC,EAAE,KAAMvO,GAAQA,CAAG,CAChF,CACO,SAASwO,EAAyBzO,EAAQ,CAC/C,MAAMa,EAAMf,EAAO,GAAG,QAAcE,EAAO,OAC3C,SAAO,MAAIa,EAAK,CAAE,OAAQ,CAAE,KAAM,cAAe,CAAE,CAAC,EAAE,KAAMZ,GAAQA,CAAG,CACzE,C,+FC/CA,MAAMyO,EAAY,CAChB,GAAI,CACF,YAAa,CACf,EACA,GAAI,CACF,YAAa,CACf,CACF,EACMC,KAAkB,MAAY,EACpC,QAAS,IAAgB,EAAE,KAAK,CAC9B,UAAAD,EACA,IAAKC,EACL,aAAc,GAEd,cAAe,CACb,YAAa,EAEf,CACF,CAAC,EACD,QAAe,G,onGCvBR,SAASC,EAAGC,EAAO,CACxB,OAAIA,EAAM,UACDA,EAAM,SAEQ,gBAAoB,MAAO,IAAI,CACxD,C,gBCJO,MAAMC,EAAeD,GAAU,CACpC,KAAM,CAAE,EAAAE,CAAE,KAAIC,GAAA,GAAe,EACvB,CAAE,SAAAC,EAAU,UAAAC,EAAY,EAAG,EAAIL,EACrC,OAAuB,gBAAoB,OAAQ,CAAE,UAAAK,CAAU,EAAGH,EAAEE,CAAQ,CAAC,CAC/E,ECDaE,GAAY,SAASN,EAAO,CACvC,KAAM,CAAE,MAAAO,EAAO,SAAAC,EAAU,WAAAC,EAAY,eAAAC,EAAgB,eAAAC,EAAgB,WAAAC,CAAW,EAAIZ,EACpF,OAAuB,gBAAoB,MAAO,CAAE,UAAW,eAAgB,EAAmB,gBAAoB,MAAO,KAAsB,gBAAoB,OAAQ,CAAE,UAAW,oBAAqB,EAAmB,gBAAoBC,EAAa,KAAMM,CAAK,CAAC,EAAGC,GAA4B,gBAAoB,OAAQ,CAAE,UAAW,uBAAwB,EAAmB,gBAAoBP,EAAa,KAAMO,CAAQ,CAAC,CAAC,EAAmB,gBAAoB,MAAO,CAAE,UAAW,aAAc,EAAGC,GAAcA,EAAW,IAAKI,GACthBA,CACR,EAAmB,gBAAoBd,EAAI,CAAE,UAAWW,CAAe,EAAmB,gBAAoB,IAAQ,CAAE,KAAME,GAA0B,SAAU,KAAM,UAAW,QAASD,CAAe,EAAmB,gBAAoBV,EAAa,KAAMS,GAAkC,EAAE,CAAC,CAAC,CAAC,CAAC,CAChT,ECVO,MAAMI,EAAa,CACxB,YAAYC,EAAO,CACjB,MAAMC,EAAQD,EAAM,QAAQ,IAAK,CAAC,EAClC,IAAIE,EAAOF,EACPC,EAAQ,KACVC,EAAOF,EAAM,MAAM,EAAGC,CAAK,GAE7B,MAAME,EAAKD,EAAK,MAAM,GAAG,EACrBC,EAAG,QAAU,GACf,KAAK,KAAOA,EAAG,CAAC,EAChB,KAAK,MAAQA,EAAG,CAAC,IAEjB,KAAK,KAAOA,EAAG,CAAC,EAChB,KAAK,MAAQ,KAEXF,EAAQ,IACQD,EAAM,MAAMC,EAAQ,CAAC,GACtB,KACf,KAAK,KAAO,IAAIF,GAAaC,EAAM,MAAMC,EAAQ,CAAC,CAAC,EAGzD,CACF,CACO,SAASG,EAAgBC,EAAStF,EAASuF,EAAU,CAC1D,GAAI,CAACD,EACH,MAAO,GAQT,GANI,CAACC,GAGD,CAACA,EAAS,qBAAuB,CAACA,EAAS,oBAG3C,CAACvF,IACC,CAACuF,EAAS,qBAAuBA,EAAS,oBAAoB,QAAU,GAC1E,MAAO,GAGX,IAAIC,EAAcD,EAAS,qBAAuB,CAAC,EACnD,GAAIvF,GAAWuF,EAAS,mBACtB,GAAIvF,GAAW,IACb,OAAO,KAAKuF,EAAS,kBAAkB,EAAE,IAAKE,GAAQ,CACpD,GAAIF,EAAS,mBAAoB,CAC/B,MAAMG,EAAQH,EAAS,mBAAmBE,CAAG,EACzCC,IACFF,EAAcA,EAAY,OAAOE,CAAK,EAE1C,CACF,CAAC,MACI,CACL,MAAMC,EAAkBJ,EAAS,mBAAmBvF,CAAO,EACvD2F,IACFH,EAAcA,EAAY,OAAOG,CAAe,EAEpD,CAEF,QAASC,EAAI,EAAGA,EAAIJ,EAAY,OAAQI,IAEtC,GADeJ,EAAYI,CAAC,EAAE,OAAO,YAAY,GACnC,QAAUC,EAAMP,EAASE,EAAYI,CAAC,CAAC,EACnD,MAAO,GAGX,QAASA,EAAI,EAAGA,EAAIJ,EAAY,OAAQI,IAAK,CAC3C,MAAME,EAASN,EAAYI,CAAC,EAAE,OAAO,YAAY,EACjD,IAAKE,GAAU,SAAWA,GAAU,KAAOD,EAAMP,EAASE,EAAYI,CAAC,CAAC,EACtE,MAAO,EAEX,CACA,MAAO,EACT,CACO,SAASC,EAAMP,EAASS,EAAY,CAIzC,GAHI,CAACA,EAAW,QAAQ,SAAST,EAAQ,MAAM,GAAK,CAACS,EAAW,QAAQ,SAAS,GAAG,GAGhF,CAACA,EAAW,WAAW,OACzB,MAAO,GAET,QAASH,EAAI,EAAGA,EAAIG,EAAW,WAAW,OAAQH,IAChD,GAAII,EAAc,IAAIhB,GAAaM,EAAQ,QAAQ,EAAG,IAAIN,GAAae,EAAW,UAAUH,CAAC,CAAC,CAAC,EAC7F,MAAO,GAGX,MAAO,EACT,CACO,SAASI,EAAcC,EAAiBC,EAAoB,CACjE,IAAIC,EAAUD,EACVE,EAAgBH,EACpB,KAAOE,GAAWA,EAAQ,MAAM,CAC9B,GAAIA,EAAQ,MAAQ,IAClB,MAAO,GAQT,GANI,CAACC,GAAiB,CAACA,EAAc,MAGjCD,EAAQ,MAAQC,EAAc,MAG9BD,EAAQ,OAASC,EAAc,OAASD,EAAQ,OAAS,KAAOC,EAAc,OAAS,IACzF,MAAO,GAETD,EAAUA,EAAQ,KAClBC,EAAgBA,EAAc,IAChC,CACA,MAAI,EAAAA,GAAiBA,EAAc,KAIrC,CCzGA,MAAMC,EAAcnC,GACd,CAACA,EAAM,UAGP,CAACmB,EAAgBnB,EAAM,QAASA,EAAM,QAASA,EAAM,QAAQ,EACxD,KAEFA,EAAM,SAEf,KAAe,WAASoC,IACf,CAAE,GAAGA,EAAM,IAAK,EACxB,EAAED,CAAU,E,gDCmDb,SA5DenC,GACU,gBAAoB,MAAO,CAAE,UAAW,QAAS,MAAOA,EAAM,KAAM,EAAmB,gBAAoB,MAAO,KAAsB,gBAAoBD,EAAI,CAAE,UAAW,CAACC,EAAM,QAAS,EAAmB,gBACrO,MACA,CACE,MAAO,CAAE,MAAOA,EAAM,SAAU,EAChC,QAAS,gBACT,QAAS,MACT,MAAO,6BACP,OAAQ,MACV,EACgB,gBACd,OACA,CACE,EAAG,0aACH,OAAQ,OACR,KAAM,SACR,CACF,EACgB,gBACd,OACA,CACE,EAAG,ogBACH,OAAQ,OACR,KAAM,SACR,CACF,EACgB,gBACd,OACA,CACE,EAAG,ggBACH,OAAQ,OACR,KAAM,SACR,CACF,EACgB,gBACd,OACA,CACE,EAAG,gYACH,OAAQ,OACR,KAAM,SACR,CACF,EACgB,gBACd,OACA,CACE,EAAG,yYACH,OAAQ,OACR,KAAM,SACR,CACF,EACgB,gBACd,OACA,CACE,EAAG,6XACH,OAAQ,OACR,KAAM,SACR,CACF,CACF,CAAC,CAAC,EAAmB,gBAAoB,MAAO,CAAE,UAAW,SAAU,EAAGA,EAAM,SAA2B,gBAAoBC,EAAa,KAAM,YAAY,CAAC,CAAC,E,0BCtDlK,MAAMoC,WAAoB,WAAgB,CACxC,YAAYrC,EAAO,CACjB,MAAMA,CAAK,EACX,KAAK,YAAc,CAACgB,EAAOsB,IAAM,CAC/BA,EAAE,eAAe,EACjB,KAAM,CAAE,iBAAAC,CAAiB,EAAI,KAAK,MAClC,KAAK,SAAS,CACZ,iBAAkB,CAACA,EACnB,WAAYvB,CACd,CAAC,CACH,EACA,KAAK,MAAQ,CACX,iBAAkB,GAClB,WAAY,CACd,CACF,CACA,QAAS,CACP,KAAM,CAAE,IAAAwB,EAAK,IAAAC,CAAI,EAAI,IACf,CAAE,WAAAC,EAAY,WAAAC,EAAY,cAAAC,EAAe,WAAAC,CAAW,EAAI,KAAK,MAC7DC,EAAeC,GAAQ,CAC3B,OAAQA,EAAK,CACX,IAAK,QACH,MAAO,MACT,IAAK,OACH,MAAO,MACT,IAAK,KACH,MAAO,QACT,QACE,MAAO,EACX,CACF,EACMC,EAAa5L,GACVA,EAAK,MAAM,GAAG,EAAE,IAAK6L,GACtBA,EAAI,OAAS,EACRA,EAAI,YAAY,EAAE,CAAC,EAErBA,CACR,EAAE,SAAS,EAAE,QAAQ,IAAK,EAAE,EAEzBC,EAAiB,CAAC,EACxBR,EAAW,IAAKS,GAAU,CACxB,MAAMC,EAASR,GAAe,OAAQS,GAC7BA,EAAY,MAAQF,EAAM,IAClC,EACGN,EAAW,OAAS,GAAK,IAAC,MAAkBM,EAAM,KAAMN,CAAU,GAAG,SAGrEO,GAAUA,EAAO,OAAS,GAAKA,EAAO,CAAC,EAAE,OAAS,UACpDF,EAAe,QAAQC,CAAK,EAE5BD,EAAe,KAAKC,CAAK,EAE7B,CAAC,EACD,MAAMG,EAAS,gEACf,OAAuB,gBAAoB,MAAO,KAAsB,gBAAoBvD,EAAI,CAAE,UAAW2C,CAAW,EAAmB,gBAAoBF,EAAK,CAAE,KAAM,EAAK,EAAGU,EAAe,IAAKrC,GAAS,CAC/M,KAAM,CAAE,KAAAzJ,EAAM,KAAAmM,EAAM,QAAAC,EAAS,YAAAC,EAAa,KAAAC,EAAM,aAAAC,CAAa,EAAI9C,EAC3DuC,EAASR,GAAe,OAAQS,GAC7BA,EAAY,MAAQjM,CAC5B,EACD,OAAuB,gBAAoBqL,EAAK,CAAE,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAK,GAAI,UAAW,sBAAuB,IAAKrL,CAAK,EAAmB,gBAAoB,KAAM,CAAE,UAAQwM,EAAA,GAAO,EAAE,KAAM,cAAe,MAAO,EAAmB,gBAAoB,IAAK,CAAE,QAAS,IAAMjB,EAAWvL,CAAI,CAAE,EAAmB,gBAAoB,MAAO,CAAE,UAAW,6BAA8B,EAAmB,gBAAoB2I,EAAI,CAAE,UAAWwD,GAAQA,GAAQ,MAAO,EAAmB,gBAAoB,MAAO,CAAE,IAAKA,CAAK,CAAC,CAAC,EAAmB,gBAAoBxD,EAAI,CAAE,UAAW,CAACwD,GAAQA,IAAS,MAAO,EAAmB,gBACjnB,MACA,CACE,MAAO,CACL,QAAS,eACT,cAAe,SACf,QAAS,UACT,MAAO,OACP,OAAQ,OACR,aAAc,MACd,gBAAiB,OACjB,UAAW,SACX,WAAY,MACd,CACF,EACgB,gBAAoB,OAAQ,CAAE,MAAO,CAAE,MAAO,UAAW,SAAU,KAAM,CAAE,EAAGP,EAAU5L,CAAI,CAAC,CAC/G,CAAC,CAAC,CAAC,EAAmB,gBAAoB,MAAO,CAAE,UAAW,kCAAmC,EAAmB,gBAAoBoL,EAAK,CAAE,UAAW,eAAgB,EAAmB,gBAAoBC,EAAK,CAAE,KAAM,KAAM,UAAW,cAAe,EAAmB,gBAAoB,IAAK,CAAE,QAAS,IAAME,EAAWvL,CAAI,CAAE,EAAGA,CAAI,CAAC,EAAmB,gBAAoB2I,EAAI,CAAE,UAAW4D,GAAgBA,GAAgB,cAAe,EAAmB,gBAAoBlB,EAAK,CAAE,KAAM,IAAK,UAAW,WAAY,EAAmB,gBAAoB,IAAS,CAAE,QAAyB,gBAAoB,IAAK,CAAE,MAAO,QAAS,EAAG,cAAc,CAAE,EAAGa,CAAM,CAAC,CAAC,CAAC,EAAmB,gBAAoBd,EAAK,CAAE,UAAW,cAAe,EAAmB,gBAAoB,KAAM,CAAE,UAAW,2BAA4B,MAAOiB,CAAY,EAAGA,CAAW,CAAC,EAAmB,gBAAoBjB,EAAK,CAAE,UAAW,kBAAmB,EAAGkB,GAAM,IAAKX,GACj6B,gBAAoB,IAAK,CAAE,MAAOA,EAAK,MAAO,CAAE,YAAa,KAAM,EAAG,MAAOD,EAAYC,CAAG,EAAG,IAAKA,CAAI,EAAGA,CAAG,CACtI,CAAC,EAAmB,gBAAoBP,EAAK,CAAE,UAAW,0BAA2B,EAAmB,gBAAoBC,EAAK,CAAE,KAAM,IAAK,EAAmB,gBAAoB,OAAQ,KAAMe,GAAW,OAAO,CAAC,EAAmB,gBAAoBf,EAAK,CAAE,KAAM,IAAK,UAAW,mCAAoC,EAAmB,gBAAoB1C,EAAI,CAAE,UAAWqD,GAAUA,EAAO,OAAS,GAAKA,EAAO,CAAC,EAAE,OAAS,SAAU,EAAmB,gBAAoB,OAAQ,CAAE,UAAW,uBAAwB,CAAC,EAAmB,gBAAoBnD,EAAa,KAAM,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACnlB,CAAC,CAAC,CAAC,EAAmB,gBAAoBF,EAAI,CAAE,UAAW,CAAC2C,GAAcA,EAAW,QAAU,CAAE,EAAmB,gBAAoB,GAAO,CAAE,MAAO,CAAE,UAAW,OAAQ,CAAE,CAAC,CAAC,CAAC,CACpL,CACF,CACA,SAAeL,G,8ICxFR,SAASwB,GAAoB1S,EAAQ,CAC1C,IAAI2S,EAAe,SAAS3S,EAAO,kBAAkBA,EAAO,UACxDA,EAAO,UACT2S,EAAe,WAAW3S,EAAO,sBAAsBA,EAAO,cAAgB2S,GAE5E3S,EAAO,gBACT2S,EAAe,QAAQ3S,EAAO,kBAAoB2S,GAEpD,MAAMC,EAAY,sBAAsBD,YACxC,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQC,CACV,CACF,CAAC,CACH,CACO,SAASC,GAA2B7S,EAAQ,CACjD,MAAM4S,EAAY,sBAAsB5S,EAAO,kBAAkBA,EAAO,gBAAgBA,EAAO,kBAC/F,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQ4S,CACV,CACF,CAAC,CACH,CACO,SAASE,GAAe9S,EAAQ,CACrC,MAAM4S,EAAY,iCAAiC5S,EAAO,kBAC1D,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQ4S,CACV,CACF,CAAC,CACH,CACO,SAASG,GAAmB/S,EAAQ,CACzC,MAAM4S,EAAY,6BAA6B5S,EAAO,iBAAiBA,EAAO,WAC9E,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQ4S,CACV,CACF,CAAC,CACH,CACO,SAASI,GAAyBhT,EAAQ,CAC/C,IAAI4S,EAAY,oCAAoC5S,EAAO,SAC3D,OAAIA,EAAO,UACT4S,EAAY,oCAAoC5S,EAAO,iBAAiBA,EAAO,eAE1E,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQ4S,CACV,CACF,CAAC,CACH,CACO,SAASK,GAAuBjT,EAAQ,CAC7C,IAAI4S,EAAY,sBAAsB5S,EAAO,kBAAkBA,EAAO,WACtE,OAAIA,EAAO,UACT4S,EAAY,sBAAsB5S,EAAO,kBAAkBA,EAAO,oBAAoBA,EAAO,qBAAqBA,EAAO,cAEpH,IAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQ4S,CACV,CACF,CAAC,CACH,CACO,SAASM,EAAiBlT,EAAQ,CACvC,MAAM4S,EAAY,wBAAwB5S,EAAO,sBAAsBA,EAAO,kBAAkBA,EAAO,kBAAkBA,EAAO,uBAAuBA,EAAO,wBAAwBA,EAAO,yBAAyBA,EAAO,aAC7N,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQ4S,CACV,CACF,CAAC,CACH,CACO,SAASO,EAAgCnT,EAAQ,CACtD,IAAI2S,EAAe,SAAS3S,EAAO,kBAAkBA,EAAO,UACxDA,EAAO,UACT2S,EAAe,WAAW3S,EAAO,sBAAsBA,EAAO,cAAgB2S,GAE5E3S,EAAO,gBACT2S,EAAe,QAAQ3S,EAAO,kBAAoB2S,GAEpD,MAAMC,EAAY,0BAA0BD,YAC5C,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQC,CACV,CACF,CAAC,CACH,CACO,SAASQ,GAAuCpT,EAAQ,CAC7D,IAAI2S,EAAe,SAAS3S,EAAO,kBAAkBA,EAAO,UACxDA,EAAO,UACT2S,EAAe,WAAW3S,EAAO,sBAAsBA,EAAO,cAAgB2S,GAE5E3S,EAAO,gBACT2S,EAAe,QAAQ3S,EAAO,kBAAoB2S,GAEpD,MAAMC,EAAY,kCAAkCD,YACpD,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQC,CACV,CACF,CAAC,CACH,CACO,SAASS,GAA4BrT,EAAQ,CAClD,IAAI2S,EAAe,SAAS3S,EAAO,kBAAkBA,EAAO,UACxDA,EAAO,UACT2S,EAAe,WAAW3S,EAAO,sBAAsBA,EAAO,cAAgB2S,GAE5E3S,EAAO,gBACT2S,EAAe,QAAQ3S,EAAO,kBAAoB2S,GAEpD,MAAMC,EAAY,kCAAkCD,YACpD,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQC,CACV,CACF,CAAC,CACH,CACO,SAASU,GAAetT,EAAQ,CACrC,IAAI2S,EAAe,QAAQ3S,EAAO,cAAcA,EAAO,oBAAoBA,EAAO,aAC9EA,EAAO,UACT2S,EAAe,WAAW3S,EAAO,YAAc2S,GAE7C3S,EAAO,YACT2S,EAAe,aAAa3S,EAAO,cAAgB2S,GAErD,MAAMC,EAAY,oCAAoCD,YACtD,SAAO,MAAI,gBAAiB,CAC1B,OAAQ,CACN,OAAQC,CACV,CACF,CAAC,CACH,C,gBC5HA,MAAMW,WAAyB,WAAU,CACvC,QAAS,CACP,KAAM,CAAE,QAAAC,EAAS,SAAAvE,EAAU,MAAAG,EAAO,UAAAqE,EAAW,MAAAC,EAAO,KAAAC,EAAM,QAAAC,EAAS,WAAAtE,EAAY,eAAAuE,EAAgB,kBAAAC,CAAkB,EAAI,KAAK,MAC1H,OAAuB,gBACrB,KACA,CACE,MAAuB,gBAAoB,WAAgB,KAAM1E,CAAK,EACtE,UAAW,QACX,UAAW,eACX,UAAW,QACX,QAAAwE,EACA,QAASJ,GAAW,GACpB,UAAW,GACX,UAAWC,GAAa,QACxB,MAAOC,GAAS,OAClB,EACgB,gBAAoB,MAAO,CAAE,MAAO,CAAE,cAAe,MAAO,CAAE,EAAGzE,EAA0B,gBAAoB,MAAO,CAAE,UAAW,eAAgB,EAAGK,EAA4B,gBAAoBV,EAAI,CAAE,UAAW+E,CAAK,EAAmB,gBAAoB,IAAQ,CAAE,QAASG,EAAmB,KAAM,UAAW,QAASH,CAAK,EAAmB,gBAAoB7E,EAAa,KAAM+E,GAAkC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAClc,CACF,CACF,CACA,SAAeN,G,gBClBf,MAAMQ,WAAmB,WAAgB,CACvC,QAAS,CACP,KAAM,CAAE,kBAAAC,EAAmB,QAAAJ,EAAS,QAAAK,EAAS,MAAA7E,CAAM,EAAI,KAAK,MAC5D,OAAuB,gBACrB,KACA,CACE,UAAQqD,EAAA,GAAO,EAAE,OACjB,QAAS,GACT,MAAArD,EACA,UAAW,GACX,eAAgB,GAChB,MAAO,CAAE,MAAO,OAAQ,EACxB,QAAAwE,EACA,OAAwB,gBAAoB,MAAO,CAAE,UAAW,oBAAqB,EAAmB,gBAAoB,IAAQ,CAAE,QAASA,CAAQ,EAAmB,gBAAoB9E,EAAa,KAAM,OAAO,CAAC,EAAmB,gBAAoB,IAAQ,CAAE,KAAM,UAAW,QAAS,KAAK,MAAM,gBAAiB,EAAmB,gBAAoBA,EAAa,KAAM,SAAS,CAAC,CAAC,EACrY,GAAI,EACN,EACgB,gBAAoB,IAAS,CAAE,QAASmF,EAAS,MAAO,CAAE,MAAO,MAAO,CAAE,EAAmB,gBAAoB,KAAM,CAAE,UAAQxB,EAAA,GAAO,EAAE,KAAM,cAAe,QAAS,MAAuB,gBAAoB3D,EAAa,KAAM,mBAAmB,CAAE,EAAmB,gBAAoB,IAAO,CAAE,UAAQ2D,EAAA,GAAO,EAAE,MAAO,WAAYuB,GAAmB,gBAAiB,EAAmB,gBACpZ,WACA,CACE,UAAW,OACX,MAAO,QACP,MAAuB,gBAAoBlF,EAAa,KAAM,gBAAgB,EAC9E,KAAM,CAACoF,EAAG3D,EAAG4D,IACJ,GAAGA,EAAI,WAAa,OAAOA,EAAI,MAE1C,CACF,EAAmB,gBAAoB,WAAc,CAAE,MAAO,QAAS,UAAW,OAAQ,MAAuB,gBAAoBrF,EAAa,KAAM,MAAM,CAAE,CAAC,EAAmB,gBAAoB,WAAc,CAAE,UAAW,aAAc,MAAuB,gBAAoBA,EAAa,KAAM,YAAY,CAAE,CAAC,EAAmB,gBAC/U,WACA,CACE,UAAW,UACX,MAAuB,gBAAoBA,EAAa,KAAM,SAAS,EACvE,MAAO,QACP,KAAOoF,GACAA,EAGkB,gBAAoB,OAAM,CAAE,GAAI,WAAY,EAAGA,CAAC,EAF9C,gBAAoB,OAAM,CAAE,GAAI,WAAY,EAAG,OAAO,CAInF,CACF,CAAC,CAAC,EAAmB,gBAAoBtF,EAAI,CAAE,UAAWoF,GAAmB,UAAW,EAAmB,gBACzG,KACA,CACE,UAAQvB,EAAA,GAAO,EAAE,KACjB,MAAO,CAAE,UAAW,KAAM,EAC1B,cAAe,OACf,MAAuB,gBAAoB3D,EAAa,KAAM,YAAY,CAC5E,EACgB,gBAAoB,IAAO,CAAE,UAAQ2D,EAAA,GAAO,EAAE,MAAO,WAAYuB,GAAmB,UAAW,EAAmB,gBAAoB,WAAc,CAAE,MAAO,QAAS,UAAW,OAAQ,MAAuB,gBAAoBlF,EAAa,KAAM,MAAM,CAAE,CAAC,EAAmB,gBAAoB,WAAc,CAAE,UAAW,SAAU,MAAuB,gBAAoBA,EAAa,KAAM,QAAQ,CAAE,CAAC,EAAmB,gBAAoB,WAAc,CAAE,UAAW,qBAAsB,MAAuB,gBAAoBA,EAAa,KAAM,oBAAoB,CAAE,CAAC,EAAmB,gBACnmB,WACA,CACE,UAAW,SACX,MAAuB,gBAAoBA,EAAa,KAAM,QAAQ,EACtE,KAAM,CAACoF,EAAGrE,EAAOsE,IACXA,EAAI,QACiB,gBACrB,IACA,CACE,QAAyB,gBAAoB,OAAQ,CAAE,MAAO,CAAE,MAAO,MAAO,OAAQ,SAAU,CAAE,EAAGD,EAAG,IAAqB,gBAAoB,OAAyB,IAAI,CAAC,CACjL,EACAC,EAAI,OACN,EAEqB,gBAAoB,OAAQ,KAAMD,CAAC,CAE9D,CACF,CAAC,CACH,CAAC,EAAmB,gBAAoBtF,EAAI,CAAE,UAAWoF,GAAmB,QAAS,EAAmB,gBACtG,KACA,CACE,UAAQvB,EAAA,GAAO,EAAE,KACjB,MAAO,CAAE,UAAW,MAAO,aAAc,MAAO,EAChD,cAAe,OACf,MAAuB,gBAAoB3D,EAAa,KAAM,kBAAkB,CAClF,EACgB,gBAAoB,IAAO,CAAE,UAAQ2D,EAAA,GAAO,EAAE,MAAO,UAAW,cAAe,WAAYuB,GAAmB,QAAS,EAAmB,gBAAoB,WAAc,CAAE,MAAO,OAAQ,UAAW,OAAQ,MAAO,QAAS,MAAuB,gBAAoBlF,EAAa,KAAM,MAAM,CAAE,CAAC,EAAmB,gBACxU,WACA,CACE,MAAO,OACP,UAAW,UACX,MAAO,QACP,KAAOoF,GACDA,EACqB,gBAAoB,MAAO,KAAsB,gBAAoB,OAAQ,CAAE,UAAW,uBAAwB,CAAC,EAAmB,gBAAoB,OAAQ,KAAM,SAAS,CAAC,EAEpL,gBAAoB,MAAO,KAAsB,gBAAoB,OAAQ,CAAE,UAAW,uBAAwB,CAAC,EAAmB,gBAAoB,OAAQ,KAAM,WAAW,CAAC,EAE7M,MAAuB,gBAAoBpF,EAAa,KAAM,SAAS,CACzE,CACF,EAAmB,gBAAoB,WAAc,CAAE,MAAO,SAAU,UAAW,UAAW,MAAuB,gBAAoBA,EAAa,KAAM,SAAS,CAAE,CAAC,CAAC,CAC3K,CAAC,CAAC,CACJ,CACF,CACF,CACA,SAAeiF,G,2EClGf,MAAMK,WAAkB,WAAgB,CACtC,YAAYvF,EAAO,CACjB,MAAMA,CAAK,EACX,KAAK,kBAAoB,SAAY,CACrC,EACA,KAAK,SAAYe,GAAU,CACzB,KAAM,CAAE,SAAAyE,CAAS,EAAI,KAAK,MACtBA,GACFA,EAAS,GAAGzE,GAAO,CAEvB,EACA,KAAK,MAAQ,CACX,WAAY,CAAC,CACf,CACF,CACA,QAAS,CACP,KAAM,CAAE,MAAAA,EAAO,GAAA0E,EAAI,SAAAC,CAAS,EAAI,KAAK,MACrC,IAAIC,EACJ,OAAI5E,IACF4E,EAAY,WAAW5E,CAAK,GAEP,gBACrB,IACA,CACE,GAAA0E,EACA,SAAAC,EACA,eAAgB,OAChB,SAAU,SACV,SAAU,KAAK,SACf,MAAOC,GAAaA,CACtB,CACF,CACF,CACF,CACA,SAAeJ,G,wCCpCf,SAAe,CACb,KAAM,UACN,QAAS,GACT,MAAO,CACL,CACE,WAAY,SACZ,MAAO,EACT,EACA,CACE,WAAY,SACZ,MAAO,SACT,EACA,CACE,WAAY,SACZ,MAAO,eACT,EACA,CACE,WAAY,SACZ,MAAO,QACT,EACA,CACE,WAAY,SACZ,MAAO,kBACT,EACA,CACE,WAAY,SACZ,MAAO,SACT,EACA,CACE,WAAY,SACZ,MAAO,mBACT,EACA,CACE,UAAW,OACX,MAAO,wBACT,EACA,CACE,WAAY,SACZ,MAAO,kBACT,EACA,CACE,WAAY,SACZ,MAAO,sCACT,EACA,CACE,UAAW,OACX,MAAO,oCACT,EACA,CACE,UAAW,OACX,MAAO,oCACT,EACA,CACE,WAAY,SACZ,MAAO,wCACT,EACA,CACE,UAAW,SACX,MAAO,wCACT,EACA,CACE,UAAW,YACX,MAAO,8BACT,EACA,CACE,UAAW,mBACX,MAAO,qCACT,EACA,CACE,WAAY,SACZ,WAAY,SACZ,UAAW,OACX,MAAO,SACT,EACA,CACE,WAAY,SACZ,MAAO,wCACT,EACA,CACE,UAAW,SACX,MAAO,kCACT,EACA,CACE,WAAY,SACZ,MAAO,sBACT,EACA,CACE,WAAY,SACZ,MAAO,eACT,EACA,CACE,WAAY,SACZ,MAAO,UACT,EACA,CACE,WAAY,SACZ,MAAO,UACT,EACA,CACE,WAAY,SACZ,MAAO,oBACT,EACA,CACE,WAAY,SACZ,UAAW,OACX,MAAO,mBACT,EACA,CACE,UAAW,YACX,MAAO,UACT,EACA,CACE,WAAY,SACZ,MAAO,6BACT,EACA,CACE,WAAY,SACZ,MAAO,+BACT,EACA,CACE,WAAY,SACZ,MAAO,2BACT,EACA,CACE,WAAY,SACZ,UAAW,OACX,MAAO,mBACT,EACA,CACE,WAAY,SACZ,MAAO,kBACT,EACA,CACE,WAAY,SACZ,UAAW,OACX,MAAO,iBACT,EACA,CACE,WAAY,SACZ,MAAO,2BACT,EACA,CACE,WAAY,SACZ,MAAO,uBACT,EACA,CACE,UAAW,SACX,MAAO,mCACT,EACA,CACE,WAAY,SACZ,MAAO,yCACT,EACA,CACE,WAAY,SACZ,MAAO,wCACT,EACA,CACE,WAAY,SACZ,MAAO,2BACT,EACA,CACE,WAAY,SACZ,MAAO,oBACT,EACA,CACE,WAA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,WAAY,GAAGA,CAAM,EAAmB,gBACpL,SACA,CACE,MAAO,CACL,KAAM,SACR,EACA,GAAI,IACJ,GAAI,IACJ,EAAG,GACL,CACF,EAAmB,gBACjB,UACA,CACE,MAAO,CACL,KAAM,SACR,EACA,GAAI,IACJ,GAAI,OACJ,GAAI,OACJ,GAAI,MACN,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,MACR,EACA,EAAG,kHACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,SACR,EACA,EAAG,2HACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,MACR,EACA,EAAG,uqDACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,SACR,EACA,EAAG,oUACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,MACR,EACA,EAAG,wsBACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,SACR,EACA,EAAG,0SACL,CACF,EAAmB,gBACjB,SACA,CACE,MAAO,CACL,KAAM,SACR,EACA,GAAI,IACJ,GAAI,MACJ,EAAG,KACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,SACR,EACA,EAAG,mFACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,SACR,EACA,EAAG,iDACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,SACR,EACA,EAAG,iFACL,CACF,CAAC,EC0ID,GAjPeA,GAA0B,gBAAoB,MAAO,CAAE,MAAO,6BAA8B,MAAO,MAAO,OAAQ,MAAO,QAAS,kBAAmB,GAAGA,CAAM,EAAmB,gBAC9L,OACA,CACE,EAAG,sUACH,MAAO,CACL,KAAM,eACN,YAAa,EACb,OAAQ,OACR,YAAa,EACb,iBAAkB,EAClB,gBAAiB,OACjB,cAAe,CACjB,EACA,UAAW,0CACb,CACF,EAAmB,gBACjB,OACA,CACE,EAAG,8oBACH,MAAO,CACL,MAAO,OACP,UAAW,SACX,YAAa,SACb,WAAY,IACZ,YAAa,SACb,SAAU,SACV,WAA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,OACR,YAAa,cACb,cAAe,OACf,eAAgB,QAChB,cAAe,CACjB,EACA,SAAU,WACV,UAAW,yBACb,EACgB,gBACd,QACA,CACE,MAAO,CACL,UAAW,SACX,YAAa,SACb,WAAY,IACZ,YAAa,SACb,SAAU,eACV,WAAY,QACZ,UAAW,SACX,WAAY,SACZ,KAAM,OACN,YAAa,EACb,YAAa,aACf,EACA,EAAG,OACH,EAAG,KACL,EACA,QACF,CACF,EAAmB,gBAAoB,IAAK,CAAE,UAAW,yBAA0B,EAAmB,gBACpG,OACA,CACE,MAAO,CACL,KAAM,OACN,SAAU,UACV,OAAQ,OACR,YAAa,UACb,cAAe,OACf,eAAgB,QAChB,iBAAkB,GAClB,cAAe,CACjB,EACA,EAAG,qBACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,OACN,SAAU,UACV,OAAQ,OACR,YAAa,UACb,cAAe,OACf,eAAgB,QAChB,iBAAkB,GAClB,gBAAiB,OACjB,cAAe,CACjB,EACA,EAAG,oBACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,OACN,SAAU,UACV,OAAQ,OACR,YAAa,UACb,cAAe,OACf,eAAgB,QAChB,iBAAkB,GAClB,cAAe,CACjB,EACA,EAAG,oBACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,OACN,SAAU,UACV,OAAQ,eACR,YAAa,UACb,cAAe,SACf,iBAAkB,GAClB,cAAe,CACjB,EACA,EAAG,mJACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,OACN,SAAU,UACV,OAAQ,OACR,YAAa,UACb,cAAe,OACf,eAAgB,QAChB,iBAAkB,GAClB,cAAe,CACjB,EACA,EAAG,4DACL,CACF,EAAmB,gBACjB,OACA,CACE,MAAO,CACL,KAAM,OACN,SAAU,UACV,OAAQ,eACR,YAAa,UACb,cAAe,SACf,iBAAkB,GAClB,cAAe,CACjB,EACA,EAAG,gCACL,CACF,EAAmB,gBACjB,SACA,CACE,EAAG,KACH,GAAI,OACJ,GAAI,MACJ,MAAO,CACL,QAAS,EACT,KAAM,e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","sources":["webpack://velaux/./packages/velaux-data/src/plugins/app.ts","webpack://velaux/./packages/velaux-data/src/plugins/types.ts","webpack://velaux/./packages/velaux-data/src/types/application.ts","webpack://velaux/./packages/velaux-data/src/types/data.ts","webpack://velaux/./packages/velaux-data/src/types/layout.ts","webpack://velaux/./packages/velaux-data/src/types/menus.ts","webpack://velaux/./packages/velaux-ui/src/api/addons.ts","webpack://velaux/./packages/velaux-ui/src/api/application.ts","webpack://velaux/./packages/velaux-ui/src/api/authentication.ts","webpack://velaux/./packages/velaux-ui/src/api/cluster.ts","webpack://velaux/./packages/velaux-ui/src/api/config.ts","webpack://velaux/./packages/velaux-ui/src/api/definitions.ts","webpack://velaux/./packages/velaux-ui/src/api/devLink.ts","webpack://velaux/./packages/velaux-ui/src/api/env.ts","webpack://velaux/./packages/velaux-ui/src/api/plugin.ts","webpack://velaux/./packages/velaux-ui/src/api/productionLink.ts","webpack://velaux/./packages/velaux-ui/src/api/project.ts","webpack://velaux/./packages/velaux-ui/src/api/request.ts","webpack://velaux/./packages/velaux-ui/src/api/system_config.ts","webpack://velaux/./packages/velaux-ui/src/api/target.ts","webpack://velaux/./packages/velaux-ui/src/api/workflows.ts","webpack://velaux/./packages/velaux-ui/src/i18n.tsx","webpack://velaux/./packages/velaux-ui/src/components/If/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/Translation/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/ListTitle/index.tsx","webpack://velaux/./packages/velaux-ui/src/utils/permission.ts","webpack://velaux/./packages/velaux-ui/src/components/Permission/index.ts","webpack://velaux/./packages/velaux-ui/src/components/Empty/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Addons/components/card-conten/index.tsx","webpack://velaux/./packages/velaux-ui/src/api/observation.ts","webpack://velaux/./packages/velaux-ui/src/components/Drawer/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/StatusShow/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/CPUNumber/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/DefinitionCode/theme.ts","webpack://velaux/./packages/velaux-ui/src/components/DefinitionCode/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/CertBase64/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/CustomSelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/ComponentPatches/component-patch.tsx","webpack://velaux/./packages/velaux-ui/src/extends/ComponentPatches/index.tsx","webpack://velaux/./packages/velaux-ui/src/context/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/ComponentSelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/DiskNumber/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/Group/index.tsx","webpack://velaux/./packages/velaux-ui/src/api/repository.ts","webpack://velaux/./packages/velaux-ui/src/extends/HelmChartSelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/HelmChartVersionSelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/HelmRepoSelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/HelmValueShow/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/KV/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/HelmValues/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/ImageSecretSelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/ImageInput/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/K8sObjectsCode/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/MemoryNumber/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/PolicySelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/SecretKeySelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/SecretSelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/Strings/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/Numbers/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/ArrayItemGroup/index.tsx","webpack://velaux/./packages/velaux-ui/src/extends/Structs/index.tsx","webpack://velaux/./packages/velaux-ui/src/utils/utils.ts","webpack://velaux/./packages/velaux-ui/src/components/UISchema/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Addons/components/detail/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Addons/components/registry-manage/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Addons/components/search/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Addons/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/Item/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/NumItem/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/Title/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationList/components/EditAppDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationConfig/components/ComponentDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationConfig/components/Components/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationConfig/components/PolicyDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationConfig/components/PolicyList/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationConfig/components/TraitDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/api/payload.ts","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationConfig/components/TriggerDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationConfig/components/TriggerList/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationConfig/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationEnvRoute/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/DiffEditor/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/ApplicationDiff/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationInstanceList/components/Header/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationInstanceList/components/ContainerLog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationInstanceList/components/PodDetail/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationInstanceList/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/TargetList/components/Namespace/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/TargetList/components/TargetDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/EnvPage/components/EnvDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationList/components/GeneralConfig/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationList/components/AddAppDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationList/components/CardContent/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationList/components/SelectSearch/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationList/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationLog/components/LogContainer/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationLog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationRevisionList/components/Detail/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationRevisionList/components/Header/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationRevisionList/components/Empty/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationRevisionList/constants.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationRevisionList/components/List/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationRevisionList/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/TreeGraph/utils.tsx","webpack://velaux/./packages/velaux-ui/src/components/TreeGraph/component-node.tsx","webpack://velaux/./packages/velaux-ui/src/components/TreeGraph/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationStatus/components/ApplicationGraph/resource-show.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationStatus/components/ApplicationGraph/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationStatus/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationWorkflowList/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/PipelineGraph/components/step-icon.tsx","webpack://velaux/./packages/velaux-ui/src/components/PipelineGraph/components/step.tsx","webpack://velaux/./packages/velaux-ui/src/components/PipelineGraph/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineRunPage/components/RunStatusIcon/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationWorkflowStatus/components/WorkflowRecord/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationWorkflowStatus/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowPrompt/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowStudio/edge.tsx","webpack://velaux/./packages/velaux-ui/src/components/Icons/SvgAPI.tsx","webpack://velaux/./packages/velaux-ui/src/components/Icons/SvgEp.tsx","webpack://velaux/./packages/velaux-ui/src/components/Icons/SvgKubernetes/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/Icons/SvgNotification.tsx","webpack://velaux/./packages/velaux-ui/src/components/Icons/SvgSecret.tsx","webpack://velaux/./packages/velaux-ui/src/components/Icons/SvgSvc.tsx","webpack://velaux/./packages/velaux-ui/src/components/Icons/SvgTerraform/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/Icons/SvgWorkflow.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowStudio/step-icon.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowStudio/step.tsx","webpack://velaux/./packages/velaux-ui/src/extends/StepSelect/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowStudio/input-item.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowStudio/output-item.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowStudio/step-form.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowStudio/type-select.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowStudio/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/WorkflowYAML/index.tsx","webpack://velaux/./packages/velaux-ui/src/services/LocationService.ts","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationWorkflowStudio/components/CanarySetting/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ApplicationWorkflowStudio/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Cluster/components/AddClusterDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Cluster/components/CardContent/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Cluster/components/CloudServiceDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Cluster/components/ClusterSelectSearch/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Cluster/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Configs/components/CreateConfigDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Configs/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Definitions/components/SelectSearch/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Definitions/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/EnvPage/components/List/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/EnvPage/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/NotFound/index.tsx","webpack://velaux/./packages/velaux-ui/src/api/pipeline.ts","webpack://velaux/./packages/velaux-ui/src/components/RunPipeline/new-context.tsx","webpack://velaux/./packages/velaux-ui/src/components/RunPipeline/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineListPage/components/CreatePipeline/pipeline-template.ts","webpack://velaux/./packages/velaux-ui/src/pages/PipelineListPage/components/CreatePipeline/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineListPage/components/PipelineClone/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineListPage/components/SelectSearch/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineListPage/components/ViewRuns/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineListPage/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/Breadcrumb/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineRunPage/components/Header/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineRunPage/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PipelineStudio/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectApplications/components/SelectSearch/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectApplications/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectMembers/components/MemberDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectMembers/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectPipelines/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectRoles/components/Menu/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectRoles/components/ProjectPermPoliciesDetail/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectRoles/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectSummary/components/ConfigDistribution/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectSummary/components/Configs/config-distribute.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectSummary/components/Configs/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectSummary/components/GeneralDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectSummary/components/General/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectSummary/components/Targets/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/ProjectSummary/index.tsx","webpack://velaux/./packages/velaux-ui/src/api/users.ts","webpack://velaux/./packages/velaux-ui/src/pages/Projects/components/CreateProjectDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Projects/index.tsx","webpack://velaux/./packages/velaux-ui/src/api/rbac.ts","webpack://velaux/./packages/velaux-ui/src/api/roles.ts","webpack://velaux/./packages/velaux-ui/src/pages/Roles/components/RolesDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Roles/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/TargetList/components/List/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/TargetList/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/UiSchema/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Users/components/CreateUser/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Users/components/ResetPassword/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Users/components/SelectSearch/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Users/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Application/components/AddAndEditEnvBind/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Application/components/EnvTabs/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/ApplicationDryRun/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Application/components/DeployConfig/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Application/components/Header/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Application/components/Menus/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Application/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Configs/components/Menu/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Configs/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/DefinitionDetails/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Definitions/components/Menu/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Definitions/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Project/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/MyProjectList/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/PlatformSetting/index.tsx","webpack://velaux/./packages/velaux-ui/src/services/plugin/BuiltInPlugins.ts","webpack://velaux/./packages/velaux-ui/src/services/plugin/PluginCache.ts","webpack://velaux/./packages/velaux-ui/src/services/PluginService.ts","webpack://velaux/./packages/velaux-ui/src/services/MenuService.tsx","webpack://velaux/./packages/velaux-ui/src/utils/icon.tsx","webpack://velaux/./packages/velaux-ui/src/layout/AppRootPage/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/LayoutRouter/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/LeftMenu/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/SwitchButton/index.tsx","webpack://velaux/./packages/velaux-ui/src/utils/cache.ts","webpack://velaux/./packages/velaux-ui/src/layout/CloudShell/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Header/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/ErrorBoundary/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/ErrorShow/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/index.tsx","webpack://velaux/./packages/velaux-ui/src/router/routes.ts","webpack://velaux/./packages/velaux-ui/src/pages/CallBackPage/index.tsx","webpack://velaux/./packages/velaux-ui/src/layout/Header/components/EditPlatFormUserDialog/index.tsx","webpack://velaux/./packages/velaux-ui/src/pages/Login/index.tsx","webpack://velaux/./packages/velaux-ui/src/components/AuthRoute/index.tsx","webpack://velaux/./packages/velaux-ui/src/router/index.tsx","webpack://velaux/./packages/velaux-ui/src/store/index.ts","webpack://velaux/./packages/velaux-ui/src/index.ts","webpack://velaux/./packages/velaux-ui/src/model/definitions.ts","webpack://velaux/./packages/velaux-ui/src/model/env.ts","webpack://velaux/./packages/velaux-ui/src/model/integrations.ts","webpack://velaux/./packages/velaux-ui/src/model/project.ts","webpack://velaux/./packages/velaux-ui/src/model/target.ts","webpack://velaux/./packages/velaux-ui/src/model/user.ts","webpack://velaux/./packages/velaux-ui/src/api/status.ts","webpack://velaux/./packages/velaux-ui/src/utils/resetLogin.ts","webpack://velaux/./packages/velaux-ui/src/services/BackendService.ts","webpack://velaux/./packages/velaux-ui/src/utils/common.ts","webpack://velaux/./packages/velaux-ui/src/utils/errors.ts","webpack://velaux/./packages/velaux-ui/src/utils/locale.tsx","webpack://velaux/./packages/velaux-ui/src/utils/storage.ts","webpack://velaux/./packages/velaux-ui/src/model/addons.js","webpack://velaux/./packages/velaux-ui/src/model/application.js","webpack://velaux/./packages/velaux-ui/src/model/cloudshell.js","webpack://velaux/./packages/velaux-ui/src/model/cluster.js","webpack://velaux/./packages/velaux-ui/src/model/plugins.js","webpack://velaux/./packages/velaux-ui/src/model/uischema.js"],"sourcesContent":["\"use strict\";\nimport { VelaUXPlugin } from \"./types\";\nexport class AppPagePlugin extends VelaUXPlugin {\n /**\n * Called after the module has loaded, and before the app is used.\n * This function may be called multiple times on the same instance.\n * The first time, `this.meta` will be undefined\n */\n init(meta) {\n }\n /**\n * Set the component displayed under:\n * /a/${plugin-id}/*\n *\n * If the NavModel is configured, the page will have a managed frame, otheriwse it has full control.\n */\n setRootPage(root) {\n this.root = root;\n return this;\n }\n}\n","\"use strict\";\nexport var PluginType = /* @__PURE__ */ ((PluginType2) => {\n PluginType2[\"PageApp\"] = \"page-app\";\n PluginType2[\"Definition\"] = \"definition\";\n return PluginType2;\n})(PluginType || {});\nexport class VelaUXPlugin {\n // Tabs on the plugin page\n addConfigPage(tab) {\n this.configPages = tab;\n return this;\n }\n constructor() {\n this.meta = {};\n }\n}\n","\"use strict\";\nexport var DeployModes = /* @__PURE__ */ ((DeployModes2) => {\n DeployModes2[\"Deploy\"] = \"deploy\";\n DeployModes2[\"CanaryDeploy\"] = \"canary-deploy\";\n return DeployModes2;\n})(DeployModes || {});\n","\"use strict\";\nexport function unmarshal(kv) {\n return kv;\n}\nexport function marshal(obj) {\n return obj;\n}\n","\"use strict\";\nexport var LayoutModes = /* @__PURE__ */ ((LayoutModes2) => {\n LayoutModes2[\"Default\"] = \"default\";\n LayoutModes2[\"Neat\"] = \"neat\";\n LayoutModes2[\"NeatPro\"] = \"neat2\";\n return LayoutModes2;\n})(LayoutModes || {});\n","\"use strict\";\nexport var MenuTypes = /* @__PURE__ */ ((MenuTypes2) => {\n MenuTypes2[\"Workspace\"] = \"Workspace\";\n MenuTypes2[\"ApplicationEnv\"] = \"ApplicationEnv\";\n MenuTypes2[\"Project\"] = \"Project\";\n return MenuTypes2;\n})(MenuTypes || {});\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { addons, addonRegistries, enabledAddon } from \"./productionLink\";\nimport { post, get, rdelete, put } from \"./request\";\nconst baseURLOject = getDomain();\nconst base = baseURLOject.MOCK || baseURLOject.APIBASE;\nexport function getAddonRegistriesList(params) {\n return get(base + addonRegistries, { params }).then((res) => res);\n}\nexport function createAddonRegistry(params) {\n return post(base + addonRegistries, params);\n}\nexport function deleteAddonRegistry(params) {\n return rdelete(base + addonRegistries + \"/\" + params.name, params).then((res) => res);\n}\nexport function getAddonsList(params) {\n return get(base + addons, { params }).then((res) => res);\n}\nexport function getAddonsDetails(params) {\n const gurl = `${base + addons}/${params.name}`;\n return get(\n gurl,\n params.version ? {\n params: {\n version: params.version\n }\n } : {}\n ).then((res) => res);\n}\nexport function disableAddon(params) {\n const gurl = `${base + addons}/${params.name}/disable`;\n return post(gurl, params).then((res) => res);\n}\nexport function enableAddon(params) {\n const gurl = `${base + addons}/${params.name}/enable`;\n const req = { args: params.properties, version: params.version };\n if (params.clusters) {\n req.clusters = params.clusters;\n }\n return post(gurl, req).then((res) => res);\n}\nexport function upgradeAddon(params) {\n const gurl = `${base + addons}/${params.name}/update`;\n const req = { args: params.properties, version: params.version };\n if (params.clusters) {\n req.clusters = params.clusters;\n }\n return put(gurl, req).then((res) => res);\n}\nexport function getAddonsStatus(params) {\n const gurl = `${base + addons}/${params.name}/status`;\n return get(gurl, params).then((res) => res);\n}\nexport function getEnabledAddons(params) {\n return get(base + enabledAddon, params);\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { application } from \"./productionLink\";\nimport { post, get, rdelete, put } from \"./request\";\nconst baseURLOject = getDomain();\nconst url = baseURLOject.APIBASE + application;\nexport function getApplicationList(params) {\n return get(url, { params }).then((res) => res);\n}\nexport function createApplication(params) {\n const createURL = `${url}?project=${params.project}`;\n return post(createURL, params).then((res) => res);\n}\nexport function getApplicationDetails(params) {\n return get(`${url}/${params.name}`, params).then((res) => res);\n}\nexport function getApplicationStatus(params) {\n return get(`${url}/${params.name}/envs/${params.envName}/status`, params).then((res) => res);\n}\nexport function getApplicationAllStatus(params) {\n return get(`${url}/${params.name}/status`, params).then((res) => res);\n}\nexport function deleteApplication(params) {\n return rdelete(url + \"/\" + params.name, params);\n}\nexport function getApplicationComponents(params) {\n const { appName } = params;\n return get(`${url}/${appName}/components`, {}).then((res) => res);\n}\nexport function createApplicationComponent(params, query) {\n return post(`${url}/${query.appName}/components`, params).then((res) => res);\n}\nexport function getComponentDetails(params) {\n return post(`${url}/${params.name}/components/${params.componentName}`, params).then((res) => res);\n}\nexport function deployApplication(params, customError) {\n return post(`${url}/${params.appName}/deploy`, params, customError);\n}\nexport function getPolicyList(params) {\n return get(`${url}/${params.appName}/policies`, params).then((res) => res);\n}\nexport function createPolicy(appName, params) {\n return post(`${url}/${appName}/policies`, params).then((res) => res);\n}\nexport function updatePolicy(appName, policyName, params) {\n return put(`${url}/${appName}/policies/${policyName}`, params).then((res) => res);\n}\nexport function getPolicyDetail(params) {\n return get(`${url}/${params.appName}/policies/${params.policyName}`, params).then((res) => res);\n}\nexport function deletePolicy(params) {\n const gURL = `${url}/${params.appName}/policies/${params.policyName}`;\n if (params.force) {\n return rdelete(gURL, { params: { force: true } }, true).then((res) => res);\n }\n return rdelete(gURL, {}, true).then((res) => res);\n}\nexport function createApplicationTemplate(params) {\n return post(`${url}/${params.name}/template`, params).then((res) => res);\n}\nexport function createApplicationEnvbinding(params) {\n return post(`${url}/${params.appName}/envs`, params).then((res) => res);\n}\nexport function updateApplicationEnvbinding(params) {\n return put(`${url}/${params.appName}/envs/${params.name}`, params).then((res) => res);\n}\nexport function getApplicationEnvbinding(params) {\n return get(`${url}/${params.appName}/envs`, params).then((res) => res);\n}\nexport function deleteApplicationEnvbinding(params) {\n return rdelete(`${url}/${params.appName}/envs/${params.envName}`, {}).then((res) => res);\n}\nexport function recycleApplicationEnvbinding(params) {\n return post(`${url}/${params.appName}/envs/${params.envName}/recycle`, {}).then((res) => res);\n}\nexport function getApplicationComponent(appName, componentName) {\n return get(`${url}/${appName}/components/${componentName}`, {}).then((res) => res);\n}\nexport function createTrait(params, query) {\n const { appName, componentName } = query;\n return post(`${url}/${appName}/components/${componentName}/traits`, params).then((res) => res);\n}\nexport function updateTrait(params, query) {\n const { appName, componentName, traitType } = query;\n return put(`${url}/${appName}/components/${componentName}/traits/${traitType}`, params).then((res) => res);\n}\nexport function deleteTrait(query) {\n const { appName, componentName, traitType } = query;\n return rdelete(`${url}/${appName}/components/${componentName}/traits/${traitType}`, {}).then((res) => res);\n}\nexport function listRevisions(query) {\n const { appName } = query;\n return get(`${url}/${appName}/revisions`, { params: query }).then((res) => res);\n}\nexport function detailRevision(query) {\n const { appName, revision } = query;\n return get(`${url}/${appName}/revisions/${revision}`, {}).then((res) => res);\n}\nexport function rollbackWithRevision(query) {\n const { appName, revision } = query;\n return post(`${url}/${appName}/revisions/${revision}/rollback`, {}).then((res) => res);\n}\nexport function getApplicationStatistics(params) {\n return get(`${url}/${params.appName}/statistics`, params).then((res) => res);\n}\nexport function getApplicationWorkflowRecord(params) {\n return get(`${url}/${params.appName}/records`, params).then((res) => res);\n}\nexport function getApplicationEnvRecords(params) {\n return get(`${url}/${params.appName}/envs/${params.envName}/records`, {\n params: {\n pageSize: params.pageSize || 20,\n page: params.page || 1\n }\n }).then((res) => res);\n}\nexport function updateComponentProperties(params, query) {\n return put(`${url}/${query.appName}/components/${query.componentName}`, params).then((res) => res);\n}\nexport function resumeApplicationWorkflowRecord(params) {\n const { appName, workflowName, recordName } = params;\n return get(`${url}/${appName}/workflows/${workflowName}/records/${recordName}/resume`, {}).then((res) => res);\n}\nexport function rollbackApplicationWorkflowRecord(params) {\n const { appName, workflowName, recordName } = params;\n return get(`${url}/${appName}/workflows/${workflowName}/records/${recordName}/rollback`, {}).then((res) => res);\n}\nexport function terminateApplicationWorkflowRecord(params) {\n const { appName, workflowName, recordName } = params;\n return get(`${url}/${appName}/workflows/${workflowName}/records/${recordName}/terminate`, {}).then((res) => res);\n}\nexport function getApplicationTriggers(params) {\n const { appName } = params;\n return get(`${url}/${appName}/triggers`, {}).then((res) => res);\n}\nexport function updateApplication(params) {\n return put(`${url}/${params.name}`, params).then((res) => res);\n}\nexport function createTrigger(params, query) {\n const { appName } = query;\n return post(`${url}/${appName}/triggers`, params).then((res) => res);\n}\nexport function updateTrigger(params, query) {\n const { appName, token } = query;\n return put(`${url}/${appName}/triggers/${token}`, params).then((res) => res);\n}\nexport function deleteTrigger(params) {\n const { appName, token } = params;\n return rdelete(`${url}/${appName}/triggers/${token}`, {}).then((res) => res);\n}\nexport function deleteComponent(query) {\n return rdelete(`${url}/${query.appName}/components/${query.componentName}`, {}).then((res) => res);\n}\nexport function compareApplication(appName, params) {\n const _url = `${url}/${appName}/compare`;\n return post(_url, params).then((res) => res);\n}\nexport function dryRunApplication(appName, params) {\n return post(`${url}/${appName}/dry-run`, params, true).then((res) => res);\n}\n","\"use strict\";\nimport {\n authenticationAdminConfigured,\n authenticationDexConfig,\n authenticationInitAdmin,\n authenticationLogin,\n authenticationLoginType,\n authenticationSystemInfo,\n authenticationUserInfo\n} from \"./productionLink\";\nimport { get, post, put } from \"./request\";\nexport function loginSSO(params) {\n const url = authenticationLogin;\n return post(url, { ...params }, true).then((res) => res);\n}\nexport function loginLocal(params) {\n const url = authenticationLogin;\n return post(url, { ...params }, true).then((res) => res);\n}\nexport function getDexConfig() {\n const url = authenticationDexConfig;\n return get(url, {}).then((res) => res);\n}\nexport function getLoginType() {\n const url = authenticationLoginType;\n return get(url, {}).then((res) => res);\n}\nexport function updateSystemInfo(params) {\n const url = authenticationSystemInfo;\n return put(url, params).then((res) => res);\n}\nexport function getLoginUserInfo() {\n const url = authenticationUserInfo;\n return get(url, {}).then((res) => res);\n}\nexport function isAdminConfigured() {\n const url = authenticationAdminConfigured;\n return get(url, {}).then((res) => res);\n}\nexport function initAdmin(params) {\n const url = authenticationInitAdmin;\n return put(url, params).then((res) => res);\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport {\n cluster_mock,\n getClusterDetails_mock,\n clusterCloudList_mock,\n connectClusterCloud_mock\n} from \"./devLink\";\nimport { cluster } from \"./productionLink\";\nimport { post, get, rdelete, put } from \"./request\";\nconst baseURLOject = getDomain();\nconst isMock = baseURLOject.MOCK;\nconst url = isMock ? cluster_mock : cluster;\nexport function getClusterList(params) {\n return get(url, { params }).then((res) => res);\n}\nexport function createCluster(params) {\n return post(url, params).then((res) => res);\n}\nexport function updateCluster(params) {\n return put(url + \"/\" + params.name, params);\n}\nexport function deleteCluster(params) {\n return rdelete(`${cluster}/${params.clusterName}`, params);\n}\nexport function getClusterDetails(params) {\n const gurl = isMock ? `${getClusterDetails_mock}` : `${cluster}/${params.clusterName}`;\n return get(gurl, params).then((res) => res);\n}\nexport function getCloudClustersList(params) {\n const { provider, page, pageSize } = params;\n const gurl = isMock ? `${clusterCloudList_mock}` : `${cluster}/cloud_clusters/${provider}?page=${page}&pageSize=${pageSize}`;\n delete params.page;\n delete params.pageSize;\n delete params.provider;\n return post(gurl, params).then((res) => res);\n}\nexport function connectcloudCluster(params) {\n const { provider } = params;\n const gurl = isMock ? `${connectClusterCloud_mock}` : `${cluster}/cloud_clusters/${provider}/connect`;\n delete params.provider;\n return post(gurl, params).then((res) => res);\n}\nexport function createClusterNamespace(params) {\n const gurl = `${cluster}/${params.cluster}/namespaces`;\n return post(gurl, { namespace: params.namespace }).then((res) => res);\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { configs, configTemplates, project } from \"./productionLink\";\nimport { get, post, put, rdelete } from \"./request\";\nconst baseURLOject = getDomain();\nconst base = baseURLOject.APIBASE;\nexport function listTemplates(projectName) {\n let url = base + configTemplates;\n if (projectName) {\n url = base + project + \"/\" + projectName + \"/config_templates\";\n }\n return get(url, {}).then((res) => res);\n}\nexport function detailTemplate(queryData, projectName) {\n let url = base + configTemplates + `/${queryData.name}`;\n if (projectName) {\n url = base + project + \"/\" + projectName + \"/config_templates/\" + queryData.name;\n }\n return get(url, {\n params: {\n namespace: queryData.namespace\n }\n }).then((res) => res);\n}\nexport function createConfig(data, projectName) {\n let url = base + configs;\n if (projectName) {\n url = base + project + \"/\" + projectName + \"/configs\";\n }\n return post(url, data).then((res) => res);\n}\nexport function updateConfig(name, data, projectName) {\n let url = base + configs + `/${name}`;\n if (projectName) {\n url = base + project + \"/\" + projectName + \"/configs/\" + name;\n }\n return put(url, data).then((res) => res);\n}\nexport function getConfigs(template) {\n const url = base + configs;\n return get(url, {\n params: { template: template ? template : \"\" }\n }).then((res) => res);\n}\nexport function detailConfig(name, projectName) {\n let url = base + configs + `/${name}`;\n if (projectName) {\n url = base + project + \"/\" + projectName + \"/configs/\" + name;\n }\n return get(url, {}).then((res) => res);\n}\nexport function deleteConfig(name, projectName) {\n let url = base + configs + `/${name}`;\n if (projectName) {\n url = base + project + \"/\" + projectName + \"/configs/\" + name;\n }\n return rdelete(url, {}).then((res) => res);\n}\nexport function getProjectConfigs(query) {\n const urlPath = project + `/${query.projectName}/configs`;\n return get(urlPath, {}).then((res) => res);\n}\nexport function getProjectConfigDistributions(query) {\n const urlPath = project + `/${query.projectName}/distributions`;\n return get(urlPath, {}).then((res) => res);\n}\nexport function applyProjectConfigDistribution(projectName, params) {\n const urlPath = project + `/${projectName}/distributions`;\n return post(urlPath, params).then((res) => res);\n}\nexport function deleteProjectConfigDistribution(projectName, name) {\n const urlPath = project + `/${projectName}/distributions/${name}`;\n return rdelete(urlPath, {}).then((res) => res);\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { definition } from \"./productionLink\";\nimport { get, put } from \"./request\";\nconst baseURLOject = getDomain();\nconst base = baseURLOject.APIBASE;\nexport function getDefinitionsList(params) {\n const url = base + definition;\n const { definitionType, queryAll } = params;\n return get(url, { params: { type: definitionType, queryAll } }).then((res) => res);\n}\nexport function detailDefinition(params) {\n const url = base + `${definition}/${params.name}`;\n return get(url, { params: { type: params.type } }).then((res) => res);\n}\nexport function updateDefinitionStatus(params) {\n const url = base + `${definition}/${params.name}/status`;\n const paramsData = {\n hiddenInUI: params.hiddenInUI,\n type: params.type\n };\n return put(url, paramsData).then((res) => res);\n}\nexport function updateUISchema(params) {\n const url = base + `${definition}/${params.name}/uischema`;\n const paramsData = {\n type: params.definitionType,\n uiSchema: params.uiSchema\n };\n return put(url, paramsData).then((res) => res);\n}\nexport function getComponentDefinitions() {\n const _url = base + definition;\n return get(_url, { params: { type: \"component\" } }).then((res) => res);\n}\nexport function detailComponentDefinition(params) {\n const _url = `${base + definition}/${params.name}`;\n return get(_url, { params: { type: \"component\" } }).then((res) => res);\n}\nexport function getPolicyDefinitions() {\n const _url = base + definition;\n return get(_url, { params: { type: \"policy\" } }).then((res) => res);\n}\nexport function detailPolicyDefinition(params) {\n const _url = `${base + definition}/${params.name}`;\n return get(_url, { params: { type: \"policy\" } }).then((res) => res);\n}\nexport function getTraitDefinitions(params) {\n const _url = base + definition;\n return get(_url, { params: { type: \"trait\", appliedWorkload: params.appliedWorkload } }).then(\n (res) => res\n );\n}\nexport function detailTraitDefinition(params) {\n const _url = `${base + definition}/${params.name}`;\n return get(_url, { params: { type: \"trait\" } }).then((res) => res);\n}\n","\"use strict\";\nexport const application_mock = \"/mock/application.json\";\nexport const addons_mock = \"/mock/addonsList.json\";\nexport const cluster_mock = \"/mock/cluster.json\";\nexport const workflows_mock = \"/mock/workflows.json\";\nexport const project_mock = \"/mock/projectlist.json\";\nexport const addonsDetails_mock = \"/mock/addonsDetails.json\";\nexport const disabletAddonsCluster_mock = \"/mock/disabletAddonsCluster.json\";\nexport const enableAddonsCluster_mock = \"/mock/enableAddonsCluster.json\";\nexport const addonsStatus_mock = \"/mock/addonsStatus.json\";\nexport const getOneNamespace_mock = \"/mock/getOneNamespace.json\";\nexport const getClusterDetails_mock = \"/mock/getClusterDetails.json\";\nexport const getApplicationDetails_mock = \"/mock/getApplicationDetails.json\";\nexport const getApplicationComponents_mock = \"/mock/getApplicationComponents.json\";\nexport const createApplicationComponent_mock = \"/mock/createApplicationComponent.json\";\nexport const getComponentDetails_mock = \"/mock/getComponentDetails.json\";\nexport const updateApplication_mock = \"/mock/updateApplication.json\";\nexport const getPolicyList_mock = \"/mock/getPolicyList.json\";\nexport const createPolicy_mock = \"/mock/createPolicy.json\";\nexport const getPolicyDetails_mock = \"/mock/getPolicyDetails.json\";\nexport const createApplicationTemplate_mock = \"/mock/createApplicationTemplate.json\";\nexport const getWorkFlowsDetails_mock = \"/mock/getWorkFlowsDetails.json\";\nexport const createWorkFlow_mock = \"/mock/createWorkFlow.json\";\nexport const getWorkFlowsRecord_mock = \"/mock/getWorkFlowsRecord.json\";\nexport const clusterCloudList_mock = \"/mock/clusterCloudList.json\";\nexport const connectClusterCloud_mock = \"/mock/connectClusterCloud.json\";\nexport const createApplicationEnv_mock = \"/mock/createApplicationEnv.json\";\nexport const gettarget_mock = \"/mock/gettarget.json\";\nexport const getTraitDefinitionsDetails_mock = \"/mock/getTraitDefinitionsDetails.json\";\nexport const getTraitDefinitions_mock = \"/mock/getTraitDefinitions.json\";\nexport const getTrait_mock = \"/mock/getTrait.json\";\nexport const listWorkflowDefinition_mock = \"/mock/listWorkFlowDefintion.json\";\nexport const listWorkflowDetailsDefinition_mock = \"/mock/listWorkFlowDetailsDefintion.json\";\nexport const updateApplicationEnv_mock = `/mock/api/v1/applications/name/envs/envName`;\nexport const getPayloadType_mock = `/mock/getPayloadTypes.json`;\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { envURL } from \"./productionLink\";\nimport { post, get, rdelete, put } from \"./request\";\nconst baseURLOject = getDomain();\nconst base = baseURLOject.MOCK || baseURLOject.APIBASE;\nexport function getEnvs(params) {\n const url = base + envURL;\n return get(url, { params }).then((res) => res);\n}\nexport function createEnv(params) {\n const url = base + envURL + \"?project=\" + params.project;\n return post(url, params);\n}\nexport function deleteEnv(params) {\n const url = base + `${envURL}/${params.name}`;\n return rdelete(url, params);\n}\nexport function updateEnv(params) {\n const url = base + `${envURL}/${params.name}`;\n return put(url, params);\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { managePlugin } from \"./productionLink\";\nimport { get, post } from \"./request\";\nconst baseURLOject = getDomain();\nconst base = baseURLOject.MOCK || baseURLOject.APIBASE;\nexport function getPluginList(params) {\n return get(base + managePlugin, { params }).then((res) => res);\n}\nexport function detailPlugin(params) {\n return get(`${base + managePlugin}/${params.id}`, { params }).then((res) => res);\n}\nexport function enablePlugin(params) {\n return post(`${base + managePlugin}/${params.id}/enable`, params);\n}\nexport function disablePlugin(params) {\n return post(`${base + managePlugin}/${params.id}/disable`, params);\n}\nexport function setPlugin(params) {\n return post(`${base + managePlugin}/${params.id}/setting`, params);\n}\nexport function installPlugin(params) {\n return post(`${base + managePlugin}/${params.id}/install`, { url: params.url });\n}\nexport function uninstallPlugin(params) {\n return post(`${base + managePlugin}/${params.id}/uninstall`, {});\n}\n","\"use strict\";\nexport const application = `/api/v1/applications`;\nexport const definition = `/api/v1/definitions`;\nexport const addons = `/api/v1/addons`;\nexport const enabledAddon = `/api/v1/enabled_addon`;\nexport const addonRegistries = `/api/v1/addon_registries`;\nexport const cluster = \"/api/v1/clusters\";\nexport const project = `/api/v1/projects`;\nexport const targetURL = `/api/v1/targets`;\nexport const envURL = `/api/v1/envs`;\nexport const payloadTypeURL = `/api/v1/payload_types`;\nexport const repository = \"/api/v1/repository\";\nexport const authenticationLogin = `/api/v1/auth/login`;\nexport const authenticationDexConfig = `/api/v1/auth/dex_config`;\nexport const authenticationSystemInfo = `/api/v1/system_info`;\nexport const authenticationLoginType = `/api/v1/auth/login_type`;\nexport const authenticationRefreshToken = `/api/v1/auth/refresh_token`;\nexport const authenticationUserInfo = `/api/v1/auth/user_info`;\nexport const authenticationAdminConfigured = `/api/v1/auth/admin_configured`;\nexport const authenticationInitAdmin = `/api/v1/auth/init_admin`;\nexport const users = `/api/v1/users`;\nexport const roles = `/api/v1/roles`;\nexport const platformPermissions = `/api/v1/permissions`;\nexport const configs = `/api/v1/configs`;\nexport const configTemplates = `/api/v1/config_templates`;\nexport const cloudShell = `/api/v1/cloudshell`;\nexport const plugin = `/api/v1/plugins`;\nexport const managePlugin = `/api/v1/manage/plugins`;\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { project_mock } from \"./devLink\";\nimport { project } from \"./productionLink\";\nimport { post, get, rdelete, put } from \"./request\";\nconst baseURLOject = getDomain();\nconst isMock = baseURLOject.MOCK;\nconst url = isMock ? project_mock : project;\nexport function getProjectList(params) {\n return get(url, { params }).then((res) => res);\n}\nexport function createProject(params) {\n return post(url, params).then((res) => res);\n}\nexport function updateProject(params) {\n const urlPath = project + `/${params.name}`;\n return put(urlPath, params).then((res) => res);\n}\nexport function deleteProject(params) {\n const urlPath = project + `/${params.name}`;\n return rdelete(urlPath, {}).then((res) => res);\n}\nexport function getProjectDetail(params) {\n const urlPath = project + `/${params.projectName}`;\n return get(urlPath, {}).then((res) => res);\n}\nexport function getProjectTargetList(params) {\n const urlPath = project + `/${params.projectName}/targets`;\n return get(urlPath, {}).then((res) => res);\n}\nexport function getProjectPermissions(params) {\n const urlPath = project + `/${params.projectName}/permissions`;\n return get(urlPath, {}).then((res) => res);\n}\nexport function getProjectRoles(query) {\n const urlPath = project + `/${query.projectName}/roles`;\n return get(urlPath, {}).then((res) => res);\n}\nexport function createProjectRoles(query, params) {\n const urlPath = project + `/${query.projectName}/roles`;\n return post(urlPath, params).then((res) => res);\n}\nexport function updateProjectRoles(query, params) {\n const urlPath = project + `/${query.projectName}/roles/${query.roleName}`;\n return put(urlPath, params).then((res) => res);\n}\nexport function deleteProjectRoles(query) {\n const urlPath = project + `/${query.projectName}/roles/${query.roleName}`;\n return rdelete(urlPath, {}).then((res) => res);\n}\nexport function getProjectUsers(query) {\n const urlPath = project + `/${query.projectName}/users`;\n return get(urlPath, { params: query }).then((res) => res);\n}\nexport function createProjectUsers(query, params) {\n const urlPath = project + `/${query.projectName}/users`;\n return post(urlPath, params).then((res) => res);\n}\nexport function updateProjectUser(query, params) {\n const urlPath = project + `/${query.projectName}/users/${query.userName}`;\n return put(urlPath, params).then((res) => res);\n}\nexport function deleteProjectUser(query, params) {\n const urlPath = project + `/${query.projectName}/users/${query.userName}`;\n return rdelete(urlPath, params).then((res) => res);\n}\nexport function getCloudServiceProviderList(projectName) {\n const urlPath = project + `/${projectName}/providers`;\n return get(urlPath, {}).then((res) => res);\n}\n","\"use strict\";\nimport { getBackendSrv, handleAPIError } from \"../services/BackendService\";\nexport const post = (url, params, customError) => {\n return getBackendSrv().getAxiosInstance().post(url, params).then((res) => {\n return res && res.data;\n }).catch((err) => {\n handleAPIError(err, params.customError || customError);\n });\n};\nexport const get = (url, params) => {\n return getBackendSrv().getAxiosInstance().get(url, params).then((res) => {\n return res && res.data;\n }).catch((err) => {\n handleAPIError(err, params.customError);\n });\n};\nexport const rdelete = (url, params, customError) => {\n return getBackendSrv().getAxiosInstance().delete(url, params).then((res) => {\n return res && res.data;\n }).catch((err) => {\n handleAPIError(err, params.customError || customError);\n });\n};\nexport const put = (url, params, customError) => {\n return getBackendSrv().getAxiosInstance().put(url, params).then((res) => {\n return res && res.data;\n }).catch((err) => {\n handleAPIError(err, params.customError || customError);\n });\n};\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { get, put } from \"./request\";\nconst domainObj = getDomain();\nexport const baseURL = domainObj.APIBASE || domainObj.MOCK;\nexport function loadSystemInfo() {\n const url = `/api/v1/system_info`;\n return get(url, {});\n}\nexport function updateSystemInfo(params) {\n const url = `/api/v1/system_info`;\n return put(url, params, true);\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { gettarget_mock } from \"./devLink\";\nimport { targetURL } from \"./productionLink\";\nimport { post, get, rdelete, put } from \"./request\";\nconst baseURLOject = getDomain();\nconst isMock = baseURLOject.MOCK;\nexport function getTarget(params) {\n const url = isMock ? gettarget_mock : targetURL;\n return get(url, { params }).then((res) => res);\n}\nexport function createTarget(params) {\n const url = isMock ? gettarget_mock : targetURL;\n return post(url, params);\n}\nexport function deleteTarget(params) {\n const url = isMock ? gettarget_mock : `${targetURL}/${params.name}`;\n return rdelete(url, params);\n}\nexport function updateTarget(params) {\n const url = isMock ? gettarget_mock : `${targetURL}/${params.name}`;\n return put(url, params);\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { application, definition } from \"./productionLink\";\nimport { get, rdelete, put, post } from \"./request\";\nconst baseURLOject = getDomain();\nconst base = baseURLOject.APIBASE;\nexport function listWorkflow(params) {\n const url = base + `${application}/${params.appName}/workflows`;\n return get(url, {}).then((res) => res);\n}\nexport function updateWorkflow(pathParams, params) {\n const url = base + `${application}/${pathParams.appName}/workflows/${pathParams.workflowName}`;\n return put(url, params).then((res) => res);\n}\nexport function createWorkflow(pathParams, params) {\n const url = base + `${application}/${pathParams.appName}/workflows`;\n return post(url, params).then((res) => res);\n}\nexport function getEnvWorkflowRecord(params) {\n const url = base + `${application}/${params.appName}/workflows/${params.workflowName}/records`;\n return get(url, params).then((res) => res);\n}\nexport function detailWorkflow(params) {\n const url = base + `${application}/${params.appName}/workflows/${params.name}`;\n return get(url, {});\n}\nexport function detailWorkflowRecord(params) {\n const url = base + `${application}/${params.appName}/workflows/${params.workflowName}/records/${params.record}`;\n return get(url, {});\n}\nexport function getWorkflowRecordLogs(params) {\n const url = base + `${application}/${params.appName}/workflows/${params.workflowName}/records/${params.record}/logs`;\n return get(url, { params: { step: params.step } });\n}\nexport function getWorkflowRecordInputs(params) {\n const url = base + `${application}/${params.appName}/workflows/${params.workflowName}/records/${params.record}/inputs`;\n return get(url, { params: { step: params.step } });\n}\nexport function getWorkflowRecordOutputs(params) {\n const url = base + `${application}/${params.appName}/workflows/${params.workflowName}/records/${params.record}/outputs`;\n return get(url, { params: { step: params.step } });\n}\nexport function deleteWorkflow(params) {\n const url = base + `${application}/${params.appName}/workflows/${params.name}`;\n return rdelete(url, {});\n}\nexport function getWorkflowDefinitions(scope) {\n const url = base + `${definition}`;\n return get(url, { params: { type: \"workflowstep\", scope } }).then((res) => res);\n}\nexport function detailWorkflowDefinition(params) {\n const url = base + `${definition}/${params.name}`;\n return get(url, { params: { type: \"workflowstep\" } }).then((res) => res);\n}\n","\"use strict\";\nimport i18n from \"i18next\";\nimport { initReactI18next } from \"react-i18next\";\nimport En from \"./locals/En/en.json\";\nimport Zh from \"./locals/Zh/zh.json\";\nimport { getLanguage } from \"./utils/common\";\nconst resources = {\n en: {\n translation: En\n },\n zh: {\n translation: Zh\n }\n};\nconst currentLanguage = getLanguage();\ni18n.use(initReactI18next).init({\n resources,\n lng: currentLanguage,\n keySeparator: false,\n // we do not use keys in form messages.welcome\n interpolation: {\n escapeValue: false\n // react already safes from xss\n }\n});\nexport default i18n;\n","\"use strict\";\nimport React from \"react\";\nexport function If(props) {\n if (props.condition) {\n return props.children;\n }\n return /* @__PURE__ */ React.createElement(\"div\", null);\n}\n","\"use strict\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nexport const Translation = (props) => {\n const { t } = useTranslation();\n const { children, className = \"\" } = props;\n return /* @__PURE__ */ React.createElement(\"span\", { className }, t(children));\n};\n","\"use strict\";\nimport { Button } from \"@alifd/next\";\nimport React from \"react\";\nimport { Translation } from \"../Translation\";\nimport \"./index.less\";\nimport { If } from \"../If\";\nexport const ListTitle = function(props) {\n const { title, subTitle, extButtons, addButtonTitle, addButtonClick, buttonSize } = props;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"title-wrapper\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"title font-size-20\" }, /* @__PURE__ */ React.createElement(Translation, null, title)), subTitle && /* @__PURE__ */ React.createElement(\"span\", { className: \"subTitle font-size-14\" }, /* @__PURE__ */ React.createElement(Translation, null, subTitle))), /* @__PURE__ */ React.createElement(\"div\", { className: \"float-right\" }, extButtons && extButtons.map((item) => {\n return item;\n }), /* @__PURE__ */ React.createElement(If, { condition: addButtonTitle }, /* @__PURE__ */ React.createElement(Button, { size: buttonSize ? buttonSize : \"medium\", type: \"primary\", onClick: addButtonClick }, /* @__PURE__ */ React.createElement(Translation, null, addButtonTitle ? addButtonTitle : \"\")))));\n};\n","\"use strict\";\nexport class ResourceName {\n constructor(value) {\n const index = value.indexOf(\"/\", 1);\n let node = value;\n if (index > -1) {\n node = value.slice(0, index);\n }\n const tn = node.split(\":\");\n if (tn.length == 2) {\n this.type = tn[0];\n this.value = tn[1];\n } else {\n this.type = tn[0];\n this.value = \"*\";\n }\n if (index > -1) {\n const nextValue = value.slice(index + 1);\n if (nextValue != \"\") {\n this.next = new ResourceName(value.slice(index + 1));\n }\n }\n }\n}\nexport function checkPermission(request, project, userInfo) {\n if (!request) {\n return true;\n }\n if (!userInfo) {\n return false;\n }\n if (!userInfo.platformPermissions && !userInfo.projectPermissions) {\n return false;\n }\n if (!project) {\n if (!userInfo.platformPermissions || userInfo.platformPermissions.length == 0) {\n return false;\n }\n }\n let permissions = userInfo.platformPermissions || [];\n if (project && userInfo.projectPermissions) {\n if (project == \"?\") {\n Object.keys(userInfo.projectPermissions).map((key) => {\n if (userInfo.projectPermissions) {\n const perms = userInfo.projectPermissions[key];\n if (perms) {\n permissions = permissions.concat(perms);\n }\n }\n });\n } else {\n const userPermissions = userInfo.projectPermissions[project];\n if (userPermissions) {\n permissions = permissions.concat(userPermissions);\n }\n }\n }\n for (let i = 0; i < permissions.length; i++) {\n const effect = permissions[i].effect.toLowerCase();\n if (effect == \"deny\" && match(request, permissions[i])) {\n return false;\n }\n }\n for (let i = 0; i < permissions.length; i++) {\n const effect = permissions[i].effect.toLowerCase();\n if ((effect == \"allow\" || effect == \"\") && match(request, permissions[i])) {\n return true;\n }\n }\n return false;\n}\nexport function match(request, permission) {\n if (!permission.actions.includes(request.action) && !permission.actions.includes(\"*\")) {\n return false;\n }\n if (!permission.resources?.length) {\n return false;\n }\n for (let i = 0; i < permission.resources?.length; i++) {\n if (resourceMatch(new ResourceName(request.resource), new ResourceName(permission.resources[i]))) {\n return true;\n }\n }\n return false;\n}\nexport function resourceMatch(requestResource, permissionResource) {\n let current = permissionResource;\n let targetCurrent = requestResource;\n while (current && current.type) {\n if (current.type == \"*\") {\n return true;\n }\n if (!targetCurrent || !targetCurrent.type) {\n return false;\n }\n if (current.type != targetCurrent.type) {\n return false;\n }\n if (current.value != targetCurrent.value && current.value != \"*\" && targetCurrent.value != \"?\") {\n return false;\n }\n current = current.next;\n targetCurrent = targetCurrent.next;\n }\n if (targetCurrent && targetCurrent.type) {\n return false;\n }\n return true;\n}\n","\"use strict\";\nimport { connect } from \"dva\";\nimport { checkPermission } from \"../../utils/permission\";\nconst Permission = (props) => {\n if (!props.userInfo) {\n return null;\n }\n if (!checkPermission(props.request, props.project, props.userInfo)) {\n return null;\n }\n return props.children;\n};\nexport default connect((store) => {\n return { ...store.user };\n})(Permission);\n","\"use strict\";\nimport React from \"react\";\nimport { If } from \"../If\";\nimport { Translation } from \"../Translation\";\nimport \"./index.less\";\nconst Empty = (props) => {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"empty\", style: props.style }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(If, { condition: !props.hideIcon }, /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n style: { width: props.iconWidth },\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"1890\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M512 0C229.261369 0 0 229.261369 0 512c0 282.738631 229.261369 512 512 512 282.738631 0 512-229.261369 512-512C1024 229.261369 794.738631 0 512 0L512 0zM512 999.82009c-269.049475 0-487.948026-218.898551-487.948026-487.948026 0-269.049475 218.898551-487.948026 487.948026-487.948026 269.049475 0 487.948026 218.898551 487.948026 487.948026C999.82009 781.049475 781.049475 999.82009 512 999.82009L512 999.82009zM512 999.82009\",\n \"p-id\": \"1891\",\n fill: \"#bfbfbf\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M223.632184 430.888556c0 16.375812 6.78061 32.623688 18.294853 44.265867 11.642179 11.642179 27.890055 18.294853 44.265867 18.294853 16.375812 0 32.623688-6.78061 44.265867-18.294853 11.642179-11.642179 18.294853-27.890055 18.294853-44.265867 0-16.375812-6.78061-32.751624-18.294853-44.265867-11.642179-11.642179-27.890055-18.294853-44.265867-18.294853-16.375812 0-32.751624 6.78061-44.265867 18.294853C230.412794 398.264868 223.632184 414.512744 223.632184 430.888556L223.632184 430.888556zM223.632184 430.888556\",\n \"p-id\": \"1892\",\n fill: \"#bfbfbf\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M674.606697 424.61969c0 16.503748 6.78061 33.007496 18.550725 44.777611 11.642179 11.642179 28.145927 18.550725 44.649675 18.550725 16.503748 0 33.007496-6.78061 44.777611-18.550725 11.770115-11.770115 18.550725-28.145927 18.550725-44.777611 0-16.503748-6.78061-33.007496-18.550725-44.777611-11.642179-11.642179-28.145927-18.550725-44.777611-18.550725-16.503748 0-33.007496 6.78061-44.649675 18.550725C681.387306 391.612194 674.606697 408.115942 674.606697 424.61969L674.606697 424.61969zM674.606697 424.61969\",\n \"p-id\": \"1893\",\n fill: \"#bfbfbf\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M385.471264 275.702149c-4.605697-11.642179-17.3993-17.527236-28.785607-13.049475l-153.77911 60.257871c-11.386307 4.477761-16.75962 17.527236-12.281859 29.041479l4.093953 10.490755c4.605697 11.642179 17.3993 17.527236 28.785607 13.049475l153.77911-60.257871c11.386307-4.477761 16.75962-17.527236 12.281859-29.169415L385.471264 275.702149 385.471264 275.702149zM385.471264 275.702149\",\n \"p-id\": \"1894\",\n fill: \"#bfbfbf\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M830.688656 318.816592l-156.465767-52.965517c-11.514243-3.838081-24.17991 2.558721-28.145927 14.328836l-3.582209 10.746627c-3.966017 11.898051 2.046977 24.563718 13.561219 28.529735l156.465767 52.965517c11.514243 3.966017 24.051974-2.558721 28.145927-14.328836l3.582209-10.746627C848.343828 335.448276 842.202899 322.654673 830.688656 318.816592L830.688656 318.816592zM830.688656 318.816592\",\n \"p-id\": \"1895\",\n fill: \"#bfbfbf\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M696.995502 663.604198c-6.268866-9.083458-18.550725-11.514243-27.378311-5.501249l-120.515742 82.902549c-8.827586 6.14093-11.002499 18.422789-4.733633 27.634183l5.629185 8.187906c6.268866 9.083458 18.550725 11.514243 27.378311 5.501249l120.515742-82.902549c8.827586-6.14093 11.002499-18.422789 4.733633-27.634183L696.995502 663.604198 696.995502 663.604198zM696.995502 663.604198\",\n \"p-id\": \"1896\",\n fill: \"#bfbfbf\"\n }\n )\n ))), /* @__PURE__ */ React.createElement(\"div\", { className: \"message\" }, props.message || /* @__PURE__ */ React.createElement(Translation, null, \"Empty Data\")));\n};\nexport default Empty;\n","\"use strict\";\nimport React from \"react\";\nimport \"./index.less\";\nimport { Grid, Card, Tag, Balloon } from \"@alifd/next\";\nimport Empty from \"../../../../components/Empty\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { intersectionArray } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nclass CardContent extends React.Component {\n constructor(props) {\n super(props);\n this.handleClick = (index, e) => {\n e.preventDefault();\n const { extendDotVisible } = this.state;\n this.setState({\n extendDotVisible: !extendDotVisible,\n choseIndex: index\n });\n };\n this.state = {\n extendDotVisible: false,\n choseIndex: 0\n };\n }\n render() {\n const { Row, Col } = Grid;\n const { addonLists, clickAddon, enabledAddons, selectTags } = this.props;\n const getTagColor = (tag) => {\n switch (tag) {\n case \"alpha\":\n return \"red\";\n case \"beta\":\n return \"red\";\n case \"GA\":\n return \"green\";\n default:\n return \"\";\n }\n };\n const nameUpper = (name) => {\n return name.split(\"-\").map((sep) => {\n if (sep.length > 0) {\n return sep.toUpperCase()[0];\n }\n return sep;\n }).toString().replace(\",\", \"\");\n };\n const orderAddonList = [];\n addonLists.map((addon) => {\n const status = enabledAddons?.filter((addonStatus) => {\n return addonStatus.name == addon.name;\n });\n if (selectTags.length > 0 && !intersectionArray(addon.tags, selectTags)?.length) {\n return;\n }\n if (status && status.length > 0 && status[0].phase == \"enabled\") {\n orderAddonList.unshift(addon);\n } else {\n orderAddonList.push(addon);\n }\n });\n const notice = \"This addon is experimental, please don't use it in production\";\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(If, { condition: addonLists }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, orderAddonList.map((item) => {\n const { name, icon, version, description, tags, registryName } = item;\n const status = enabledAddons?.filter((addonStatus) => {\n return addonStatus.name == name;\n });\n return /* @__PURE__ */ React.createElement(Col, { xl: 4, l: 6, m: 8, s: 12, xxs: 24, className: `card-content-wraper`, key: name }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\" }, /* @__PURE__ */ React.createElement(\"a\", { onClick: () => clickAddon(name) }, /* @__PURE__ */ React.createElement(\"div\", { className: \"cluster-card-top flexcenter\" }, /* @__PURE__ */ React.createElement(If, { condition: icon && icon != \"none\" }, /* @__PURE__ */ React.createElement(\"img\", { src: icon })), /* @__PURE__ */ React.createElement(If, { condition: !icon || icon === \"none\" }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n display: \"inline-block\",\n verticalAlign: \"middle\",\n padding: `2px 4px`,\n width: \"60px\",\n height: \"60px\",\n borderRadius: \"50%\",\n backgroundColor: \"#fff\",\n textAlign: \"center\",\n lineHeight: \"60px\"\n }\n },\n /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"#1b58f4\", fontSize: `2em` } }, nameUpper(name))\n )))), /* @__PURE__ */ React.createElement(\"div\", { className: \"content-wraper background-F9F8FF\" }, /* @__PURE__ */ React.createElement(Row, { className: \"content-title\" }, /* @__PURE__ */ React.createElement(Col, { span: \"16\", className: \"font-size-16\" }, /* @__PURE__ */ React.createElement(\"a\", { onClick: () => clickAddon(name) }, name)), /* @__PURE__ */ React.createElement(If, { condition: registryName && registryName == \"experimental\" }, /* @__PURE__ */ React.createElement(Col, { span: \"8\", className: \"flexright\" }, /* @__PURE__ */ React.createElement(Balloon, { trigger: /* @__PURE__ */ React.createElement(Tag, { color: \"yellow\" }, \"Experimental\") }, notice)))), /* @__PURE__ */ React.createElement(Row, { className: \"content-main\" }, /* @__PURE__ */ React.createElement(\"h4\", { className: \"color595959 font-size-14\", title: description }, description)), /* @__PURE__ */ React.createElement(Row, { className: \"content-main-btn\" }, tags?.map((tag) => {\n return /* @__PURE__ */ React.createElement(Tag, { title: tag, style: { marginRight: \"8px\" }, color: getTagColor(tag), key: tag }, tag);\n })), /* @__PURE__ */ React.createElement(Row, { className: \"content-foot colorA6A6A6\" }, /* @__PURE__ */ React.createElement(Col, { span: \"16\" }, /* @__PURE__ */ React.createElement(\"span\", null, version || \"0.0.0\")), /* @__PURE__ */ React.createElement(Col, { span: \"8\", className: \"text-align-right padding-right-10\" }, /* @__PURE__ */ React.createElement(If, { condition: status && status.length > 0 && status[0].phase == \"enabled\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-success\" }), /* @__PURE__ */ React.createElement(Translation, null, \"Enabled\")))))));\n }))), /* @__PURE__ */ React.createElement(If, { condition: !addonLists || addonLists.length == 0 }, /* @__PURE__ */ React.createElement(Empty, { style: { minHeight: \"400px\" } })));\n }\n}\nexport default CardContent;\n","\"use strict\";\nimport { get } from \"./request\";\nexport function listApplicationPods(params) {\n let velaQLParams = `appNs=${params.appNs}, appName=${params.appName}`;\n if (params.cluster) {\n velaQLParams = `cluster=${params.cluster}, clusterNs=${params.clusterNs}, ` + velaQLParams;\n }\n if (params.componentName) {\n velaQLParams = `name=${params.componentName}, ` + velaQLParams;\n }\n const urlParams = `component-pod-view{${velaQLParams}}.status`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listApplicationPodsDetails(params) {\n const urlParams = `pod-view{namespace=${params.namespace},name=${params.name},cluster=${params.cluster}}.status`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listNamespaces(params) {\n const urlParams = `resource-view{type=ns,cluster=${params.cluster}}.status`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listCloudResources(params) {\n const urlParams = `cloud-resource-view{appNs=${params.appNs},appName=${params.appName}}`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listCloudResourceSecrets(params) {\n let urlParams = `cloud-resource-secret-view{appNs=${params.appNs}}`;\n if (params.appName) {\n urlParams = `cloud-resource-secret-view{appNs=${params.appNs},appName=${params.appName}}`;\n }\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listApplicationService(params) {\n let urlParams = `service-view{appNs=${params.appNs}, appName=${params.appName}}`;\n if (params.cluster) {\n urlParams = `service-view{appNs=${params.appNs}, appName=${params.appName}, cluster=${params.cluster},clusterNs=${params.clusterNs}}`;\n }\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listContainerLog(params) {\n const urlParams = `collect-logs{cluster=${params.cluster}, namespace=${params.namespace}, pod=${params.pod}, container=${params.container}, previous=${params.previous}, timestamps=${params.timestamps}, tailLines=${params.tailLines}}`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listApplicationServiceEndpoints(params) {\n let velaQLParams = `appNs=${params.appNs}, appName=${params.appName}`;\n if (params.cluster) {\n velaQLParams = `cluster=${params.cluster}, clusterNs=${params.clusterNs}, ` + velaQLParams;\n }\n if (params.componentName) {\n velaQLParams = `name=${params.componentName}, ` + velaQLParams;\n }\n const urlParams = `service-endpoints-view{${velaQLParams}}.status`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listApplicationServiceAppliedResources(params) {\n let velaQLParams = `appNs=${params.appNs}, appName=${params.appName}`;\n if (params.cluster) {\n velaQLParams = `cluster=${params.cluster}, clusterNs=${params.clusterNs}, ` + velaQLParams;\n }\n if (params.componentName) {\n velaQLParams = `name=${params.componentName}, ` + velaQLParams;\n }\n const urlParams = `service-applied-resources-view{${velaQLParams}}.status`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function listApplicationResourceTree(params) {\n let velaQLParams = `appNs=${params.appNs}, appName=${params.appName}`;\n if (params.cluster) {\n velaQLParams = `cluster=${params.cluster}, clusterNs=${params.clusterNs}, ` + velaQLParams;\n }\n if (params.componentName) {\n velaQLParams = `name=${params.componentName}, ` + velaQLParams;\n }\n const urlParams = `application-resource-tree-view{${velaQLParams}}.status`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\nexport function detailResource(params) {\n let velaQLParams = `name=${params.name}, kind=${params.kind}, apiVersion=${params.apiVersion}`;\n if (params.cluster) {\n velaQLParams = `cluster=${params.cluster}, ` + velaQLParams;\n }\n if (params.namespace) {\n velaQLParams = `namespace=${params.namespace}, ` + velaQLParams;\n }\n const urlParams = `application-resource-detail-view{${velaQLParams}}.status`;\n return get(\"/api/v1/query\", {\n params: {\n velaql: urlParams\n }\n });\n}\n","\"use strict\";\nimport { Drawer, Button } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport \"./index.less\";\nimport { If } from \"../If\";\nimport { Translation } from \"../Translation\";\nclass DrawerWithFooter extends Component {\n render() {\n const { visible, children, title, placement, width, onOk, onClose, extButtons, onOkButtonText, onOkButtonLoading } = this.props;\n return /* @__PURE__ */ React.createElement(\n Drawer,\n {\n title: /* @__PURE__ */ React.createElement(React.Fragment, null, title),\n closeMode: \"close\",\n className: \"customDrawer\",\n closeable: \"close\",\n onClose,\n visible: visible || true,\n autoFocus: true,\n placement: placement || \"right\",\n width: width || \"600px\"\n },\n /* @__PURE__ */ React.createElement(\"div\", { style: { paddingBottom: \"60px\" } }, children, /* @__PURE__ */ React.createElement(\"div\", { className: \"drawer-footer\" }, extButtons, /* @__PURE__ */ React.createElement(If, { condition: onOk }, /* @__PURE__ */ React.createElement(Button, { loading: onOkButtonLoading, type: \"primary\", onClick: onOk }, /* @__PURE__ */ React.createElement(Translation, null, onOkButtonText ? onOkButtonText : \"Submit\")))))\n );\n }\n}\nexport default DrawerWithFooter;\n","\"use strict\";\nimport { Dialog, Table, Card, Loading, Button, Balloon } from \"@alifd/next\";\nimport { Link } from \"dva/router\";\nimport React from \"react\";\nimport { AiOutlineQuestionCircle } from \"react-icons/ai\";\nimport { Translation } from \"../../components/Translation\";\nimport { locale } from \"../../utils/locale\";\nimport { If } from \"../If\";\nclass StatusShow extends React.Component {\n render() {\n const { applicationStatus, onClose, loading, title } = this.props;\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n locale: locale().Dialog,\n visible: true,\n title,\n autoFocus: true,\n overflowScroll: true,\n style: { width: \"800px\" },\n onClose,\n footer: /* @__PURE__ */ React.createElement(\"div\", { className: \"next-dialog-footer\" }, /* @__PURE__ */ React.createElement(Button, { onClick: onClose }, /* @__PURE__ */ React.createElement(Translation, null, \"Close\")), /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.props.loadStatusDetail }, /* @__PURE__ */ React.createElement(Translation, null, \"Refresh\"))),\n v2: true\n },\n /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"200px\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Applied Resources\") }, /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: applicationStatus?.appliedResources }, /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"name\",\n width: \"150px\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Namespace/Name\"),\n cell: (v, i, row) => {\n return `${row.namespace || \"-\"}/${row.name}`;\n }\n }\n ), /* @__PURE__ */ React.createElement(Table.Column, { width: \"150px\", dataIndex: \"kind\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Kind\") }), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"apiVersion\", title: /* @__PURE__ */ React.createElement(Translation, null, \"APIVersion\") }), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"cluster\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Cluster\"),\n width: \"120px\",\n cell: (v) => {\n if (!v) {\n return /* @__PURE__ */ React.createElement(Link, { to: \"/clusters\" }, \"Local\");\n }\n return /* @__PURE__ */ React.createElement(Link, { to: \"/clusters\" }, v);\n }\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: applicationStatus?.conditions }, /* @__PURE__ */ React.createElement(\n Card,\n {\n locale: locale().Card,\n style: { marginTop: \"8px\" },\n contentHeight: \"auto\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Conditions\")\n },\n /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: applicationStatus?.conditions }, /* @__PURE__ */ React.createElement(Table.Column, { width: \"150px\", dataIndex: \"type\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Type\") }), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"status\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Status\") }), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"lastTransitionTime\", title: /* @__PURE__ */ React.createElement(Translation, null, \"LastTransitionTime\") }), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"reason\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Reason\"),\n cell: (v, index, row) => {\n if (row.message) {\n return /* @__PURE__ */ React.createElement(\n Balloon,\n {\n trigger: /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"red\", cursor: \"pointer\" } }, v, \" \", /* @__PURE__ */ React.createElement(AiOutlineQuestionCircle, null))\n },\n row.message\n );\n }\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n }\n ))\n )), /* @__PURE__ */ React.createElement(If, { condition: applicationStatus?.services }, /* @__PURE__ */ React.createElement(\n Card,\n {\n locale: locale().Card,\n style: { marginTop: \"8px\", marginBottom: \"16px\" },\n contentHeight: \"auto\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Component Status\")\n },\n /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, className: \"customTable\", dataSource: applicationStatus?.services }, /* @__PURE__ */ React.createElement(Table.Column, { align: \"left\", dataIndex: \"name\", width: \"200px\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\") }), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n align: \"left\",\n dataIndex: \"healthy\",\n width: \"100px\",\n cell: (v) => {\n if (v) {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-success\" }), /* @__PURE__ */ React.createElement(\"span\", null, \"Healthy\"));\n }\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-warning\" }), /* @__PURE__ */ React.createElement(\"span\", null, \"UnHealthy\"));\n },\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Healthy\")\n }\n ), /* @__PURE__ */ React.createElement(Table.Column, { align: \"center\", dataIndex: \"message\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Message\") }))\n )))\n );\n }\n}\nexport default StatusShow;\n","\"use strict\";\nimport { Input } from \"@alifd/next\";\nimport React from \"react\";\nclass CPUNumber extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = async () => {\n };\n this.onChange = (value) => {\n const { onChange } = this.props;\n if (onChange) {\n onChange(`${value}`);\n }\n };\n this.state = {\n dataSource: []\n };\n }\n render() {\n const { value, id, disabled } = this.props;\n let initValue = void 0;\n if (value) {\n initValue = parseFloat(value);\n }\n return /* @__PURE__ */ React.createElement(\n Input,\n {\n id,\n disabled,\n addonTextAfter: \"Core\",\n htmlType: \"number\",\n onChange: this.onChange,\n value: initValue && initValue\n }\n );\n }\n}\nexport default CPUNumber;\n","\"use strict\";\nexport default {\n base: \"vs-dark\",\n inherit: true,\n rules: [\n {\n background: \"1B191A\",\n token: \"\"\n },\n {\n foreground: \"555555\",\n token: \"comment\"\n },\n {\n foreground: \"555555\",\n token: \"comment.block\"\n },\n {\n foreground: \"ad9361\",\n token: \"string\"\n },\n {\n foreground: \"cccccc\",\n token: \"constant.numeric\"\n },\n {\n foreground: \"a1a1ff\",\n token: \"keyword\"\n },\n {\n foreground: \"2f006e\",\n token: \"meta.preprocessor\"\n },\n {\n fontStyle: \"bold\",\n token: \"keyword.control.import\"\n },\n {\n foreground: \"a1a1ff\",\n token: \"support.function\"\n },\n {\n foreground: \"0000ff\",\n token: \"declaration.function function-result\"\n },\n {\n fontStyle: \"bold\",\n token: \"declaration.function function-name\"\n },\n {\n fontStyle: \"bold\",\n token: \"declaration.function argument-name\"\n },\n {\n foreground: \"0000ff\",\n token: \"declaration.function function-arg-type\"\n },\n {\n fontStyle: \"italic\",\n token: \"declaration.function function-argument\"\n },\n {\n fontStyle: \"underline\",\n token: \"declaration.class class-name\"\n },\n {\n fontStyle: \"italic underline\",\n token: \"declaration.class class-inheritance\"\n },\n {\n foreground: \"fff9f9\",\n background: \"ff0000\",\n fontStyle: \"bold\",\n token: \"invalid\"\n },\n {\n background: \"ffd0d0\",\n token: \"invalid.deprecated.trailing-whitespace\"\n },\n {\n fontStyle: \"italic\",\n token: \"declaration.section section-name\"\n },\n {\n foreground: \"c10006\",\n token: \"string.interpolation\"\n },\n {\n foreground: \"666666\",\n token: \"string.regexp\"\n },\n {\n foreground: \"c1c144\",\n token: \"variable\"\n },\n {\n foreground: \"6782d3\",\n token: \"constant\"\n },\n {\n foreground: \"afa472\",\n token: \"constant.character\"\n },\n {\n foreground: \"de8e30\",\n fontStyle: \"bold\",\n token: \"constant.language\"\n },\n {\n fontStyle: \"underline\",\n token: \"embedded\"\n },\n {\n foreground: \"858ef4\",\n token: \"keyword.markup.element-name\"\n },\n {\n foreground: \"9b456f\",\n token: \"keyword.markup.attribute-name\"\n },\n {\n foreground: \"9b456f\",\n token: \"meta.attribute-with-value\"\n },\n {\n foreground: \"c82255\",\n fontStyle: \"bold\",\n token: \"keyword.exception\"\n },\n {\n foreground: \"47b8d6\",\n token: \"keyword.operator\"\n },\n {\n foreground: \"6969fa\",\n fontStyle: \"bold\",\n token: \"keyword.control\"\n },\n {\n foreground: \"68685b\",\n token: \"meta.tag.preprocessor.xml\"\n },\n {\n foreground: \"888888\",\n token: \"meta.tag.sgml.doctype\"\n },\n {\n fontStyle: \"italic\",\n token: \"string.quoted.docinfo.doctype.DTD\"\n },\n {\n foreground: \"909090\",\n token: \"comment.other.server-side-include.xhtml\"\n },\n {\n foreground: \"909090\",\n token: \"comment.other.server-side-include.html\"\n },\n {\n foreground: \"858ef4\",\n token: \"text.html declaration.tag\"\n },\n {\n foreground: \"858ef4\",\n token: \"text.html meta.tag\"\n },\n {\n foreground: \"858ef4\",\n token: \"text.html entity.name.tag.xhtml\"\n },\n {\n foreground: \"9b456f\",\n token: \"keyword.markup.attribute-name\"\n },\n {\n foreground: \"777777\",\n token: \"keyword.other.phpdoc.php\"\n },\n {\n foreground: \"c82255\",\n token: \"keyword.other.include.php\"\n },\n {\n foreground: \"de8e20\",\n fontStyle: \"bold\",\n token: \"support.constant.core.php\"\n },\n {\n foreground: \"de8e10\",\n fontStyle: \"bold\",\n token: \"support.constant.std.php\"\n },\n {\n foreground: \"b72e1d\",\n token: \"variable.other.global.php\"\n },\n {\n foreground: \"00ff00\",\n token: \"variable.other.global.safer.php\"\n },\n {\n foreground: \"bfa36d\",\n token: \"string.quoted.single.php\"\n },\n {\n foreground: \"6969fa\",\n token: \"keyword.storage.php\"\n },\n {\n foreground: \"ad9361\",\n token: \"string.quoted.double.php\"\n },\n {\n foreground: \"ec9e00\",\n token: \"entity.other.attribute-name.id.css\"\n },\n {\n foreground: \"b8cd06\",\n fontStyle: \"bold\",\n token: \"entity.name.tag.css\"\n },\n {\n foreground: \"edca06\",\n token: \"entity.other.attribute-name.class.css\"\n },\n {\n foreground: \"2e759c\",\n token: \"entity.other.attribute-name.pseudo-class.css\"\n },\n {\n foreground: \"ffffff\",\n background: \"ff0000\",\n token: \"invalid.bad-comma.css\"\n },\n {\n foreground: \"9b2e4d\",\n token: \"support.constant.property-value.css\"\n },\n {\n foreground: \"e1c96b\",\n token: \"support.type.property-name.css\"\n },\n {\n foreground: \"666633\",\n token: \"constant.other.rgb-value.css\"\n },\n {\n foreground: \"666633\",\n token: \"support.constant.font-name.css\"\n },\n {\n foreground: \"7171f3\",\n token: \"support.constant.tm-language-def\"\n },\n {\n foreground: \"7171f3\",\n token: \"support.constant.name.tm-language-def\"\n },\n {\n foreground: \"6969fa\",\n token: \"keyword.other.unit.css\"\n }\n ],\n colors: {\n \"editor.foreground\": \"#DADADA\",\n \"editor.background\": \"#1B191A\",\n \"editor.selectionBackground\": \"#73597E80\",\n \"editor.lineHighlightBackground\": \"#353030\",\n \"editorCursor.foreground\": \"#FFFFFF\",\n \"editorWhitespace.foreground\": \"#4F4D4D\"\n }\n};\n","\"use strict\";\nimport * as monaco from \"monaco-editor\";\nimport React from \"react\";\nimport defineTheme from \"../DefinitionCode/theme\";\nclass DefinitionCode extends React.Component {\n componentDidMount() {\n const {\n containerId,\n value = \"\",\n language,\n readOnly,\n onChange,\n onBlurEditor,\n fileUrl = `//b.txt`,\n theme = \"default\"\n } = this.props;\n const container = document.getElementById(containerId);\n if (container) {\n container.innerHTML = \"\";\n }\n if (defineTheme) {\n monaco.editor.defineTheme(\"default\", defineTheme);\n monaco.editor.setTheme(\"default\");\n }\n const modelUri = monaco.Uri.parse(`${containerId}:${fileUrl}`);\n let model = monaco.editor.getModel(modelUri);\n if (!model) {\n model = monaco.editor.createModel(value, language, modelUri);\n model.setValue(value);\n }\n this.editor = monaco.editor.create(container, {\n value,\n language,\n readOnly,\n minimap: { enabled: false },\n automaticLayout: true,\n model,\n theme\n });\n const textModel = this.editor.getModel();\n if (textModel) {\n if (onChange) {\n this.editor.onDidChangeModelContent(() => onChange(textModel.getValue()));\n }\n if (onBlurEditor) {\n this.editor.onDidBlurEditorText(() => {\n onBlurEditor(textModel.getValue());\n });\n }\n monaco.editor.setModelLanguage(textModel, language);\n }\n }\n componentWillReceiveProps(nextProps) {\n const { language, value, runtime } = nextProps;\n if (language !== this.props.language || runtime !== this.props.runtime || value !== this.props.value) {\n if (this.editor) {\n this.editor.getModel()?.setValue(value || \"\");\n }\n }\n }\n componentWillUnmount() {\n if (this.editor) {\n this.editor.dispose();\n }\n }\n shouldComponentUpdate() {\n return false;\n }\n render() {\n return null;\n }\n}\nexport default DefinitionCode;\n","\"use strict\";\nimport { Upload, Button, Field } from \"@alifd/next\";\nimport { decode, encode } from \"base-64\";\nimport React from \"react\";\nimport { AiOutlineCloudUpload } from \"react-icons/ai\";\nimport { v4 as uuid } from \"uuid\";\nimport DefinitionCode from \"../../components/DefinitionCode\";\nimport { If } from \"../../components/If\";\nimport { Translation } from \"../../components/Translation\";\nclass CertBase64 extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n const { value } = this.props;\n this.setValues(value);\n };\n this.setValues = (value) => {\n if (value) {\n this.form.setValue(\"cert\", decode(value));\n }\n };\n this.onChange = (v) => {\n const { onChange } = this.props;\n if (onChange) {\n onChange(encode(v));\n }\n };\n this.customRequest = (option) => {\n const reader = new FileReader();\n const fileselect = option.file;\n reader.readAsText(fileselect);\n reader.onload = () => {\n this.form.setValue(\"cert\", reader.result?.toString() || \"\");\n };\n return {\n file: File,\n abort() {\n }\n };\n };\n this.state = {\n message: \"\",\n containerId: uuid()\n };\n this.form = new Field(this, {\n onChange: () => {\n const values = this.form.getValues();\n this.onChange(values.cert);\n }\n });\n }\n render() {\n const { id, disabled } = this.props;\n const { init } = this.form;\n const { message, containerId } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { id }, /* @__PURE__ */ React.createElement(If, { condition: message }, /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"red\" } }, message)), /* @__PURE__ */ React.createElement(Upload, { disabled, request: this.customRequest }, /* @__PURE__ */ React.createElement(Button, { text: true, type: \"normal\", className: \"padding-left-0\" }, /* @__PURE__ */ React.createElement(AiOutlineCloudUpload, null), /* @__PURE__ */ React.createElement(Translation, null, \"Upload File\"))), /* @__PURE__ */ React.createElement(\"div\", { id: containerId, className: \"guide-code\" }, /* @__PURE__ */ React.createElement(DefinitionCode, { containerId, language: \"yaml\", readOnly: disabled, ...init(\"cert\") })));\n }\n}\nexport default CertBase64;\n","\"use strict\";\nimport { Select } from \"@alifd/next\";\nimport * as React from \"react\";\nimport { locale } from \"../../utils/locale\";\nexport const CustomSelect = (props) => {\n const [inputValue, setInputValue] = React.useState(\"\");\n const dataSource = [...props.dataSource || []];\n if (inputValue != \"\") {\n dataSource.unshift({ label: inputValue, value: inputValue });\n }\n return /* @__PURE__ */ React.createElement(\n Select,\n {\n ...props,\n locale: locale().Select,\n showSearch: true,\n onSearch: (value) => {\n if (props.enableInput) {\n setInputValue(value);\n }\n if (props.onSearch) {\n props.onSearch(value);\n }\n },\n dataSource\n },\n props.children\n );\n};\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Card, Form, Select, Grid, Field, Balloon, Message } from \"@alifd/next\";\nimport classNames from \"classnames\";\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nimport { getApplicationComponent } from \"../../api/application\";\nimport { CustomSelect } from \"../../components/CustomSelect\";\nimport { If } from \"../../components/If\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nconst { Col, Row } = Grid;\nlet ComponentPatch = class extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n this.onLoadComponents();\n };\n this.onSubmit = () => {\n this.form.validate((error, res) => {\n if (error) {\n return;\n }\n this.props.onChange({ ...res });\n });\n };\n this.onLoadComponents = () => {\n const name = this.form.getValue(\"name\");\n const type = this.form.getValue(\"type\");\n const components = this.props.getComponents(name, type);\n this.setState({\n components\n });\n };\n this.setFormValue = (name, value) => {\n this.form.setValue(name, value);\n this.onSubmit();\n };\n this.loadAndSetComponentProperties = (com) => {\n const { appName } = this.props;\n if (com) {\n getApplicationComponent(appName, com.name).then((res) => {\n this.form.setValue(\"properties\", res.properties);\n this.onSubmit();\n Message.success(\"Assign the default values for the properties successfully\");\n });\n }\n };\n this.state = {};\n this.form = new Field(this, {\n onChange: (name) => {\n if (name == \"name\" || name == \"type\") {\n this.onLoadComponents();\n }\n this.onSubmit();\n },\n values: { ...props.value }\n });\n this.props.registerForm(this.form);\n }\n render() {\n const { value, id, disabled } = this.props;\n const { componentOptions, componentTypeOptions } = this.props;\n const { init } = this.form;\n const { components } = this.state;\n const traits = [];\n const traitKey = /* @__PURE__ */ new Map();\n components?.map((com) => {\n com.traits?.map((t) => {\n if (!traitKey.get(t.type)) {\n traits.push(t);\n traitKey.set(t.type, t.type);\n }\n });\n });\n const traitPatches = this.form.getValue(\"traits\") || [];\n const traitPatchMap = /* @__PURE__ */ new Map();\n traitPatches.map((item) => {\n traitPatchMap.set(item.type, item);\n });\n const validatorName = (rule, v, callback) => {\n if (!v && !this.form.getValue(\"type\")) {\n callback(\"Please select a component or component type.\");\n return;\n }\n callback();\n };\n const validatorType = (rule, v, callback) => {\n if (!v && !this.form.getValue(\"name\")) {\n callback(\"Please select a component or component type.\");\n return;\n }\n callback();\n };\n const notice = \"If you want to create the patch for the component or trait properties, let's switch to the coding mode.\";\n return /* @__PURE__ */ React.createElement(\n Card,\n {\n id,\n className: \"withActions\",\n title: \"Component patch configuration\",\n contentHeight: \"auto\",\n subTitle: /* @__PURE__ */ React.createElement(\"a\", { onClick: () => this.props.onRemove(id) }, /* @__PURE__ */ React.createElement(AiOutlineDelete, { size: 15 }))\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.form }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Name\").toString() }, /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"You can base a component to set the patch configuration\"),\n disabled,\n dataSource: componentOptions,\n hasClear: true,\n ...init(\"name\", {\n initValue: value?.name,\n rules: [{ validator: validatorName }]\n }),\n locale: locale().Select,\n onBlur: this.onSubmit\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Type\").toString() }, /* @__PURE__ */ React.createElement(\n CustomSelect,\n {\n placeholder: i18n.t(\"You can base a component type to set the patch configuration\"),\n disabled,\n dataSource: componentTypeOptions,\n hasClear: true,\n enableInput: true,\n ...init(\"type\", {\n initValue: value?.type,\n rules: [{ validator: validatorType }]\n }),\n locale: locale().Select,\n onBlur: this.onSubmit\n }\n )))), /* @__PURE__ */ React.createElement(If, { condition: traits }, /* @__PURE__ */ React.createElement(\"div\", { style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"Traits\", ...init(\"traits\", {}) }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, traits.map((trait) => {\n const label = trait.alias ? trait.alias + \"(\" + trait.type + \")\" : trait.type;\n const disable = traitPatchMap.get(trait.type)?.disable;\n const icon = /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n onClick: (event) => {\n event.stopPropagation();\n if (disable) {\n this.setFormValue(\n \"traits\",\n traitPatches.filter((t) => t.type != trait.type)\n );\n } else {\n this.setFormValue(\"traits\", [...traitPatches, { type: trait.type, disable: true }]);\n }\n },\n size: 14,\n className: \"danger-icon\",\n title: disable ? i18n.t(\"Cancel Disable\") : i18n.t(\"Disable\")\n }\n );\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: trait.type,\n onClick: () => {\n },\n className: classNames(\"trait-icon\", {\n disable\n }),\n title: disable ? \"Disabled\" : \"\"\n },\n /* @__PURE__ */ React.createElement(\"div\", null, label),\n /* @__PURE__ */ React.createElement(\"div\", { className: \"trait-actions\" }, /* @__PURE__ */ React.createElement(Balloon, { trigger: icon }, disable ? i18n.t(\"Cancel Disable\") : i18n.t(\"Disable\")))\n );\n }))))), /* @__PURE__ */ React.createElement(If, { condition: components }, /* @__PURE__ */ React.createElement(\"div\", { style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"Properties\", ...init(\"properties\", {}) }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\" }, /* @__PURE__ */ React.createElement(Translation, null, notice), /* @__PURE__ */ React.createElement(If, { condition: components?.length == 1 }, /* @__PURE__ */ React.createElement(\n \"a\",\n {\n onClick: () => {\n this.loadAndSetComponentProperties(components && components[0]);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Assign the default properties\")\n )))))))\n );\n }\n};\nComponentPatch = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], ComponentPatch);\nexport default ComponentPatch;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Field } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport { AiOutlinePlus } from \"react-icons/ai\";\nimport { v4 as uuid } from \"uuid\";\nimport { getApplicationComponents } from \"../../api/application\";\nimport ComponentPatch from \"./component-patch\";\nlet ComponentPatches = class extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n this.fetchComponentList();\n };\n this.fetchComponentList = async () => {\n const { appName } = this.props;\n if (appName) {\n getApplicationComponents({\n appName\n }).then((res) => {\n if (res && res.components) {\n const componentTypeOptions = [];\n const componentOptions = (res.components || []).map(\n (item) => {\n componentTypeOptions.push({\n label: item.componentType,\n value: item.componentType\n });\n return {\n label: `${item.name}(${item.alias || \"-\"})`,\n value: item.name\n };\n }\n );\n this.setState(\n {\n componentOptions,\n componentTypeOptions,\n components: res.components\n },\n () => {\n this.loadValue();\n }\n );\n } else {\n this.setState({\n componentOptions: [],\n componentTypeOptions: [],\n components: []\n });\n }\n }).catch(() => {\n this.setState({\n componentOptions: [],\n componentTypeOptions: [],\n components: []\n });\n });\n }\n };\n this.addPatch = () => {\n this.setState((prevState) => ({\n componentPatches: [...prevState.componentPatches, { id: uuid() }]\n }));\n };\n this.onRemove = (id) => {\n this.setState((prevState) => ({\n componentPatches: prevState.componentPatches.filter((cp) => cp.id != id) || []\n }));\n this.field.remove(id);\n };\n this.onRegisterForm = (key, form) => {\n this.registerForm[key] = form;\n };\n this.loadValue = () => {\n const { value } = this.props;\n if (Array.isArray(value)) {\n this.setState({\n componentPatches: value.map((v) => {\n return { ...v, id: uuid() };\n })\n });\n }\n };\n this.state = {\n componentOptions: [],\n componentTypeOptions: [],\n componentPatches: [],\n components: []\n };\n this.field = new Field(this, {\n onChange: () => {\n const values = this.field.getValues();\n const data = [];\n Object.keys(values).map((key) => {\n delete values[key].id;\n data.push(values[key]);\n });\n const { onChange } = this.props;\n if (onChange) {\n onChange(data);\n }\n }\n });\n this.props.registerForm(this.field);\n this.registerForm = {};\n }\n render() {\n const { id, disabled, appName, projectName } = this.props;\n const { componentOptions, componentTypeOptions, componentPatches, components } = this.state;\n const { init } = this.field;\n return /* @__PURE__ */ React.createElement(\"div\", { id }, !disabled && /* @__PURE__ */ React.createElement(\"div\", { className: \"flexright\" }, /* @__PURE__ */ React.createElement(\"a\", { onClick: this.addPatch }, /* @__PURE__ */ React.createElement(AiOutlinePlus, null), \" Add a component patch\")), componentPatches.map((cp) => {\n if (!cp || !cp.id) {\n return;\n }\n const validator = (rule, v, callback) => {\n if (cp.id && this.registerForm[cp.id]) {\n this.registerForm[cp.id].validate((errors) => {\n if (errors) {\n callback(`The component patch ${cp?.name} validate failure`);\n return;\n }\n callback();\n });\n } else {\n callback();\n }\n };\n return /* @__PURE__ */ React.createElement(\n ComponentPatch,\n {\n key: cp.id,\n appName: appName || \"\",\n projectName: projectName || \"\",\n onRemove: this.onRemove,\n disabled: false,\n componentOptions,\n getComponents: (name, type) => {\n return components.filter((com) => {\n return com.name == name || com.componentType == type;\n });\n },\n ...init(cp.id, {\n initValue: cp,\n rules: [{ validator }]\n }),\n componentTypeOptions,\n registerForm: (form) => {\n if (cp.id) {\n this.onRegisterForm(cp.id, form);\n }\n }\n }\n );\n }));\n }\n};\nComponentPatches = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], ComponentPatches);\nexport default ComponentPatches;\n","\"use strict\";\nimport React from \"react\";\nexport const UISchemaContext = React.createContext({});\nexport const WorkflowContext = React.createContext({});\nexport const WorkflowEditContext = React.createContext({});\n","\"use strict\";\nimport { Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { UISchemaContext } from \"../../context\";\nimport { getApplicationComponents } from \"../../api/application\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nclass ComponentSelect extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n this.fetchComponentList();\n };\n this.fetchComponentList = async () => {\n const { appName = \"\" } = this.context;\n if (appName) {\n getApplicationComponents({\n appName\n }).then((res) => {\n if (res && res.components) {\n const componentOptions = (res.components || []).map((item) => {\n return {\n label: `${item.name}(${item.alias || \"-\"})`,\n value: item.name\n };\n });\n this.setState({\n componentOptions\n });\n } else {\n this.setState({\n componentOptions: []\n });\n }\n }).catch(() => {\n this.setState({\n componentOptions: []\n });\n });\n }\n };\n this.onChange = (value) => {\n const { onChange } = this.props;\n onChange(value);\n };\n this.state = {\n componentOptions: []\n };\n }\n render() {\n const { value, id, disabled } = this.props;\n const { componentOptions } = this.state;\n return /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Please select the components\"),\n onChange: this.onChange,\n id,\n disabled,\n defaultValue: value || [],\n value: value || [],\n dataSource: componentOptions,\n mode: \"multiple\",\n locale: locale().Select\n }\n );\n }\n}\nComponentSelect.contextType = UISchemaContext;\nexport default ComponentSelect;\n","\"use strict\";\nimport { Input } from \"@alifd/next\";\nimport React from \"react\";\nclass DiskNumber extends React.Component {\n constructor(props) {\n super(props);\n this.onChange = (value) => {\n const { onChange } = this.props;\n if (onChange) {\n onChange(value + \"Gi\");\n }\n };\n this.state = {};\n }\n render() {\n const { value, id, disabled } = this.props;\n let initValue = void 0;\n if (value) {\n initValue = parseInt(value.replace(\"Gi\", \"\"), 10);\n }\n return /* @__PURE__ */ React.createElement(\n Input,\n {\n id,\n disabled,\n min: \"0\",\n addonTextAfter: \"Gi\",\n htmlType: \"number\",\n onChange: this.onChange,\n value: initValue\n }\n );\n }\n}\nexport default DiskNumber;\n","\"use strict\";\nimport { Icon, Loading, Grid, Switch, Dialog } from \"@alifd/next\";\nimport React from \"react\";\nimport { Translation } from \"../../components/Translation\";\nimport { locale } from \"../../utils/locale\";\nimport \"./index.less\";\nimport { If } from \"../../components/If\";\nconst { Col, Row } = Grid;\nclass Group extends React.Component {\n constructor(props) {\n super(props);\n this.toggleShowClass = () => {\n const { closed } = this.state;\n this.setState({\n closed: !closed\n });\n };\n this.initSwitchState = () => {\n const { jsonKey = \"\", propertyValue = {}, alwaysShow = false, required, closed, initClose } = this.props;\n const findKey = propertyValue && Object.keys(propertyValue).find((item) => item === jsonKey);\n if (findKey || alwaysShow) {\n this.setState({ enable: true, closed: initClose, checked: true });\n } else if (required) {\n this.setState({ enable: true, closed: initClose, checked: true });\n } else {\n this.setState({ enable: false, closed: closed || initClose, checked: false });\n }\n };\n this.state = {\n closed: props.closed,\n enable: props.required,\n checked: false\n };\n }\n componentDidMount() {\n this.initSwitchState();\n }\n removeJsonKeyValue() {\n const { jsonKey = \"\", onChange } = this.props;\n const field = this.props.field;\n if (field && onChange) {\n field.remove(jsonKey);\n const values = field.getValues();\n onChange(values);\n }\n }\n render() {\n const { title, description, children, hasToggleIcon, loading, required, disableAddon = false } = this.props;\n const { closed, enable, checked } = this.state;\n return /* @__PURE__ */ React.createElement(Loading, { visible: loading || false, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"group-container\" }, /* @__PURE__ */ React.createElement(If, { condition: title }, /* @__PURE__ */ React.createElement(\"div\", { className: \"group-title-container\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: \"21\" }, /* @__PURE__ */ React.createElement(\"span\", { className: `group-title ${required && \"required\"}` }, title), /* @__PURE__ */ React.createElement(\"div\", { className: \"group-title-desc\" }, description)), /* @__PURE__ */ React.createElement(Col, { span: \"3\", className: \"flexcenter\" }, /* @__PURE__ */ React.createElement(If, { condition: !required }, /* @__PURE__ */ React.createElement(\n Switch,\n {\n size: \"small\",\n defaultChecked: required,\n checked,\n disabled: disableAddon,\n onChange: (event) => {\n if (event === true) {\n this.setState({ enable: event, closed: false, checked: true });\n } else if (event === false) {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"The configuration will be reset if the switch is turned off. Are you sure want to do this?\"),\n onOk: () => {\n this.setState({ enable: event, closed: false, checked: false });\n this.removeJsonKeyValue();\n },\n locale: locale().Dialog\n });\n }\n }\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: enable && hasToggleIcon }, /* @__PURE__ */ React.createElement(Icon, { onClick: this.toggleShowClass, className: \"icon\", type: closed ? \"arrow-down\" : \"arrow-up\" })))))), /* @__PURE__ */ React.createElement(If, { condition: enable }, /* @__PURE__ */ React.createElement(\"div\", { className: `group-box ${closed ? \"disable\" : \"\"}` }, children))));\n }\n}\nexport default Group;\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { repository } from \"./productionLink\";\nimport { get } from \"./request\";\nconst baseURLOject = getDomain();\nconst baseURL = baseURLOject.APIBASE;\nexport function getChartValues(params) {\n const url = baseURL + repository + \"/charts/\" + params.chart + \"/versions/\" + params.version + \"/values\";\n return get(url, {\n params: { repoUrl: params.url, repoType: params.repoType, secretName: params.secretName }\n }).then((res) => res);\n}\nexport function getChartValueFiles(params) {\n const url = baseURL + repository + \"/chart/values\";\n return get(url, {\n params: {\n repoUrl: params.url,\n repoType: params.repoType,\n secretName: params.secretName,\n chart: params.chart,\n version: params.version,\n project: params.project\n }\n }).then((res) => res);\n}\nexport function getCharts(params) {\n const url = baseURL + repository + \"/charts\";\n return get(url, {\n params: { repoUrl: params.url, repoType: params.repoType, secretName: params.secretName, project: params.project }\n }).then((res) => res);\n}\nexport function getChartVersions(params) {\n const url = baseURL + repository + \"/chart/versions\";\n return get(url, {\n params: {\n repoUrl: params.url,\n repoType: params.repoType,\n secretName: params.secretName,\n chart: params.chart,\n project: params.project\n }\n }).then((res) => res);\n}\nexport function getChartRepos(params) {\n const url = baseURL + repository + \"/chart_repos\";\n if (!params.project) {\n delete params.project;\n }\n return get(url, { params }).then((res) => res);\n}\nexport function getImageRepos(params) {\n const url = baseURL + repository + \"/image/repos\";\n return get(url, { params }).then((res) => res);\n}\nexport function getImageInfo(params) {\n const url = baseURL + repository + \"/image/info\";\n return get(url, { params }).then((res) => res);\n}\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Loading, Select } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport { getCharts } from \"../../api/repository\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nlet HelmChartSelect = class extends Component {\n constructor(props) {\n super(props);\n this.loadCharts = () => {\n const { project } = this.props;\n const { helm, repo } = this.props;\n if (helm?.url && (!this.state.loading || this.state.helm?.url != helm.url)) {\n if (this.state.helm) {\n this.props.onChange(\"\");\n }\n this.setState({ loading: true, helm });\n getCharts({ url: helm.url, repoType: helm.repoType, secretName: repo?.secretName, project }).then(\n (re) => {\n this.setState({ charts: re && Array.isArray(re) ? re : [], loading: false, helm });\n }\n );\n }\n };\n this.onSearch = (value) => {\n this.setState({ inputChart: value });\n };\n this.state = {\n loading: false,\n inputChart: \"\"\n };\n }\n componentDidMount() {\n this.loadCharts();\n }\n render() {\n const { disabled, value, onChange, helm } = this.props;\n const { charts, loading, helm: stateHelm, inputChart } = this.state;\n if (helm?.url != stateHelm?.url) {\n this.loadCharts();\n }\n const dataSource = (charts || []).map((item) => {\n return {\n label: item,\n value: item\n };\n });\n if (inputChart) {\n dataSource.unshift({\n label: inputChart,\n value: inputChart\n });\n }\n return /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Please select or input a chart name\"),\n onChange,\n showSearch: true,\n onSearch: this.onSearch,\n followTrigger: true,\n disabled,\n value,\n dataSource,\n locale: locale().Select\n }\n ));\n }\n};\nHelmChartSelect = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], HelmChartSelect);\nexport default HelmChartSelect;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Loading, Select } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport { getChartVersions } from \"../../api/repository\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nlet HelmChartVersionSelect = class extends Component {\n constructor(props) {\n super(props);\n this.loadChartVersions = () => {\n const { project } = this.props;\n const { helm, repo } = this.props;\n if (helm?.url && helm.chart && !this.state.loading && (helm.url != this.state.helm?.url || helm.chart != this.state.helm.chart)) {\n this.setState({ loading: true, helm });\n if (this.state.helm) {\n this.props.onChange(\"\");\n }\n getChartVersions({\n url: helm.url,\n repoType: helm.repoType,\n chart: helm.chart,\n secretName: repo?.secretName,\n project\n }).then((re) => {\n if (re) {\n this.setState({ versions: re.versions || [], loading: false, helm });\n }\n });\n }\n };\n this.onSearch = (value) => {\n this.setState({ inputChartVersion: value });\n };\n this.state = {\n loading: false,\n inputChartVersion: \"\"\n };\n }\n componentDidMount() {\n this.loadChartVersions();\n }\n render() {\n const { disabled, value, onChange, helm } = this.props;\n const { versions, loading, helm: stateHelm, inputChartVersion } = this.state;\n if (helm?.url != stateHelm?.url || helm?.chart != stateHelm?.chart) {\n this.loadChartVersions();\n }\n const dataSource = versions?.map((version) => {\n return {\n label: version.version,\n value: version.version\n };\n }) || [];\n if (inputChartVersion) {\n dataSource.unshift({ label: inputChartVersion, value: inputChartVersion });\n }\n return /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Please select or input a chart version\"),\n onChange,\n onSearch: this.onSearch,\n showSearch: true,\n followTrigger: true,\n disabled,\n value,\n dataSource,\n locale: locale().Select\n }\n ));\n }\n};\nHelmChartVersionSelect = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], HelmChartVersionSelect);\nexport default HelmChartVersionSelect;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Loading, Select } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { getChartRepos } from \"../../api/repository\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nlet HelmRepoSelect = class extends Component {\n constructor(props) {\n super(props);\n this.onLoadRepos = (repoType) => {\n const { project } = this.props;\n const defaultRepos = [{ url: \"https://charts.bitnami.com/bitnami\", type: \"helm\" }];\n this.setState({ loading: true, repos: repoType === \"helm\" ? defaultRepos : [] });\n getChartRepos({ project }).then((res) => {\n let repos = [];\n if (res && res.repos) {\n res.repos.map((repo) => {\n if (repoType == \"oci\" && repo.url.startsWith(\"oci://\")) {\n repos.push(repo);\n }\n if (repoType == \"helm\" && !repo.url.startsWith(\"oci://\")) {\n repos.push(repo);\n }\n });\n }\n if (repoType == \"helm\") {\n repos = repos.concat(defaultRepos);\n }\n this.setState({\n repos,\n loading: false\n });\n });\n };\n this.onSearch = (value) => {\n this.setState({ inputRepo: value });\n };\n this.onChange = (value) => {\n const { onChange, dispatch, onChangeSecretRef } = this.props;\n this.state.repos.map((repo) => {\n if (repo.url == value && repo.secretName != \"\" && dispatch) {\n dispatch({\n type: \"uischema/setHelmRepo\",\n payload: repo\n });\n }\n });\n onChange(value);\n const secretName = this.findSecretName(value);\n onChangeSecretRef(secretName);\n };\n this.findSecretName = (value) => {\n const { repos = [] } = this.state;\n const findSecretObj = _.find(repos, (item) => {\n return item.url === value;\n });\n return findSecretObj?.secretName || \"\";\n };\n this.state = {\n loading: false,\n repos: [],\n inputRepo: \"\"\n };\n }\n componentDidMount() {\n if (!this.props.helm?.repoType || this.props.helm?.repoType == \"helm\") {\n this.onLoadRepos(this.props.helm?.repoType || \"helm\");\n }\n }\n componentWillReceiveProps(nextProps) {\n const repoType = nextProps.helm?.repoType;\n if (repoType !== this.props.helm?.repoType && (repoType == \"helm\" || repoType == \"oci\")) {\n this.onLoadRepos(repoType);\n }\n }\n convertHelmRepositoryOptions(data) {\n return (data || []).map((item) => {\n let label = item.url;\n if (item.secretName) {\n label = `(${item.secretName}) ${item.url}`;\n }\n return { label, value: item.url };\n });\n }\n render() {\n const { disabled, value } = this.props;\n const { repos, loading, inputRepo } = this.state;\n const dataSource = repos;\n if (inputRepo) {\n dataSource.unshift({ url: inputRepo, type: \"helm\" });\n }\n const transDataSource = this.convertHelmRepositoryOptions(dataSource);\n return /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Please select or input your owner helm repo\"),\n onChange: this.onChange,\n inputMode: \"url\",\n disabled,\n showSearch: true,\n onSearch: this.onSearch,\n followTrigger: true,\n value,\n dataSource: transDataSource,\n locale: locale().Select\n }\n ));\n }\n};\nHelmRepoSelect = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], HelmRepoSelect);\nexport default HelmRepoSelect;\n","\"use strict\";\nimport { Dialog, Select } from \"@alifd/next\";\nimport * as React from \"react\";\nimport i18n from \"../../i18n\";\nimport DefinitionCode from \"../DefinitionCode\";\nimport \"./index.less\";\nconst HelmValueShow = (props) => {\n const [valueFile, setValueFile] = React.useState(\"values.yaml\");\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n className: \"helmValueDialog\",\n overflowScroll: true,\n visible: true,\n onClose: props.onClose,\n footer: /* @__PURE__ */ React.createElement(\"div\", null),\n title: i18n.t(\"Show Values File\").toString()\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n onChange: (name) => {\n setValueFile(name);\n },\n defaultValue: valueFile,\n dataSource: Object.keys(props.valueFiles),\n style: { marginBottom: \"8px\" }\n }\n ),\n /* @__PURE__ */ React.createElement(\"div\", { id: \"chart-\" + props.name, className: \"diff-box\" }, /* @__PURE__ */ React.createElement(\n DefinitionCode,\n {\n language: \"yaml\",\n containerId: \"chart-\" + props.name,\n readOnly: true,\n value: props.valueFiles[valueFile]\n }\n ))\n );\n};\nexport default HelmValueShow;\n","\"use strict\";\nimport { Grid, Button, Form, Input, Field, Select, Switch } from \"@alifd/next\";\nimport _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nimport { If } from \"../../components/If\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nconst { Row, Col } = Grid;\nclass KV extends Component {\n constructor(props) {\n super(props);\n this.setValues = () => {\n const { value } = this.props;\n const { items } = this.state;\n const newItems = [...items];\n if (value) {\n for (const label in value) {\n const key = Date.now().toString() + label;\n newItems.push({\n key,\n label,\n value: value[label],\n valueType: this.getValueType(value[label])\n });\n this.form.setValue(\"envKey-\" + key, label);\n this.form.setValue(\"envValue-\" + key, value[label]);\n }\n }\n this.setState({ items: newItems });\n };\n this.onSearch = (value) => {\n this.setState({ inputValue: value });\n };\n this.getValueType = (value) => {\n const findValueType = this.matchOutSideValueType();\n const valueTypeAdditionalParam = [\"number\", \"boolean\"];\n if (valueTypeAdditionalParam.includes(findValueType)) {\n return findValueType;\n } else {\n if (value != void 0) {\n return typeof value;\n } else {\n return \"string\";\n }\n }\n };\n this.matchOutSideValueType = () => {\n const { additional, additionalParameter } = this.props;\n const outSideValueType = [\n { uiType: \"Number\", valueType: \"number\" },\n { uiType: \"Switch\", valueType: \"boolean\" }\n ];\n if (additional && additionalParameter && additionalParameter.uiType) {\n const matchValueTypeObj = _.find(outSideValueType, (item) => {\n return item.uiType === additionalParameter.uiType;\n });\n return matchValueTypeObj && matchValueTypeObj.valueType || \"string\";\n } else {\n return \"string\";\n }\n };\n this.state = {\n items: []\n };\n this.form = new Field(this, {\n onChange: (name, value) => {\n const { keyOptions } = this.props;\n if (keyOptions && name.indexOf(\"envKey-\") > -1) {\n const itemKey = name.substring(name.indexOf(\"-\") + 1);\n this.form.setValue(\"envValue-\" + itemKey, keyOptions[value]);\n const { items } = this.state;\n const newItems = items.map((item) => {\n if (item.key == itemKey) {\n item.value = keyOptions[value];\n item.valueType = this.getValueType(keyOptions[value]);\n }\n return item;\n });\n this.setState({ items: newItems });\n }\n this.submit();\n }\n });\n }\n componentDidMount() {\n this.setValues();\n }\n addItem() {\n const { items } = this.state;\n items.push({\n key: Date.now().toString(),\n label: \"\",\n value: \"\",\n valueType: this.getValueType(\"\")\n });\n this.setState({ items: [...items] });\n }\n submit() {\n const values = this.form.getValues();\n const items = /* @__PURE__ */ new Map();\n Object.keys(values).map((key) => {\n if (key.startsWith(\"envKey-\")) {\n const index = key.replace(\"envKey-\", \"\");\n let item = items.get(index);\n if (!item) {\n item = { key: \"\", label: \"\", valueType: \"string\" };\n }\n item.label = values[key];\n items.set(index, item);\n }\n if (key.startsWith(\"envValue-\")) {\n const index = key.replace(\"envValue-\", \"\");\n let item = items.get(index);\n if (!item) {\n item = { key: \"\", label: \"\", valueType: \"string\" };\n }\n item.value = values[key];\n items.set(index, item);\n }\n });\n const obj = /* @__PURE__ */ Object.create(null);\n items.forEach((item) => {\n obj[item.label] = item.value;\n });\n const { onChange } = this.props;\n if (onChange) {\n onChange(obj);\n }\n }\n remove(key) {\n const { items } = this.state;\n items.forEach((item, i) => {\n if (item.key === key) {\n items.splice(i, 1);\n }\n });\n this.form.remove(\"envKey-\" + key);\n this.form.remove(\"envValue-\" + key);\n this.setState({ items });\n this.submit();\n }\n render() {\n const { items, inputValue } = this.state;\n const { id, keyOptions } = this.props;\n const { init } = this.form;\n const dataSource = keyOptions ? Object.keys(keyOptions) : [];\n if (inputValue) {\n dataSource.push(inputValue);\n }\n return /* @__PURE__ */ React.createElement(\"div\", { id }, items.map((item) => {\n return /* @__PURE__ */ React.createElement(Row, { key: item.key, gutter: \"20\" }, /* @__PURE__ */ React.createElement(Col, { span: 10 }, /* @__PURE__ */ React.createElement(Form.Item, null, /* @__PURE__ */ React.createElement(If, { condition: dataSource && dataSource.length > 0 }, /* @__PURE__ */ React.createElement(\n Select,\n {\n showSearch: true,\n dataSource,\n disabled: this.props.disabled,\n ...init(`envKey-${item.key}`),\n label: \"Key\",\n placeholder: i18n.t(\"Please select\"),\n locale: locale().Select,\n onSearch: this.onSearch\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: !keyOptions }, /* @__PURE__ */ React.createElement(\n Input,\n {\n disabled: this.props.disabled,\n ...init(`envKey-${item.key}`),\n label: \"Key\",\n className: \"full-width\",\n placeholder: \"\"\n }\n )))), /* @__PURE__ */ React.createElement(Col, { span: 10 }, /* @__PURE__ */ React.createElement(Form.Item, null, /* @__PURE__ */ React.createElement(If, { condition: item.valueType == \"number\" || item.valueType == \"string\" }, /* @__PURE__ */ React.createElement(\n Input,\n {\n disabled: this.props.disabled,\n htmlType: item.valueType == \"number\" ? \"number\" : \"\",\n ...init(`envValue-${item.key}`),\n label: \"Value\",\n className: \"full-width\",\n placeholder: i18n.t(\n item.valueType == \"number\" ? \"Please input a number\" : \"Please input a value\"\n )\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: item.valueType == \"boolean\" }, /* @__PURE__ */ React.createElement(\"div\", { style: { display: \"flex\", alignItems: \"center\" } }, /* @__PURE__ */ React.createElement(\"span\", { style: { lineHeight: \"36px\", marginRight: \"16px\" } }, \"Value:\"), /* @__PURE__ */ React.createElement(\n Switch,\n {\n checked: this.form.getValue(`envValue-${item.key}`),\n disabled: this.props.disabled,\n ...init(`envValue-${item.key}`),\n className: \"full-width\"\n }\n ))))), /* @__PURE__ */ React.createElement(Col, { span: 1 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"mt-5\", style: { padding: \"8px 0\" } }, /* @__PURE__ */ React.createElement(AiOutlineDelete, { onClick: () => this.remove(item.key) }))));\n }), /* @__PURE__ */ React.createElement(\"div\", { className: \"mb-20 flexright\" }, /* @__PURE__ */ React.createElement(Button, { disabled: this.props.disabled, size: \"small\", type: \"secondary\", onClick: this.addItem.bind(this) }, \"Add\")));\n }\n}\nexport default KV;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Button, Loading } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport YAML from \"js-yaml\";\nimport React, { Component } from \"react\";\nimport { getChartValueFiles } from \"../../api/repository\";\nimport HelmValueShow from \"../../components/HelmValueShow\";\nimport { Translation } from \"../../components/Translation\";\nimport KV from \"../KV\";\nfunction setValues(target, value, key, keys) {\n if (!keys || keys.length == 0) {\n target[key] = value;\n return target;\n }\n if (target[key]) {\n target[key] = setValues(target[key], value, keys[0], keys.slice(1));\n return target;\n }\n target[key] = setValues({}, value, keys[0], keys.slice(1));\n return target;\n}\nfunction getValues(target, key, newValues) {\n if (!target) {\n newValues[key] = target;\n return;\n }\n if (typeof target === \"object\") {\n const keys = Object.keys(target);\n keys.map((subkey) => {\n getValues(target[subkey], key ? key + \".\" + subkey : subkey, newValues);\n });\n } else {\n newValues[key] = target;\n }\n}\nlet HelmValues = class extends Component {\n constructor(props) {\n super(props);\n this.loadChartValues = () => {\n const { project } = this.props;\n const { helm, repo } = this.props;\n if (helm?.chart && helm.version && helm.url) {\n getChartValueFiles({ ...helm, secretName: repo?.secretName, project }).then(\n (re) => {\n if (re) {\n try {\n const defaultValueFile = re[\"values.yaml\"];\n const defaultValue = YAML.load(defaultValueFile);\n const newValues = {};\n getValues(defaultValue, \"\", newValues);\n this.setState({ values: newValues, valueFiles: re, helm, loading: false });\n } catch (err) {\n }\n }\n }\n );\n }\n };\n this.onChange = (values) => {\n let helmValues = {};\n if (values) {\n Object.keys(values).map((key) => {\n const keys = key.split(\".\");\n helmValues = setValues(helmValues, values[key], keys[0], keys.slice(1));\n });\n }\n this.props.onChange(helmValues);\n };\n this.renderValue = () => {\n const newValues = {};\n getValues(this.props.value, \"\", newValues);\n return newValues;\n };\n this.renderHelmKey = (params) => {\n if (!params) {\n return \"\";\n }\n return params.url + params.chart + params.version;\n };\n this.state = {\n loading: true\n };\n }\n componentDidMount() {\n this.loadChartValues();\n }\n render() {\n const { helm } = this.props;\n const { values, loading, helm: stateHelm, showValuesFile, valueFiles } = this.state;\n if (this.renderHelmKey(helm) != this.renderHelmKey(stateHelm)) {\n this.loadChartValues();\n }\n return /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\n KV,\n {\n disabled: this.props.disabled,\n onChange: this.onChange,\n value: this.renderValue(),\n keyOptions: values,\n additional: this.props.additional,\n additionalParameter: this.props.additionalParameter,\n subParameters: this.props.subParameters,\n id: this.props.id\n }\n ), valueFiles && /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.setState({ showValuesFile: true });\n },\n size: \"small\",\n type: \"secondary\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Show Values File\")\n ), showValuesFile && valueFiles && /* @__PURE__ */ React.createElement(\n HelmValueShow,\n {\n name: helm?.chart || \"default\",\n valueFiles,\n onClose: () => {\n this.setState({ showValuesFile: false });\n }\n }\n ));\n }\n};\nHelmValues = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], HelmValues);\nexport default HelmValues;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Loading, Select } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport { getImageRepos } from \"../../api/repository\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nlet ImageSecretSelect = class extends Component {\n constructor(props) {\n super(props);\n this.onLoadRepos = () => {\n const { project } = this.props;\n if (project) {\n this.setState({ loading: true });\n getImageRepos({ project }).then((res) => {\n if (res) {\n this.setState({\n registries: res.registries\n });\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n };\n this.onSearch = (value) => {\n this.setState({ inputRepo: value });\n };\n this.state = {\n loading: false,\n registries: [],\n inputRepo: \"\"\n };\n }\n componentDidMount() {\n this.onLoadRepos();\n }\n convertImageRegistryOptions(data) {\n return (data || []).map((item) => {\n let label = item.secretName;\n if (item.domain) {\n label = `${item.secretName}(${item.domain})`;\n }\n return { label, value: item.secretName };\n });\n }\n render() {\n const { disabled, onChange, value } = this.props;\n const { registries, loading, inputRepo } = this.state;\n const dataSource = registries || [];\n if (inputRepo) {\n dataSource.unshift({ secretName: inputRepo, name: inputRepo });\n }\n const transDataSource = this.convertImageRegistryOptions(dataSource);\n return /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Please select or input your owner image registry secret\"),\n inputMode: \"url\",\n mode: \"multiple\",\n onChange,\n disabled,\n showSearch: true,\n onSearch: this.onSearch,\n followTrigger: true,\n value,\n dataSource: transDataSource,\n locale: locale().Select\n }\n ));\n }\n};\nImageSecretSelect = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], ImageSecretSelect);\nexport default ImageSecretSelect;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport React from \"react\";\nimport { Input, Form, Loading, Grid, Tag } from \"@alifd/next\";\nimport \"./index.less\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport { AiOutlineHdd, AiOutlineExport } from \"react-icons/ai\";\nimport { TbBrandDocker } from \"react-icons/tb\";\nimport { getImageInfo } from \"../../api/repository\";\nimport dockerLogo from \"../../assets/docker.svg\";\nimport { If } from \"../../components/If\";\nimport { beautifyTime, beautifyBinarySize } from \"../../utils/common\";\nimport ImageSecretSelect from \"../ImageSecretSelect\";\nconst { Col, Row } = Grid;\nlet ImageInput = class extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = async () => {\n };\n this.loadImageInfo = () => {\n const { project, onChange, onSecretChange } = this.props;\n const { imageName } = this.state;\n if (project && imageName) {\n onChange(imageName);\n this.setState({ loading: true });\n getImageInfo({ project, name: imageName }).then((res) => {\n if (res) {\n this.setState({ imageInfo: res });\n if (res.secretNames) {\n onSecretChange(res.secretNames);\n } else {\n onSecretChange(void 0);\n }\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n };\n this.state = {\n imageName: \"\",\n loading: false\n };\n }\n render() {\n const { value, id, required, label, key, onSecretChange, secretValue, disabled, secretID } = this.props;\n const { loading, imageInfo } = this.state;\n if (!this.state.imageName && value) {\n this.setState({ imageName: value }, () => {\n this.loadImageInfo();\n });\n }\n let secrets = secretValue;\n let secretDisabled = disabled;\n if (imageInfo && imageInfo.secretNames) {\n secrets = imageInfo.secretNames;\n secretDisabled = true;\n }\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 16, style: { padding: \"0 16px 0 0\" } }, /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n label,\n key,\n help: /* @__PURE__ */ React.createElement(\"span\", null, \"To deploy from a private registry, you need to\", \" \", /* @__PURE__ */ React.createElement(Link, { to: \"/configs/config-image-registry/config\" }, \"create a config configuration\"))\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n id,\n onChange: (name) => {\n this.setState({ imageName: name });\n },\n disabled,\n defaultValue: value,\n onBlur: this.loadImageInfo\n }\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: 8 }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"Secret\" }, /* @__PURE__ */ React.createElement(\n ImageSecretSelect,\n {\n id: secretID,\n disabled: secretDisabled,\n onChange: onSecretChange,\n value: secrets\n }\n )))), /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(If, { condition: imageInfo }, /* @__PURE__ */ React.createElement(\"div\", { className: \"image-info\" }, /* @__PURE__ */ React.createElement(If, { condition: imageInfo?.info }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { xl: 24, className: \"container-base\" }, /* @__PURE__ */ React.createElement(\"img\", { className: \"docker-logo\", src: dockerLogo }), /* @__PURE__ */ React.createElement(\"div\", { className: \"docker-base\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"name\" }, imageInfo?.name)), /* @__PURE__ */ React.createElement(\"div\", { className: \"desc\" }, /* @__PURE__ */ React.createElement(\"span\", { title: imageInfo?.info?.created }, beautifyTime(imageInfo?.info?.created)), /* @__PURE__ */ React.createElement(\"span\", { style: { marginLeft: \"8px\" } }, beautifyBinarySize(imageInfo?.size || 0)), /* @__PURE__ */ React.createElement(If, { condition: imageInfo?.info?.architecture }, /* @__PURE__ */ React.createElement(\"span\", { style: { marginLeft: \"8px\" } }, imageInfo?.info?.architecture)))))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { className: \"image-item\", xl: 8 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"image-item-icon\" }, /* @__PURE__ */ React.createElement(AiOutlineHdd, { title: \"Volume\" })), /* @__PURE__ */ React.createElement(\"div\", { className: \"name\" }, imageInfo?.info?.config?.Volumes ? Object.keys(imageInfo?.info?.config?.Volumes).map((path) => {\n return /* @__PURE__ */ React.createElement(Tag, { color: \"green\" }, path);\n }) : \"No default Volume config\")), /* @__PURE__ */ React.createElement(Col, { className: \"image-item\", xl: 8 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"image-item-icon\" }, /* @__PURE__ */ React.createElement(AiOutlineExport, { title: \"ExposedPorts\" })), /* @__PURE__ */ React.createElement(\"div\", { className: \"name\" }, imageInfo?.info?.config?.ExposedPorts ? Object.keys(imageInfo?.info?.config?.ExposedPorts).map((port) => {\n return /* @__PURE__ */ React.createElement(Tag, { color: \"blue\" }, port);\n }) : \"No default Port config\")), /* @__PURE__ */ React.createElement(Col, { className: \"image-item\", xl: 8 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"image-item-icon\" }, /* @__PURE__ */ React.createElement(TbBrandDocker, null)), /* @__PURE__ */ React.createElement(\"div\", { className: \"name\" }, /* @__PURE__ */ React.createElement(Tag, { title: imageInfo?.registry }, imageInfo?.registry))))), /* @__PURE__ */ React.createElement(If, { condition: imageInfo?.message }, /* @__PURE__ */ React.createElement(\"div\", { className: \"message\" }, imageInfo?.message))))));\n }\n};\nImageInput = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], ImageInput);\nexport default ImageInput;\n","\"use strict\";\nimport { Upload, Button, Message, Field } from \"@alifd/next\";\nimport * as yaml from \"js-yaml\";\nimport React from \"react\";\nimport { AiOutlineCloudUpload } from \"react-icons/ai\";\nimport { v4 as uuid } from \"uuid\";\nimport DefinitionCode from \"../../components/DefinitionCode\";\nimport { If } from \"../../components/If\";\nimport { Translation } from \"../../components/Translation\";\nclass K8sObjectsCode extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n const { value } = this.props;\n this.setValues(value);\n };\n this.setValues = (value) => {\n if (value) {\n try {\n let code = \"---\\n\";\n if (value instanceof Array) {\n value.map((res) => {\n if (res) {\n code = code + yaml.dump(res) + \"---\\n\";\n }\n });\n } else {\n code = yaml.dump(value) + \"---\\n\";\n }\n this.form.setValues({ code });\n } catch {\n }\n }\n };\n this.onChange = (v) => {\n const { onChange, value } = this.props;\n if (onChange) {\n try {\n let object = yaml.load(v);\n if (!(object instanceof Array)) {\n object = [object];\n }\n object = object.filter((ob) => ob != null);\n if (yaml.dump(value) != v) {\n onChange(object);\n }\n this.setState({ message: \"\" });\n } catch (error) {\n if (error.message = \"expected a single document in the stream, but found more\") {\n try {\n let objects = yaml.loadAll(v);\n if (yaml.dump(value) != v) {\n objects = objects.filter((ob) => ob != null);\n onChange(objects);\n }\n this.setState({\n message: \"\"\n });\n } catch (err) {\n this.setState({ message: err.message });\n }\n } else {\n this.setState({ message: error.message });\n }\n }\n }\n };\n this.customRequest = (option) => {\n const reader = new FileReader();\n const fileselect = option.file;\n reader.readAsText(fileselect);\n reader.onload = () => {\n this.form.setValue(\"code\", reader.result?.toString() || \"\");\n };\n return {\n file: File,\n abort() {\n }\n };\n };\n this.onConvert2WebService = () => {\n };\n this.state = {\n message: \"\",\n containerId: uuid(),\n showButton: false\n };\n this.form = new Field(this, {\n onChange: () => {\n const values = this.form.getValues();\n this.onChange(values.code);\n }\n });\n }\n render() {\n const { id } = this.props;\n const { init } = this.form;\n const { message, containerId, showButton } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { id }, /* @__PURE__ */ React.createElement(If, { condition: message }, /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"red\" } }, message)), /* @__PURE__ */ React.createElement(Message, { type: \"notice\", style: { marginTop: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"The input data will be automatically formatted. Ensure that the input data is a valid k8s resource YAML.\")), /* @__PURE__ */ React.createElement(Upload, { request: this.customRequest }, /* @__PURE__ */ React.createElement(Button, { text: true, type: \"normal\", className: \"padding-left-0\" }, /* @__PURE__ */ React.createElement(AiOutlineCloudUpload, null), /* @__PURE__ */ React.createElement(Translation, null, \"Upload Yaml File\"))), /* @__PURE__ */ React.createElement(\"div\", { id: containerId, className: \"guide-code\" }, /* @__PURE__ */ React.createElement(DefinitionCode, { containerId, language: \"yaml\", readOnly: false, ...init(\"code\") })), /* @__PURE__ */ React.createElement(If, { condition: showButton }, /* @__PURE__ */ React.createElement(\"div\", { style: { marginTop: \"16px\" } }, /* @__PURE__ */ React.createElement(\"span\", { style: { fontSize: \"14px\", color: \"#000\", marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Convert the kubernetes resource component to the webservice component?\")), /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.onConvert2WebService }, \"Yes\"))));\n }\n}\nexport default K8sObjectsCode;\n","\"use strict\";\nimport { Input } from \"@alifd/next\";\nimport React from \"react\";\nclass MemoryNumber extends React.Component {\n constructor(props) {\n super(props);\n this.onChange = (value) => {\n const { onChange } = this.props;\n if (onChange) {\n onChange(value + \"Mi\");\n }\n };\n this.state = {};\n }\n render() {\n const { value, id, disabled } = this.props;\n let initValue = void 0;\n if (value) {\n initValue = parseInt(value.replace(\"Mi\", \"\"), 10);\n }\n return /* @__PURE__ */ React.createElement(\n Input,\n {\n id,\n min: \"0\",\n disabled,\n addonTextAfter: \"Mi\",\n htmlType: \"number\",\n onChange: this.onChange,\n value: initValue && initValue\n }\n );\n }\n}\nexport default MemoryNumber;\n","\"use strict\";\nimport { Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { getPolicyList } from \"../../api/application\";\nimport { UISchemaContext } from \"../../context\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nclass PolicySelect extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n this.fetchPolicyList();\n };\n this.fetchPolicyList = async () => {\n const { appName = \"\" } = this.context;\n if (appName) {\n getPolicyList({\n appName\n }).then((res) => {\n if (res && res.policies) {\n const policyListData = (res.policies || []).map((item) => {\n return {\n label: `${item.name}(${item.type})`,\n value: item.name\n };\n });\n this.setState({\n policySelectDataSource: policyListData\n });\n } else {\n this.setState({\n policySelectDataSource: []\n });\n }\n }).catch(() => {\n this.setState({\n policySelectDataSource: []\n });\n });\n }\n };\n this.onChange = (value) => {\n const { onChange } = this.props;\n onChange(value);\n };\n this.state = {\n policySelectDataSource: []\n };\n }\n render() {\n const { value, id, disabled } = this.props;\n const { policySelectDataSource } = this.state;\n return /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Please select\"),\n onChange: this.onChange,\n id,\n disabled,\n defaultValue: value || [],\n value: value || [],\n dataSource: policySelectDataSource,\n mode: \"multiple\",\n locale: locale().Select\n }\n );\n }\n}\nPolicySelect.contextType = UISchemaContext;\nexport default PolicySelect;\n","\"use strict\";\nimport i18n from \"i18next\";\nimport React from \"react\";\nimport { CustomSelect } from \"../../components/CustomSelect\";\nimport { locale } from \"../../utils/locale\";\nclass SecretKeySelect extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = async () => {\n };\n this.state = {\n dataSource: []\n };\n }\n render() {\n const { onChange, value, secretKeys, id, disabled } = this.props;\n return /* @__PURE__ */ React.createElement(\n CustomSelect,\n {\n locale: locale().Select,\n onChange,\n defaultValue: value,\n id,\n disabled,\n value,\n placeholder: i18n.t(\"Please select or input a secret key\").toString(),\n enableInput: true,\n dataSource: secretKeys?.map((item) => {\n return { label: item, value: item };\n }) || []\n }\n );\n }\n}\nexport default SecretKeySelect;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { connect } from \"dva\";\nimport i18n from \"i18next\";\nimport React from \"react\";\nimport { listCloudResourceSecrets } from \"../../api/observation\";\nimport { CustomSelect } from \"../../components/CustomSelect\";\nimport { locale } from \"../../utils/locale\";\nlet SecretSelect = class extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = async () => {\n this.loadSecrets();\n };\n this.getSecretKeys = (name) => {\n const { secrets } = this.state;\n let keys = [];\n secrets?.map((secret) => {\n if (secret.metadata.labels[\"app.oam.dev/sync-alias\"] == name && \"data\" in secret) {\n keys = Object.keys(secret.data);\n }\n });\n return keys;\n };\n this.onChange = (value) => {\n const { onChange, setKeys } = this.props;\n const keys = this.getSecretKeys(value);\n onChange(value);\n setKeys(keys);\n };\n this.loadSecrets = () => {\n if (this.props.appNamespace) {\n listCloudResourceSecrets({ appNs: this.props.appNamespace }).then((res) => {\n if (res) {\n this.setState({ secrets: res.secrets }, () => {\n const keys = this.getSecretKeys(this.props.value);\n this.props.setKeys(keys);\n });\n }\n });\n }\n };\n this.state = {};\n }\n render() {\n const { value, id, disabled } = this.props;\n const { secrets } = this.state;\n const filters = secrets?.filter((secret) => secret.metadata.labels[\"app.oam.dev/sync-alias\"]);\n const dataSource = filters?.map((secret) => {\n return {\n label: secret.metadata.labels[\"app.oam.dev/sync-alias\"],\n value: secret.metadata.labels[\"app.oam.dev/sync-alias\"]\n };\n }) || [];\n return /* @__PURE__ */ React.createElement(\n CustomSelect,\n {\n locale: locale().Select,\n onChange: this.onChange,\n value,\n id,\n disabled,\n placeholder: i18n.t(\"Please select or input a secret name\").toString(),\n enableInput: true,\n dataSource\n }\n );\n }\n};\nSecretSelect = __decorateClass([\n connect((store) => {\n return { ...store.uischema };\n })\n], SecretSelect);\nexport default SecretSelect;\n","\"use strict\";\nimport { Input, Button, Field } from \"@alifd/next\";\nimport React from \"react\";\nimport \"./index.less\";\nimport { If } from \"../../components/If\";\nimport { Translation } from \"../../components/Translation\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nfunction InputItem(props) {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"string-container\" }, /* @__PURE__ */ React.createElement(\n Input,\n {\n htmlType: \"text\",\n onChange: props.onChange,\n addonBefore: \"\",\n className: \"input\",\n disabled: props.disabled,\n value: props.value\n }\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"remove-option-container\" }, /* @__PURE__ */ React.createElement(If, { condition: !props.isFirst }, /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n onClick: () => {\n props.delete(props.id);\n }\n }\n ))));\n}\nclass Strings extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = async () => {\n };\n this.changeValues = () => {\n const values = this.field.getValues();\n const inputList = this.state.inputList;\n Object.keys(values).map((key) => {\n if (Array.isArray(inputList)) {\n inputList.forEach((item) => {\n if (item.key === key) {\n item.value = values[key];\n }\n });\n }\n });\n const valuesInfo = inputList.map((item) => item.value);\n this.props.onChange(valuesInfo);\n };\n this.addInputItem = () => {\n const { inputList } = this.state;\n const key = Date.now().toString();\n inputList.push({\n key\n });\n this.setState({\n inputList\n });\n };\n this.removeInputItem = (key) => {\n const { inputList } = this.state;\n inputList.forEach((item, i) => {\n if (item.key === key) {\n inputList.splice(i, 1);\n this.field.remove(key);\n }\n });\n this.setState(\n {\n inputList\n },\n () => {\n this.changeValues();\n }\n );\n };\n const inputList = [];\n if (props.value) {\n props.value.map((v, index) => {\n const key = Date.now().toString() + index;\n inputList.push({\n key,\n value: v\n });\n });\n }\n this.state = {\n inputList\n };\n this.field = new Field(this, {\n onChange: () => {\n this.changeValues();\n }\n });\n }\n render() {\n const { inputList } = this.state;\n const { init } = this.field;\n const { label, disabled } = this.props;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"strings-container\" }, inputList.map((item) => /* @__PURE__ */ React.createElement(\n InputItem,\n {\n ...init(item.key),\n key: item.key,\n value: item.value,\n delete: (id) => this.removeInputItem(id),\n id: item.key,\n label\n }\n )), /* @__PURE__ */ React.createElement(\"div\", { className: \"add-btn-container\" }, /* @__PURE__ */ React.createElement(Button, { disabled, size: \"small\", onClick: this.addInputItem, ghost: \"light\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Add\"))));\n }\n}\nexport default Strings;\n","\"use strict\";\nimport { Input, Button, Field } from \"@alifd/next\";\nimport React from \"react\";\nimport \"./index.less\";\nimport { If } from \"../../components/If\";\nimport { Translation } from \"../../components/Translation\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nfunction InputItem(props) {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"number-container\" }, /* @__PURE__ */ React.createElement(\n Input,\n {\n htmlType: \"number\",\n onChange: props.onChange,\n className: \"input\",\n disabled: props.disabled,\n value: props.value\n }\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"remove-option-container\" }, /* @__PURE__ */ React.createElement(If, { condition: !props.isFirst }, /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n onClick: () => {\n props.delete(props.id);\n }\n }\n ))));\n}\nclass Numbers extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = async () => {\n };\n this.changeValues = () => {\n const values = this.field.getValues();\n const inputList = this.state.inputList;\n Object.keys(values).map((key) => {\n if (Array.isArray(inputList)) {\n inputList.forEach((item) => {\n if (item.key === key) {\n item.value = values[key];\n }\n });\n }\n });\n const valuesInfo = inputList.map((item) => item.value);\n this.props.onChange(valuesInfo);\n };\n this.addInputItem = () => {\n const { inputList } = this.state;\n const key = Date.now().toString();\n inputList.push({\n key\n });\n this.setState({\n inputList\n });\n };\n this.removeInputItem = (key) => {\n const { inputList } = this.state;\n inputList.forEach((item, i) => {\n if (item.key === key) {\n inputList.splice(i, 1);\n this.field.remove(key);\n }\n });\n this.setState(\n {\n inputList\n },\n () => {\n this.changeValues();\n }\n );\n };\n const inputList = [];\n if (props.value) {\n props.value.map((v, index) => {\n const key = Date.now().toString() + index;\n inputList.push({\n key,\n value: v\n });\n });\n }\n this.state = {\n inputList\n };\n this.field = new Field(this, {\n onChange: () => {\n this.changeValues();\n }\n });\n }\n render() {\n const { inputList } = this.state;\n const { init } = this.field;\n const { label, disabled } = this.props;\n return /* @__PURE__ */ React.createElement(\"div\", null, inputList.map((item) => /* @__PURE__ */ React.createElement(\n InputItem,\n {\n ...init(item.key),\n key: item.key,\n value: item.value,\n delete: (id) => this.removeInputItem(id),\n id: item.key,\n label\n }\n )), /* @__PURE__ */ React.createElement(\"div\", { className: \"add-btn-container\" }, /* @__PURE__ */ React.createElement(Button, { disabled, size: \"small\", onClick: this.addInputItem, ghost: \"light\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Add\"))));\n }\n}\nexport default Numbers;\n","\"use strict\";\nimport { Icon, Loading, Grid } from \"@alifd/next\";\nimport React from \"react\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nimport \"./index.less\";\nclass ArrayItemGroup extends React.Component {\n constructor(props) {\n super(props);\n this.toggleShowClass = () => {\n const { closed } = this.state;\n this.setState({\n closed: !closed\n });\n };\n this.state = {\n closed: true\n };\n }\n render() {\n const { children, labelTitle, loading } = this.props;\n const { closed } = this.state;\n const { Col, Row } = Grid;\n return /* @__PURE__ */ React.createElement(Loading, { visible: loading || false, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"spection-group-container\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"spection-group-title-container\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: \"21\" }, /* @__PURE__ */ React.createElement(\"div\", null, labelTitle)), /* @__PURE__ */ React.createElement(Col, { span: \"3\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Icon,\n {\n onClick: this.toggleShowClass,\n className: \"icon-toggle\",\n type: closed ? \"arrow-down\" : \"arrow-up\",\n style: closed ? { top: \"-2px\" } : { top: \"0\" }\n }\n ), /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n className: \"icon-delete\",\n onClick: () => {\n if (this.props.delete) {\n this.props.delete(this.props.id);\n }\n }\n }\n ))))), /* @__PURE__ */ React.createElement(\"div\", { className: `array-item-group-box ${closed ? \"disable\" : \"\"}` }, children)));\n }\n}\nexport default ArrayItemGroup;\n","\"use strict\";\nimport { Form, Field, Button } from \"@alifd/next\";\nimport React from \"react\";\nimport UISchema from \"../../components/UISchema\";\nimport ArrayItemGroup from \"../ArrayItemGroup\";\nimport \"./index.less\";\nimport { If } from \"../../components/If\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nclass StructItem extends React.Component {\n constructor(props) {\n super(props);\n this.validator = (rule, value, callback) => {\n this.uiRef.current?.validate(callback);\n };\n this.getParamCount = (params) => {\n let count = 0;\n if (!params && !Array.isArray(params)) {\n return count;\n }\n params.map((p) => {\n if (!p.disable && p.uiType != \"Ignore\" && p.uiType != \"InnerGroup\") {\n if ([\"Structs\", \"Strings\", \"CertBase64\", \"Group\", \"ImageInput\", \"K8sObjectsCode\", \"KV\"].indexOf(p.uiType) > -1) {\n count += 3;\n } else {\n count += 1;\n }\n }\n if (!p.disable && p.subParameters) {\n count += this.getParamCount(p.subParameters);\n }\n });\n return count;\n };\n this.state = {\n structList: []\n };\n this.uiRef = React.createRef();\n }\n render() {\n const { option, param, id, init, labelTitle } = this.props;\n let uiSchemas = param;\n if (option && option.length > 0) {\n const paramMap = param && param.reduce((pre, next) => {\n pre[next.jsonKey] = next;\n return pre;\n }, {});\n uiSchemas = option.map((key) => paramMap[key]);\n }\n const paramCount = this.getParamCount(uiSchemas);\n const itemCount = uiSchemas?.filter((p) => !p.disable).length || 1;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"struct-item-container\" }, /* @__PURE__ */ React.createElement(If, { condition: paramCount > 3 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"struct-item-content\" }, /* @__PURE__ */ React.createElement(\n ArrayItemGroup,\n {\n id,\n labelTitle,\n delete: (structId) => {\n this.props.delete(structId);\n }\n },\n /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...init(`struct${id}`, {\n rules: [\n {\n validator: this.validator,\n message: \"please check config item\"\n }\n ]\n }),\n uiSchema: uiSchemas,\n inline: true,\n ref: this.uiRef,\n mode: this.props.mode\n }\n )\n ))), /* @__PURE__ */ React.createElement(If, { condition: paramCount <= 3 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"struct-item-content\" }, /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...init(`struct${id}`, {\n rules: [\n {\n validator: this.validator,\n message: \"please check config item\"\n }\n ]\n }),\n uiSchema: uiSchemas,\n maxColSpan: 24 / itemCount,\n inline: true,\n ref: this.uiRef,\n mode: this.props.mode\n }\n )), /* @__PURE__ */ React.createElement(\"div\", { className: \"remove-option-container\" }, /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n onClick: () => {\n if (this.props.delete) {\n this.props.delete(this.props.id);\n }\n }\n }\n ))));\n }\n}\nclass Structs extends React.Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n this.initValue();\n };\n this.initValue = () => {\n const { value, parameterGroupOption } = this.props;\n if (value) {\n const keyMap = /* @__PURE__ */ new Map();\n let firstOption = void 0;\n if (parameterGroupOption) {\n parameterGroupOption.map((item) => {\n if (item && item.keys) {\n if (!firstOption) {\n firstOption = item;\n }\n keyMap.set(item.keys.sort().join(), item);\n }\n });\n }\n const structList = [];\n value.map((item, index) => {\n const key = Date.now().toString() + index;\n const valueKeys = [];\n for (const itemkey in item) {\n valueKeys.push(itemkey);\n }\n const option = keyMap.get(valueKeys.sort().join());\n structList.push({\n key,\n option: option?.keys || firstOption?.keys,\n value\n });\n this.field.setValue(\"struct\" + key, item);\n });\n this.setState({ structList });\n }\n };\n this.setValues = () => {\n const values = this.field.getValues();\n const { onChange } = this.props;\n const result = Object.keys(values).map((key) => {\n return values[key];\n });\n if (onChange) {\n onChange(result);\n }\n };\n this.addStructPlanItem = (option, value) => {\n this.field.validate((error) => {\n if (error) {\n return;\n }\n const { structList } = this.state;\n const key = Date.now().toString();\n structList.push({\n key,\n option: option?.keys,\n value\n });\n this.setState({\n structList\n });\n });\n };\n this.removeStructPlanItem = (key) => {\n const { structList } = this.state;\n structList.forEach((item, i) => {\n if (item.key === key) {\n structList.splice(i, 1);\n }\n });\n this.field.remove(\"struct\" + key);\n this.setValues();\n this.setState({\n structList\n });\n };\n this.state = {\n structList: []\n };\n this.field = new Field(this, {\n onChange: () => {\n this.setValues();\n }\n });\n this.props.registerForm(this.field);\n }\n render() {\n const { structList } = this.state;\n const { param, parameterGroupOption = [], label } = this.props;\n const { init } = this.field;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"struct-plan-container\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"struct-plan-group\" }, /* @__PURE__ */ React.createElement(Form, { field: this.field }, structList.map((struct) => {\n const fieldObj = this.field.getValues();\n const name = fieldObj[`struct${struct.key}`]?.name || \"\";\n let labelTitle = label;\n if (name) {\n labelTitle = /* @__PURE__ */ React.createElement(\"span\", null, label, \": \", /* @__PURE__ */ React.createElement(\"span\", { style: { marginLeft: \"8px\" } }, name));\n }\n return /* @__PURE__ */ React.createElement(\n StructItem,\n {\n delete: this.removeStructPlanItem,\n id: struct.key,\n key: struct.key,\n init,\n option: struct.option,\n param,\n labelTitle,\n mode: this.props.mode\n }\n );\n }))), /* @__PURE__ */ React.createElement(\"div\", { className: \"struct-plan-option\" }, /* @__PURE__ */ React.createElement(If, { condition: parameterGroupOption.length === 0 }, /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.addStructPlanItem();\n },\n type: \"secondary\"\n },\n \"Add\"\n )), /* @__PURE__ */ React.createElement(If, { condition: parameterGroupOption.length !== 0 }, /* @__PURE__ */ React.createElement(Button.Group, null, parameterGroupOption?.map((item) => /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", key: item.keys.join(\",\"), onClick: () => this.addStructPlanItem(item) }, item.label || item.keys.join(\":\")))))));\n }\n}\nexport default Structs;\n","\"use strict\";\nexport function findSuffix(quantity) {\n let ix = quantity.length - 1;\n while (ix >= 0 && !/[\\.0-9]/.test(quantity.charAt(ix))) {\n ix--;\n }\n return ix === -1 ? \"\" : quantity.substring(ix + 1);\n}\nexport function quantityToScalar(quantity) {\n if (!quantity) {\n return 0;\n }\n const suffix = findSuffix(quantity);\n if (suffix === \"\") {\n const num = Number(quantity).valueOf();\n if (isNaN(num)) {\n throw new Error(\"Unknown quantity \" + quantity);\n }\n return num;\n }\n switch (suffix) {\n case \"n\":\n return Number(quantity.substr(0, quantity.length - 1)).valueOf() / 1e8;\n case \"m\":\n return Number(quantity.substr(0, quantity.length - 1)).valueOf() / 1e3;\n case \"Ki\":\n return BigInt(quantity.substr(0, quantity.length - 2)) * BigInt(1024);\n case \"Mi\":\n return BigInt(quantity.substr(0, quantity.length - 2)) * BigInt(1024 * 1024);\n case \"Gi\":\n return BigInt(quantity.substr(0, quantity.length - 2)) * BigInt(1024 * 1024 * 1024);\n case \"Ti\":\n return BigInt(quantity.substr(0, quantity.length - 2)) * BigInt(1024 * 1024 * 1024) * BigInt(1024);\n case \"Pi\":\n return BigInt(quantity.substr(0, quantity.length - 2)) * BigInt(1024 * 1024 * 1024) * BigInt(1024 * 1024);\n case \"Ei\":\n return BigInt(quantity.substr(0, quantity.length - 2)) * BigInt(1024 * 1024 * 1024) * BigInt(1024 * 1024 * 1024);\n default:\n throw new Error(`Unknown suffix: ${suffix}`);\n }\n}\nexport function transComponentDefinitions(componentDefinitions) {\n const defaultCoreDataSource = [\"k8s-objects\", \"task\", \"webservice\", \"worker\"];\n const cloud = [\n {\n label: \"Cloud\",\n children: []\n }\n ];\n const core = [\n {\n label: \"Core\",\n children: []\n }\n ];\n const custom = [\n {\n label: \"Custom\",\n children: []\n }\n ];\n (componentDefinitions || []).map((item) => {\n if (item.workloadType === \"configurations.terraform.core.oam.dev\") {\n cloud[0].children.push({\n label: item.name,\n value: item.name\n });\n } else if (defaultCoreDataSource.includes(item.name)) {\n core[0].children.push({\n label: item.name,\n value: item.name\n });\n } else {\n custom[0].children.push({\n label: item.name,\n value: item.name\n });\n }\n });\n return [...core, ...custom, ...cloud];\n}\nexport function getLink(endpointObj) {\n const { appProtocol, host } = endpointObj.endpoint;\n let { port, protocol = \"\", path = \"\" } = endpointObj.endpoint;\n protocol = protocol.toLocaleLowerCase();\n if (appProtocol && appProtocol !== \"\") {\n protocol = appProtocol;\n }\n if (protocol == \"tcp\") {\n protocol = \"http\";\n }\n if (host == \"\") {\n return path;\n }\n if (path === \"/\") {\n path = \"\";\n }\n if (protocol === \"https\" && port == 443 || protocol === \"http\" && port === 80) {\n port = \"\";\n } else {\n port = \":\" + port;\n }\n return protocol + \"://\" + host + port + path;\n}\nexport function getValue(key, value) {\n if (key.indexOf(\".\") > -1) {\n const currentKey = key.substring(0, key.indexOf(\".\"));\n const nextKey = key.substring(key.indexOf(\".\") + 1);\n return getValue(nextKey, value[currentKey]);\n }\n if (!value) {\n return null;\n }\n return value[key];\n}\nexport function getSelectLabel(data) {\n return (data || []).map((item) => {\n return { label: item.alias || item.name, value: item.name };\n });\n}\nexport function getMatchParamObj(match, name) {\n return match.params && match.params[name];\n}\nexport function getBrowserNameAndVersion() {\n const agent = navigator.userAgent.toLowerCase();\n const regStr_ie = /msie [\\d.]+/gi;\n const regStr_ff = /firefox\\/[\\d.]+/gi;\n const regStr_chrome = /chrome\\/[\\d.]+/gi;\n const regStr_saf = /safari\\/[\\d.]+/gi;\n let browserNV;\n if (agent.indexOf(\"msie\") > 0) {\n browserNV = agent.match(regStr_ie);\n }\n if (agent.indexOf(\"firefox\") > 0) {\n browserNV = agent.match(regStr_ff);\n }\n if (agent.indexOf(\"chrome\") > 0) {\n browserNV = agent.match(regStr_chrome);\n }\n if (agent.indexOf(\"safari\") > 0 && agent.indexOf(\"chrome\") < 0) {\n browserNV = agent.match(regStr_saf);\n }\n browserNV = browserNV.toString();\n if (\"\" == browserNV) {\n browserNV = \"Is not a standard browser\";\n }\n if (browserNV.indexOf(\"firefox\") != -1 || browserNV.indexOf(\"chrome\") != -1) {\n browserNV = browserNV.replace(\"/\", \"\");\n }\n if (browserNV.indexOf(\"msie\") != -1) {\n browserNV = browserNV.replace(\"msie\", \"ie\").replace(/\\s/g, \"\");\n }\n return browserNV;\n}\nexport function downloadStringFile(content, filename) {\n const element = document.createElement(\"a\");\n const file = new Blob([content], { type: \"text/plain\" });\n element.href = URL.createObjectURL(file);\n element.download = filename;\n document.body.appendChild(element);\n element.click();\n}\n","\"use strict\";\nimport React, { Component } from \"react\";\nimport { Translation } from \"../Translation\";\nimport { Form, Input, Select, Field, Switch, Grid, Divider } from \"@alifd/next\";\nimport \"./index.less\";\nimport i18n from \"i18next\";\nimport * as yaml from \"js-yaml\";\nimport { v4 as uuid } from \"uuid\";\nimport CPUNumber from \"../../extends/CPUNumber\";\nimport CertBase64 from \"../../extends/CertBase64\";\nimport ComponentPatches from \"../../extends/ComponentPatches\";\nimport ComponentSelect from \"../../extends/ComponentSelect\";\nimport DiskNumber from \"../../extends/DiskNumber\";\nimport Group from \"../../extends/Group\";\nimport HelmChartSelect from \"../../extends/HelmChartSelect\";\nimport HelmChartVersionSelect from \"../../extends/HelmChartVersionSelect\";\nimport HelmRepoSelect from \"../../extends/HelmRepoSelect\";\nimport HelmValues from \"../../extends/HelmValues\";\nimport ImageInput from \"../../extends/ImageInput\";\nimport K8sObjectsCode from \"../../extends/K8sObjectsCode\";\nimport KV from \"../../extends/KV\";\nimport MemoryNumber from \"../../extends/MemoryNumber\";\nimport PolicySelect from \"../../extends/PolicySelect\";\nimport SecretKeySelect from \"../../extends/SecretKeySelect\";\nimport SecretSelect from \"../../extends/SecretSelect\";\nimport Strings from \"../../extends/Strings\";\nimport Numbers from \"../../extends/Numbers\";\nimport Structs from \"../../extends/Structs\";\nimport { checkImageName, replaceUrl } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport { getValue } from \"../../utils/utils\";\nimport DefinitionCode from \"../DefinitionCode\";\nimport { If } from \"../If\";\nconst { Col, Row } = Grid;\nfunction convertRule(validate) {\n const rules = [];\n if (!validate) {\n return [];\n }\n if (validate.required) {\n rules.push({\n required: true,\n message: \"This field is required.\"\n });\n }\n if (validate.min != void 0) {\n rules.push({\n min: validate.min,\n message: \"Enter a number greater than \" + validate.min\n });\n }\n if (validate.max != void 0) {\n rules.push({\n max: validate.max,\n message: \"Enter a number less than \" + validate.max\n });\n }\n if (validate.minLength != void 0) {\n rules.push({\n minLength: validate.minLength,\n message: `Enter a minimum of ${validate.minLength} characters.`\n });\n }\n if (validate.maxLength != void 0) {\n rules.push({\n maxLength: validate.maxLength,\n message: `Enter a maximum of ${validate.maxLength} characters.`\n });\n }\n if (validate.pattern) {\n rules.push({\n pattern: new RegExp(validate.pattern),\n message: `Please enter a value that conforms to the specification. ` + validate.pattern\n });\n }\n return rules;\n}\nclass UISchema extends Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n this.setValues();\n };\n this.onRegisterForm = (key, form) => {\n this.registerForm[key] = form;\n };\n this.onChangeAdvanced = (advanced) => {\n this.setState({ advanced });\n };\n // The upper component must set the values before init the UI Schema component.\n this.setValues = () => {\n const { value } = this.props;\n if (value) {\n this.form.setValues(value);\n }\n };\n this.validate = (callback) => {\n this.form.validate((errors) => {\n const { codeError } = this.state;\n if (errors) {\n console.log(errors);\n callback(\"ui schema validate failure\");\n return;\n }\n if (codeError) {\n callback(\"ui schema validate failure\");\n return;\n }\n callback();\n });\n };\n this.conditionAllowRender = (conditions) => {\n if (!conditions || conditions.length == 0) {\n return true;\n }\n const action = {\n disable: 0,\n enable: 0\n };\n let enableConditionCount = 0;\n conditions.map((condition) => {\n const values = this.form.getValues();\n const value = getValue(condition.jsonKey, values);\n if (condition.action == \"enable\" || !condition.action) {\n enableConditionCount += 1;\n }\n switch (condition.op) {\n case \"in\":\n if (Array.isArray(condition.value) && condition.value.includes(value)) {\n action[condition.action || \"enable\"] += 1;\n }\n break;\n case \"!=\":\n if (condition.value != value) {\n action[condition.action || \"enable\"] += 1;\n }\n break;\n default:\n if (condition.value == value) {\n action[condition.action || \"enable\"] += 1;\n }\n }\n });\n if (action.disable > 0) {\n return false;\n }\n if (action.enable > 0 && action.enable == enableConditionCount) {\n return true;\n }\n return false;\n };\n this.renderDocumentURL = () => {\n const { definition } = this.props;\n if (definition) {\n switch (definition.type) {\n case \"component\":\n return \"https://kubevela.net/docs/end-user/components/references#\" + definition.name;\n case \"trait\":\n return \"https://kubevela.net/docs/end-user/traits/references#\" + definition.name;\n case \"policy\":\n return \"https://kubevela.net/docs/end-user/policies/references#\" + definition.name;\n case \"workflowstep\":\n return \"https://kubevela.net/docs/end-user/workflow/built-in-workflow-defs#\" + definition.name;\n }\n }\n return;\n };\n this.renderCodeEdit = () => {\n const { value, onChange, definition } = this.props;\n const { codeError } = this.state;\n const codeID = uuid();\n let yamlValue = yaml.dump(value);\n if (yamlValue == \"{}\\n\") {\n yamlValue = \"\";\n }\n return /* @__PURE__ */ React.createElement(\"div\", { style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(If, { condition: codeError }, /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"red\" } }, codeError)), /* @__PURE__ */ React.createElement(If, { condition: definition }, /* @__PURE__ */ React.createElement(\"p\", null, \"Refer to the document:\", /* @__PURE__ */ React.createElement(\"a\", { style: { marginLeft: \"8px\" }, target: \"_blank\", href: this.renderDocumentURL(), rel: \"noopener noreferrer\" }, \"click here\"))), /* @__PURE__ */ React.createElement(\"div\", { id: codeID, className: \"guide-code\" }, /* @__PURE__ */ React.createElement(\n DefinitionCode,\n {\n value: yamlValue,\n onBlurEditor: (v) => {\n if (onChange) {\n try {\n const valueObj = yaml.load(v);\n onChange(valueObj);\n this.setState({ codeError: \"\" });\n } catch (err) {\n this.setState({ codeError: \"Please input a valid yaml config:\" + err });\n }\n }\n },\n id: codeID + \"-code\",\n containerId: codeID,\n language: \"yaml\",\n readOnly: false\n }\n )));\n };\n const paramKeyMap = {};\n this.props.uiSchema?.map((param) => {\n paramKeyMap[param.jsonKey] = param;\n });\n this.form = new Field(this, {\n onChange: (name, value) => {\n const values = this.form.getValues();\n if (paramKeyMap[name] && paramKeyMap[name].uiType == \"Number\" && value === \"\") {\n delete values[name];\n }\n if (Array.isArray(value) && value.length == 0) {\n delete values[name];\n }\n const { onChange } = this.props;\n if (onChange) {\n onChange(values);\n }\n }\n });\n this.registerForm = {};\n if (this.props.registerForm) {\n this.props.registerForm(this.form);\n }\n this.state = {\n secretKeys: [],\n advanced: props.advanced || false\n };\n }\n render() {\n const { advanced } = this.state;\n const { uiSchema, inline, maxColSpan, disableRenderRow, value, mode, enableCodeEdit } = this.props;\n if (!uiSchema || enableCodeEdit) {\n return this.renderCodeEdit();\n }\n let onlyShowRequired = false;\n let couldShowParamCount = 0;\n uiSchema.map((param) => {\n if (param.disable) {\n return;\n }\n if (!this.conditionAllowRender(param.conditions)) {\n return;\n }\n couldShowParamCount += 1;\n });\n if (couldShowParamCount > 5) {\n onlyShowRequired = true;\n }\n let couldBeDisabledParamCount = 0;\n let requiredParamCount = 0;\n const items = uiSchema.map((param) => {\n const init = this.form.init;\n const required = param.validate && param.validate.required;\n if (param.disable) {\n return;\n }\n if (!this.conditionAllowRender(param.conditions)) {\n return;\n }\n if (!required) {\n couldBeDisabledParamCount += 1;\n } else {\n requiredParamCount += 1;\n }\n if (onlyShowRequired && !required && !advanced) {\n return;\n }\n const validator = (rule, v, callback) => {\n if (this.registerForm[param.jsonKey]) {\n this.registerForm[param.jsonKey].validate((errors) => {\n if (errors) {\n callback(`param ${param.jsonKey} validate failure`);\n }\n callback();\n });\n } else if (required) {\n callback(`param ${param.jsonKey} is required`);\n } else {\n callback();\n }\n };\n let description = param.description;\n if (description && description.indexOf(\"http\") == -1 && description.indexOf(\":\") == -1) {\n description = i18n.t(description);\n }\n let label = param.label;\n if (label) {\n label = i18n.t(label);\n }\n let initValue = value && value[param.jsonKey];\n if (initValue === void 0) {\n initValue = param.validate?.defaultValue;\n }\n const disableEdit = param.validate?.immutable && mode == \"edit\" || false;\n const getGroup = (children) => {\n return /* @__PURE__ */ React.createElement(\n Group,\n {\n hasToggleIcon: true,\n description,\n title: label,\n closed: true,\n required,\n field: this.form,\n jsonKey: param.jsonKey || \"\",\n propertyValue: this.props.value,\n onChange: (values) => {\n if (this.props.onChange) {\n this.props.onChange(values);\n }\n }\n },\n /* @__PURE__ */ React.createElement(Form.Item, { required, disabled: disableEdit, key: param.jsonKey }, /* @__PURE__ */ React.createElement(React.Fragment, null, children))\n );\n };\n const item = () => {\n switch (param.uiType) {\n case \"Switch\":\n const getDefaultSwitchValue = (validate) => {\n if (validate.required === true) {\n return false;\n }\n return;\n };\n const switchResult = init(param.jsonKey, {\n initValue: initValue || getDefaultSwitchValue(param.validate),\n rules: convertRule(param.validate)\n });\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n className: \"switch-container\",\n required,\n key: param.jsonKey,\n label: /* @__PURE__ */ React.createElement(\"span\", { title: description }, label),\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } })\n },\n /* @__PURE__ */ React.createElement(\n Switch,\n {\n disabled: disableEdit,\n id: switchResult.id,\n onChange: switchResult.onChange,\n size: \"medium\",\n checked: switchResult.value ? true : false\n }\n )\n );\n case \"Input\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n labelAlign: inline ? \"inset\" : \"left\",\n label,\n key: param.jsonKey,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } })\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n disabled: disableEdit,\n autoComplete: \"off\",\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n case \"Password\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n labelAlign: inline ? \"inset\" : \"left\",\n label,\n key: param.jsonKey,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } })\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n disabled: disableEdit,\n htmlType: \"password\",\n autoComplete: \"off\",\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n case \"Select\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n labelAlign: inline ? \"inset\" : \"left\",\n label,\n key: param.jsonKey,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } })\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n disabled: disableEdit,\n locale: locale().Select,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n }),\n dataSource: param.validate && param.validate.options\n }\n )\n );\n case \"Number\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n labelAlign: inline ? \"inset\" : \"left\",\n required,\n label,\n key: param.jsonKey,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } })\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n }),\n htmlType: \"number\"\n }\n )\n );\n case \"ImageInput\":\n const imagePullSecretsValue = value && value.imagePullSecrets;\n const initResult = init(\"imagePullSecrets\", {\n initValue: imagePullSecretsValue,\n rules: []\n });\n return /* @__PURE__ */ React.createElement(\n ImageInput,\n {\n label,\n key: param.jsonKey,\n required: required || false,\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n required: true,\n pattern: checkImageName,\n message: \"Please enter a valid image name\"\n }\n ]\n }),\n secretValue: initResult.value,\n onSecretChange: initResult.onChange,\n secretID: initResult.id\n }\n );\n case \"HelmChartSelect\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n HelmChartSelect,\n {\n disabled: disableEdit,\n helm: this.props.value,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n required: true,\n pattern: checkImageName,\n message: \"Please select a chart\"\n }\n ]\n })\n }\n )\n );\n case \"HelmChartVersionSelect\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n HelmChartVersionSelect,\n {\n disabled: disableEdit,\n helm: this.props.value,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n required: true,\n pattern: checkImageName,\n message: \"Please select a chart version\"\n }\n ]\n })\n }\n )\n );\n case \"HelmRepoSelect\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n HelmRepoSelect,\n {\n disabled: disableEdit,\n helm: this.props.value,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n required: true,\n pattern: checkImageName,\n message: \"Please select or input a helm repo\"\n }\n ]\n }),\n onChangeSecretRef: (secretName) => {\n this.form.setValue(\"secretRef\", secretName);\n }\n }\n )\n );\n case \"KV\":\n const children = /* @__PURE__ */ React.createElement(\n KV,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n }),\n key: param.jsonKey,\n additional: param.additional,\n additionalParameter: param.additionalParameter\n }\n );\n return getGroup(children);\n case \"HelmValues\":\n return getGroup(\n /* @__PURE__ */ React.createElement(\n HelmValues,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n }),\n key: param.jsonKey,\n helm: this.props.value,\n additional: param.additional,\n additionalParameter: param.additionalParameter\n }\n )\n );\n case \"Strings\":\n return getGroup(\n /* @__PURE__ */ React.createElement(\n Strings,\n {\n disabled: disableEdit,\n key: param.jsonKey,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n case \"Numbers\":\n return getGroup(\n /* @__PURE__ */ React.createElement(\n Numbers,\n {\n disabled: disableEdit,\n key: param.jsonKey,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n case \"SecretSelect\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n labelAlign: inline ? \"inset\" : \"left\",\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n SecretSelect,\n {\n disabled: disableEdit,\n setKeys: (keys) => {\n this.setState({ secretKeys: keys });\n },\n ...init(param.jsonKey, {\n initValue: this.props.value?.name || param.validate?.defaultValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n case \"SecretKeySelect\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n labelAlign: inline ? \"inset\" : \"left\",\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n SecretKeySelect,\n {\n disabled: disableEdit,\n secretKeys: this.state.secretKeys,\n ...init(param.jsonKey, {\n initValue: this.props.value?.key || param.validate?.defaultValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n case \"CPUNumber\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n CPUNumber,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n required,\n min: 0,\n message: \"Please enter a valid cpu request number\"\n }\n ]\n })\n }\n )\n );\n case \"MemoryNumber\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n MemoryNumber,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n required,\n min: 0,\n message: \"Please enter a valid memory request number\"\n }\n ]\n })\n }\n )\n );\n case \"DiskNumber\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n DiskNumber,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n required,\n min: 0,\n message: \"Please enter a valid disk size\"\n }\n ]\n })\n }\n )\n );\n case \"Group\":\n if (param.subParameters && param.subParameters.length > 0) {\n return /* @__PURE__ */ React.createElement(\n Group,\n {\n key: param.jsonKey,\n hasToggleIcon: true,\n description: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n title: label,\n closed: true,\n required,\n field: this.form,\n jsonKey: param.jsonKey || \"\",\n propertyValue: this.props.value,\n onChange: (values) => {\n if (this.props.onChange) {\n this.props.onChange(values);\n }\n }\n },\n /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n validator\n }\n ]\n }),\n registerForm: (form) => {\n this.onRegisterForm(param.jsonKey, form);\n },\n uiSchema: param.subParameters,\n mode: this.props.mode\n }\n )\n );\n }\n return /* @__PURE__ */ React.createElement(\"div\", null);\n case \"Structs\":\n if (param.subParameters && param.subParameters.length > 0) {\n return getGroup(\n /* @__PURE__ */ React.createElement(\n Structs,\n {\n key: param.jsonKey,\n label,\n param: param.subParameters,\n parameterGroupOption: param.subParameterGroupOption,\n registerForm: (form) => {\n this.onRegisterForm(param.jsonKey, form);\n },\n mode: this.props.mode,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n validator,\n message: `Please check ${label} config`\n }\n ]\n })\n }\n )\n );\n }\n return /* @__PURE__ */ React.createElement(\"div\", null);\n case \"Ignore\":\n if (param.subParameters && param.subParameters.length > 0) {\n const itemCount = param.subParameters?.filter((p) => !p.disable).length || 1;\n return /* @__PURE__ */ React.createElement(\n UISchema,\n {\n uiSchema: param.subParameters,\n registerForm: (form) => {\n this.onRegisterForm(param.jsonKey, form);\n },\n inline,\n maxColSpan: 24 / itemCount,\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n validator\n }\n ]\n }),\n mode: this.props.mode\n }\n );\n }\n return /* @__PURE__ */ React.createElement(\"div\", null);\n case \"K8sObjectsCode\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n K8sObjectsCode,\n {\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n required,\n message: \"Please enter a valid kubernetes resource yaml code\"\n }\n ]\n })\n }\n )\n );\n case \"PolicySelect\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n labelAlign: inline ? \"inset\" : \"left\",\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n PolicySelect,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n case \"ComponentSelect\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n labelAlign: inline ? \"inset\" : \"left\",\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n ComponentSelect,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n case \"ComponentPatches\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n labelAlign: inline ? \"inset\" : \"left\",\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n ComponentPatches,\n {\n disabled: disableEdit,\n registerForm: (form) => {\n this.onRegisterForm(param.jsonKey, form);\n },\n ...init(param.jsonKey, {\n initValue,\n rules: [\n {\n validator\n }\n ]\n })\n }\n )\n );\n case \"CertBase64\":\n return /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n labelAlign: inline ? \"inset\" : \"left\",\n required,\n label,\n help: /* @__PURE__ */ React.createElement(\"div\", { dangerouslySetInnerHTML: { __html: replaceUrl(description || \"\") } }),\n disabled: disableEdit,\n key: param.jsonKey\n },\n /* @__PURE__ */ React.createElement(\n CertBase64,\n {\n disabled: disableEdit,\n ...init(param.jsonKey, {\n initValue,\n rules: convertRule(param.validate)\n })\n }\n )\n );\n default:\n return;\n }\n };\n let colSpan = 24;\n if (maxColSpan) {\n colSpan = maxColSpan;\n }\n if (param.style?.colSpan) {\n colSpan = param.style?.colSpan;\n }\n return /* @__PURE__ */ React.createElement(Col, { key: param.jsonKey, span: colSpan, style: { padding: \"0 4px\" } }, item());\n });\n const formItemLayout = {\n labelCol: {\n fixedSpan: 4\n },\n wrapperCol: {\n span: 14\n }\n };\n const showAdvancedButton = couldBeDisabledParamCount != couldShowParamCount || requiredParamCount === 0;\n return /* @__PURE__ */ React.createElement(Form, { field: this.form, className: \"ui-schema-container\" }, /* @__PURE__ */ React.createElement(If, { condition: disableRenderRow }, items), /* @__PURE__ */ React.createElement(If, { condition: !disableRenderRow }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, items), /* @__PURE__ */ React.createElement(If, { condition: onlyShowRequired }, /* @__PURE__ */ React.createElement(Divider, null), /* @__PURE__ */ React.createElement(If, { condition: showAdvancedButton }, /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, style: { width: \"100%\" }, fullWidth: true }, /* @__PURE__ */ React.createElement(Form.Item, { labelAlign: \"left\", colon: true, label: /* @__PURE__ */ React.createElement(Translation, null, \"Advanced Parameters\") }, /* @__PURE__ */ React.createElement(Switch, { onChange: this.onChangeAdvanced, size: \"small\", checked: advanced })))))));\n }\n}\nexport default UISchema;\n","\"use strict\";\nimport {\n Form,\n Button,\n Loading,\n Field,\n Card,\n Dialog,\n Table,\n Message,\n Select,\n Checkbox,\n Grid,\n Dropdown,\n Menu\n} from \"@alifd/next\";\nimport React from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport { getAddonsDetails, getAddonsStatus, disableAddon, enableAddon, upgradeAddon } from \"../../../../api/addons\";\nimport { listApplicationServiceEndpoints } from \"../../../../api/observation\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport Empty from \"../../../../components/Empty\";\nimport Permission from \"../../../../components/Permission\";\nimport StatusShow from \"../../../../components/StatusShow\";\nimport { Translation } from \"../../../../components/Translation\";\nimport UISchema from \"../../../../components/UISchema\";\nimport i18n from \"../../../../i18n\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"github-markdown-css/github-markdown-light.css\";\nimport \"./index.less\";\nimport { Link } from \"dva/router\";\nimport { getLink } from \"../../../../utils/utils\";\nimport { BiCodeBlock, BiLaptop } from \"react-icons/bi\";\nconst { Col, Row } = Grid;\nclass AddonDetailDialog extends React.Component {\n constructor(props) {\n super(props);\n this.loadAddonDetail = async () => {\n const { version } = this.state;\n this.setState({ loading: true });\n getAddonsDetails({ name: this.props.addonName, version }).then((res) => {\n if (res) {\n this.setState({ addonDetailInfo: res, schema: res.uiSchema, loading: false });\n if (!this.state.version && res.version) {\n this.setState({ version: res.version });\n }\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n };\n this.loadAddonStatus = () => {\n this.setState({ statusLoading: true });\n getAddonsStatus({ name: this.props.addonName }).then((res) => {\n if (!res) {\n return;\n }\n if ((res.phase == \"enabling\" || res.phase === \"disabling\") && !this.statusLoop) {\n this.statusLoop = true;\n this.timeout = setTimeout(() => {\n this.statusLoop = false;\n this.loadAddonStatus();\n }, 4e3);\n }\n let clusters = [];\n if (res.args) {\n this.form.setValue(\"properties\", res.args);\n this.setState({ mode: \"edit\" });\n if (res.args.clusters) {\n clusters = res.args.clusters;\n }\n } else {\n this.setState({ mode: \"new\" });\n }\n let enabledClusters = [];\n if (res.clusters) {\n enabledClusters = Object.keys(res.clusters);\n }\n if (res.clusters && (!clusters || clusters.length == 0)) {\n clusters = enabledClusters;\n }\n this.setState({\n status: res.phase,\n args: res.args,\n version: res.installedVersion || this.state.version,\n allClusters: res.allClusters,\n statusLoading: false,\n clusters: clusters || [\"local\"],\n addonsStatus: res.appStatus,\n enabledClusters\n });\n }).catch(() => {\n this.setState({ statusLoading: false });\n });\n };\n this.loadAddonEndpoints = () => {\n const appName = \"addon-\" + this.props.addonName;\n listApplicationServiceEndpoints({\n appName,\n appNs: \"vela-system\"\n }).then((re) => {\n if (re && re.endpoints) {\n this.setState({ endpoints: re.endpoints });\n } else {\n this.setState({ endpoints: [] });\n }\n });\n };\n this.onDisable = () => {\n Dialog.confirm({\n content: i18n.t(\"Please make sure this addon is not used anywhere and related applications recycled.\"),\n onOk: this.disableAddon,\n locale: locale().Dialog\n });\n return;\n };\n this.onEnable = () => {\n this.form.validate((errors, values) => {\n if (errors) {\n return;\n }\n this.enableAddon(values.properties);\n });\n };\n this.onUpgrade = () => {\n this.form.validate((errors, values) => {\n if (errors) {\n return;\n }\n if (!this.state.version) {\n Message.warning(i18n.t(\"Please select want to enable version firstly\"));\n return;\n }\n if (this.state.addonDetailInfo?.deployTo?.runtimeCluster && (!this.state.clusters || this.state.clusters.length == 0)) {\n Message.warning(i18n.t(\"Please select at least one cluster firstly.\"));\n return;\n }\n this.setState({ upgradeLoading: true });\n const params = {\n name: this.props.addonName,\n version: this.state.version,\n properties: values.properties,\n registry: this.state.addonDetailInfo?.registryName\n };\n if (this.state.addonDetailInfo?.deployTo?.runtimeCluster) {\n params.clusters = this.state.clusters;\n }\n upgradeAddon(params).then(() => {\n this.loadAddonStatus();\n this.setState({ upgradeLoading: false });\n });\n });\n };\n this.enableAddon = async (properties) => {\n if (!this.state.version) {\n Message.warning(i18n.t(\"Please select want to enable version\"));\n return;\n }\n if (this.state.addonDetailInfo?.deployTo?.runtimeCluster && (!this.state.clusters || this.state.clusters.length == 0)) {\n Message.warning(i18n.t(\"Please select at least one cluster firstly.\"));\n return;\n }\n this.setState({ statusLoading: true, enableLoading: true }, () => {\n if (this.state.version) {\n const params = {\n name: this.props.addonName,\n version: this.state.version,\n properties,\n registry: this.state.addonDetailInfo?.registryName\n };\n if (this.state.addonDetailInfo?.deployTo?.runtimeCluster) {\n params.clusters = this.state.clusters;\n }\n enableAddon(params).then(() => {\n this.loadAddonStatus();\n }).finally(() => {\n this.setState({ enableLoading: false });\n });\n }\n });\n };\n this.disableAddon = async () => {\n this.setState({ statusLoading: true }, () => {\n disableAddon({ name: this.props.addonName }).then(() => {\n this.loadAddonStatus();\n });\n });\n };\n this.onClose = () => {\n this.props.onClose();\n };\n this.updateStatusShow = (show) => {\n this.setState({ showStatusVisible: show });\n };\n this.onStatusClose = () => {\n this.setState({ showStatusVisible: false });\n };\n this.changeVersion = (version) => {\n this.setState({ version }, () => {\n this.setState({ schema: void 0 }, () => {\n this.loadAddonDetail();\n });\n });\n };\n this.changeCluster = (values) => {\n if (!values.includes(\"local\")) {\n Message.warning(\"The local cluster ie required\");\n values.push(\"local\");\n }\n this.setState({ clusters: values });\n };\n this.state = {\n propertiesMode: \"native\",\n addonDetailInfo: {\n name: \"\"\n },\n status: \"\",\n loading: true,\n statusLoading: true,\n upgradeLoading: false,\n showStatusVisible: false\n };\n this.form = new Field(this);\n this.uiSchemaRef = React.createRef();\n this.statusLoop = false;\n this.timeout = null;\n }\n componentDidMount() {\n this.loadAddonDetail();\n this.loadAddonStatus();\n this.loadAddonEndpoints();\n }\n componentWillUnmount() {\n if (this.timeout != null) {\n clearTimeout(this.timeout);\n }\n }\n render() {\n const {\n loading,\n addonDetailInfo,\n status,\n statusLoading,\n upgradeLoading,\n enableLoading,\n addonsStatus,\n showStatusVisible,\n version,\n clusters,\n allClusters,\n enabledClusters,\n endpoints,\n propertiesMode,\n schema\n } = this.state;\n const { showAddon, addonName } = this.props;\n const validator = (rule, value, callback) => {\n this.uiSchemaRef.current?.validate(callback);\n };\n let showName = addonDetailInfo?.name ? addonDetailInfo.name : \"Addon Detail\";\n showName = `${showName}(${status})`;\n addonDetailInfo?.uiSchema?.map((item) => {\n if (item.jsonKey.indexOf(\"SECRET_KEY\") != -1) {\n item.uiType = \"Password\";\n }\n if (item.jsonKey.indexOf(\"ACCESS_KEY\") != -1) {\n item.uiType = \"Password\";\n }\n });\n const buttons = [];\n const workflowStatus = addonsStatus?.status;\n if (status === \"enabled\" || status === \"enabling\" || status === \"disabling\") {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `addon:${addonName}`,\n action: \"disable\"\n },\n key: \"disable\",\n project: \"\"\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n onClick: this.onDisable,\n title: status,\n className: \"danger-btn\",\n loading: status === \"disabling\",\n disabled: status === \"disabling\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Disable\")\n )\n )\n );\n }\n if (status == \"enabled\" || status == \"suspend\" || workflowStatus == \"workflowFailed\") {\n buttons.push(\n /* @__PURE__ */ React.createElement(Permission, { key: \"upgrade\", request: { resource: `addon:${addonName}`, action: \"update\" }, project: \"\" }, /* @__PURE__ */ React.createElement(Button, { loading: upgradeLoading, type: \"primary\", onClick: this.onUpgrade, style: { marginLeft: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Upgrade\")))\n );\n }\n if (status === \"disabled\" || status === \"enabling\" && workflowStatus != \"workflowFailed\") {\n buttons.push(\n /* @__PURE__ */ React.createElement(Permission, { key: \"enable\", request: { resource: `addon:${addonName}`, action: \"enable\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n loading: status === \"enabling\" || enableLoading,\n type: \"primary\",\n onClick: this.onEnable,\n style: { marginLeft: \"16px\" }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Enable\")\n ))\n );\n }\n const getAppStatusShowType = (statusInfo) => {\n if (!statusInfo) {\n return \"notice\";\n }\n switch (statusInfo) {\n case \"running\":\n return \"success\";\n case \"workflowFinished\":\n return \"success\";\n case \"unhealthy\":\n return \"error\";\n }\n return \"warning\";\n };\n const clusterOptions = allClusters?.map((cluster) => {\n let label = cluster.alias || cluster.name;\n if (enabledClusters?.includes(cluster.name)) {\n label = /* @__PURE__ */ React.createElement(\"span\", null, label, \"(\", /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"green\" } }, \"enabled\"), \")\");\n }\n return {\n label,\n value: cluster.name\n };\n });\n const outerEndpoint = endpoints?.filter((end) => !end.endpoint.inner);\n const notice = \"This addon is experimental, please don't use it in production\";\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"basic\" }, /* @__PURE__ */ React.createElement(DrawerWithFooter, { title: showName, width: 800, placement: \"right\", onClose: this.onClose, extButtons: buttons }, /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, addonDetailInfo && addonDetailInfo.registryName == \"experimental\" && /* @__PURE__ */ React.createElement(Message, { type: \"warning\" }, /* @__PURE__ */ React.createElement(Translation, null, notice)), addonsStatus && addonsStatus.status && /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 16 }, /* @__PURE__ */ React.createElement(\n Message,\n {\n type: getAppStatusShowType(addonsStatus?.status),\n size: \"medium\",\n style: { padding: \"8px\", marginBottom: \"10px\" }\n },\n `${i18n.t(\"Addon status is \")}${addonsStatus?.status || \"Init\"}`,\n /* @__PURE__ */ React.createElement(Link, { style: { marginLeft: \"16px\" }, to: `/applications/addon-${addonDetailInfo?.name}/envbinding` }, /* @__PURE__ */ React.createElement(Translation, null, \"Check the details\"))\n )), outerEndpoint && outerEndpoint?.length > 0 && /* @__PURE__ */ React.createElement(Col, { span: 8, className: \"flexright\" }, /* @__PURE__ */ React.createElement(\n Dropdown,\n {\n trigger: /* @__PURE__ */ React.createElement(Button, { style: { marginLeft: \"16px\" }, type: \"secondary\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Endpoints\"))\n },\n /* @__PURE__ */ React.createElement(Menu, null, outerEndpoint?.map((item) => {\n const linkURL = getLink(item);\n return /* @__PURE__ */ React.createElement(Menu.Item, { key: linkURL }, item.endpoint.portName && /* @__PURE__ */ React.createElement(\"span\", { className: \"margin-right-5\" }, item.endpoint.portName, \":\"), /* @__PURE__ */ React.createElement(\"a\", { style: { color: \"#1b58f4\" }, target: \"_blank\", href: linkURL, rel: \"noopener noreferrer\" }, linkURL));\n }))\n ))), /* @__PURE__ */ React.createElement(Card, { title: \"\", contentHeight: \"auto\", style: { marginBottom: \"16px\" } }, addonDetailInfo?.availableVersions && /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Form.Item, { required: true, label: i18n.t(\"Version\").toString() }, /* @__PURE__ */ React.createElement(\n Select,\n {\n onChange: this.changeVersion,\n dataSource: addonDetailInfo?.availableVersions || [],\n value: version\n }\n )), addonDetailInfo?.system && /* @__PURE__ */ React.createElement(\"span\", { className: \"warning-text\" }, \"This version requirements: (\", addonDetailInfo?.system.vela ? `KubeVela: ${addonDetailInfo?.system.vela}` : \"\", addonDetailInfo?.system.kubernetes ? ` Kubernetes: ${addonDetailInfo?.system.kubernetes}` : \"\", \")\")), addonDetailInfo?.deployTo?.runtimeCluster && /* @__PURE__ */ React.createElement(Form.Item, { required: true, label: i18n.t(\"Deployed Clusters\").toString() }, /* @__PURE__ */ React.createElement(\n Checkbox.Group,\n {\n className: \"custom-cluster-checkbox\",\n onChange: this.changeCluster,\n value: clusters,\n dataSource: clusterOptions\n }\n ))), schema && /* @__PURE__ */ React.createElement(\n Card,\n {\n contentHeight: \"auto\",\n className: \"withActions\",\n title: \"Properties\",\n subTitle: schema ? [\n /* @__PURE__ */ React.createElement(\n Button,\n {\n style: { marginTop: \"-12px\", alignItems: \"center\", display: \"flex\" },\n onClick: () => {\n if (propertiesMode === \"native\") {\n this.setState({ propertiesMode: \"code\" });\n } else {\n this.setState({ propertiesMode: \"native\" });\n }\n }\n },\n propertiesMode === \"native\" && /* @__PURE__ */ React.createElement(BiCodeBlock, { size: 14, title: i18n.t(\"Switch to the coding mode\") }),\n propertiesMode === \"code\" && /* @__PURE__ */ React.createElement(BiLaptop, { size: 14, title: i18n.t(\"Switch to the native mode\") })\n )\n ] : []\n },\n /* @__PURE__ */ React.createElement(Row, null, this.state.mode && schema && /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...this.form.init(`properties`, {\n rules: [\n {\n validator,\n message: i18n.t(\"Please check the addon properties\")\n }\n ]\n }),\n enableCodeEdit: propertiesMode === \"code\",\n uiSchema: schema,\n definition: {\n name: addonDetailInfo?.name || \"\",\n type: \"addon\",\n description: addonDetailInfo?.description || \"\"\n },\n ref: this.uiSchemaRef,\n mode: this.state.mode\n }\n ))\n ), addonDetailInfo?.dependencies && /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Dependencies\") }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\", style: { marginBottom: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Ensure that dependent addon are enabled first.\")), /* @__PURE__ */ React.createElement(\"ul\", null, addonDetailInfo?.dependencies?.map((item) => {\n return /* @__PURE__ */ React.createElement(\"li\", { className: \"dependency-item\", key: item.name }, /* @__PURE__ */ React.createElement(\n \"a\",\n {\n onClick: () => {\n if (showAddon) {\n showAddon(item.name);\n }\n }\n },\n item.name\n ));\n }))), addonDetailInfo?.definitions && /* @__PURE__ */ React.createElement(\n Card,\n {\n contentHeight: \"auto\",\n locale: locale().Card,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Definitions\"),\n style: { marginTop: \"16px\" }\n },\n /* @__PURE__ */ React.createElement(Message, { type: \"notice\", style: { marginBottom: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Enable the addon to obtain the following extension capabilities\")),\n /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: addonDetailInfo?.definitions }, /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"name\", align: \"left\", width: \"140px\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\") }), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"type\",\n align: \"left\",\n width: \"160px\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(Translation, null, v);\n },\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Type\")\n }\n ), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"description\", align: \"center\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }))\n ), /* @__PURE__ */ React.createElement(\n Card,\n {\n contentHeight: \"auto\",\n locale: locale().Card,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"README\"),\n style: { marginTop: \"16px\" }\n },\n addonDetailInfo?.detail && /* @__PURE__ */ React.createElement(ReactMarkdown, { className: \"markdown-body addon-readme\", remarkPlugins: [remarkGfm] }, addonDetailInfo?.detail || \"\"),\n !addonDetailInfo?.detail && /* @__PURE__ */ React.createElement(\"div\", { className: \"readme-empty\" }, /* @__PURE__ */ React.createElement(Empty, null))\n ))), showStatusVisible && /* @__PURE__ */ React.createElement(\n StatusShow,\n {\n loading: statusLoading,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Addon Status\"),\n applicationStatus: addonsStatus,\n loadStatusDetail: this.loadAddonStatus,\n onClose: this.onStatusClose\n }\n ));\n }\n}\nexport default AddonDetailDialog;\n","\"use strict\";\nimport { Button, Message, Grid, Dialog, Form, Input, Table, Field, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { createAddonRegistry, deleteAddonRegistry } from \"../../../../api/addons\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { checkName } from \"../../../../utils/common\";\nimport { handleError } from \"../../../../utils/errors\";\nimport { locale } from \"../../../../utils/locale\";\nconst { Row, Col } = Grid;\nclass RegistryManageDialog extends React.Component {\n constructor(props) {\n super(props);\n this.onClose = () => {\n this.props.onClose();\n };\n this.onOk = () => {\n const { syncRegistries } = this.props;\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { name, type, url, path, token, repo } = values;\n let params = {};\n if (type == \"OSS\") {\n params = {\n name,\n oss: {\n end_point: url,\n bucket: path\n }\n };\n }\n if (type == \"Github\") {\n params = {\n name,\n git: {\n url,\n path,\n token\n }\n };\n }\n if (type == \"Gitee\") {\n params = {\n name,\n gitee: {\n url,\n path,\n token\n }\n };\n }\n if (type == \"Gitlab\") {\n params = {\n name,\n gitlab: {\n url,\n path,\n token,\n repo\n }\n };\n }\n if (type == \"Helm\") {\n params = {\n name,\n helm: {\n url\n }\n };\n }\n createAddonRegistry(params).then(() => {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"add success\"));\n this.setState({ showAdd: false });\n syncRegistries();\n }).catch((err) => {\n handleError(err);\n });\n });\n };\n this.onDeleteRegistry = (name) => {\n const { syncRegistries } = this.props;\n deleteAddonRegistry({ name }).then((re) => {\n if (re) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"delete success\"));\n syncRegistries();\n }\n });\n };\n this.showAddRegistry = () => {\n this.setState({ showAdd: true });\n };\n this.addExperimental = () => {\n const { syncRegistries } = this.props;\n createAddonRegistry({\n name: \"experimental\",\n helm: {\n url: \"https://addons.kubevela.net/experimental\"\n }\n }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"add success\"));\n this.setState({ showAdd: false });\n syncRegistries();\n }\n }).catch((err) => {\n handleError(err);\n });\n };\n this.state = {\n showAdd: false\n };\n this.field = new Field(this, {\n onChange: (name, value) => {\n if (name == \"type\") {\n this.setState({ selectType: value });\n }\n }\n });\n }\n render() {\n const { visible, registries } = this.props;\n const { showAdd, selectType } = this.state;\n const init = this.field.init;\n const renderAction = (name) => {\n return /* @__PURE__ */ React.createElement(Permission, { request: { resource: `addonRegistry:${name}`, action: \"delete\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n \"a\",\n {\n onClick: () => {\n Dialog.confirm({\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Are you sure to delete?\"),\n onOk: () => {\n this.onDeleteRegistry(name);\n },\n locale: locale().Dialog\n });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n ));\n };\n const registryDataSource = registries.map((item) => {\n const reItem = {\n name: item.name,\n url: \"\",\n path: \"\",\n type: \"\",\n repo: \"\"\n };\n if (item.git) {\n reItem.url = item.git.url;\n reItem.path = item.git.path;\n reItem.type = \"Github\";\n }\n if (item.gitee) {\n reItem.url = item.git.url;\n reItem.path = item.git.path;\n reItem.type = \"Gitee\";\n }\n if (item.gitlab) {\n reItem.url = item.gitlab.url;\n reItem.path = item.gitlab.path;\n reItem.repo = item.gitlab.repo;\n reItem.type = \"Gitlab\";\n }\n if (item.oss) {\n reItem.url = item.oss.end_point;\n reItem.path = item.oss.bucket ? `${item.oss.bucket}/${item.oss.path}` : item.oss.path;\n reItem.type = \"OSS\";\n }\n if (item.helm) {\n reItem.url = item.helm.url;\n reItem.type = \"Helm\";\n }\n return reItem;\n });\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Dialog,\n {\n locale: locale().Dialog,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Registry Management\"),\n autoFocus: true,\n overflowScroll: true,\n visible,\n style: { width: \"1000px\" },\n onOk: this.onOk,\n onCancel: this.onClose,\n onClose: this.onClose,\n footerActions: [],\n v2: true\n },\n /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"tableButton\" }, /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"addonRegistry:*\", action: \"create\" }, project: \"\" }, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.showAddRegistry }, /* @__PURE__ */ React.createElement(Translation, null, \"New\")))))),\n /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: registryDataSource }, /* @__PURE__ */ React.createElement(Table.Column, { width: \"150px\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), dataIndex: \"name\" }), /* @__PURE__ */ React.createElement(Table.Column, { width: \"80px\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Type\"), dataIndex: \"type\" }), /* @__PURE__ */ React.createElement(Table.Column, { title: /* @__PURE__ */ React.createElement(Translation, null, \"URL\"), dataIndex: \"url\" }), registryDataSource.find((item) => item.type === \"Gitlab\") && /* @__PURE__ */ React.createElement(Table.Column, { width: \"100px\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Repository Name\"), dataIndex: \"repo\" }), /* @__PURE__ */ React.createElement(Table.Column, { width: \"160px\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Path(Bucket)\"), dataIndex: \"path\" }), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n cell: renderAction,\n width: \"100px\",\n align: \"left\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"name\"\n }\n )),\n /* @__PURE__ */ React.createElement(If, { condition: showAdd }, /* @__PURE__ */ React.createElement(Form, { field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: selectType === \"Gitlab\" ? 3 : 4, style: { padding: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: \"Please enter a valid name\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: selectType === \"Gitlab\" ? 3 : 4, style: { padding: \"8px\" } }, /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Type\"),\n help: /* @__PURE__ */ React.createElement(Translation, null, \"The addon registry type\")\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n ...init(\"type\", {\n rules: [\n {\n max: 512,\n message: \"The input string is too long\"\n }\n ]\n })\n },\n /* @__PURE__ */ React.createElement(Select.Option, { value: \"Helm\" }, \"Helm Repository\"),\n /* @__PURE__ */ React.createElement(Select.Option, { value: \"Github\" }, \"Github\"),\n /* @__PURE__ */ React.createElement(Select.Option, { value: \"Gitee\" }, \"Gitee\"),\n /* @__PURE__ */ React.createElement(Select.Option, { value: \"Gitlab\" }, \"Gitlab\"),\n /* @__PURE__ */ React.createElement(Select.Option, { value: \"OSS\" }, \"Aliyun OSS\")\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: 6, style: { padding: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"URL\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(\"url\", {\n rules: [\n {\n required: true,\n format: \"url\",\n message: \"Please enter a valid github repo url\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: selectType === \"Gitlab\" }, /* @__PURE__ */ React.createElement(Col, { span: 3, style: { padding: \"8px\" } }, /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Repository Name\"),\n required: true,\n help: \"Repository name in gitlab\"\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(\"repo\", {\n rules: [\n {\n required: true,\n message: \"Please enter a repository name\"\n }\n ]\n })\n }\n )\n ))), /* @__PURE__ */ React.createElement(If, { condition: selectType === \"Github\" || selectType === \"Gitee\" || selectType === \"Gitlab\" }, /* @__PURE__ */ React.createElement(Col, { span: 4, style: { padding: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Path\"), help: \"The addon path in the repo\" }, /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(\"path\", {\n rules: [\n {\n max: 512,\n message: \"The input string is too long\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: selectType === \"Gitlab\" ? 4 : 5, style: { padding: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Token\"), help: \"Github personal access token\" }, /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(\"token\", {\n rules: [\n {\n max: 128,\n message: \"The input string is too long\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(If, { condition: selectType === \"OSS\" }, /* @__PURE__ */ React.createElement(Col, { span: 4, style: { padding: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Bucket\"), help: \"The bucket path in the oss repo\" }, /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(\"path\", {\n rules: [\n {\n max: 512,\n message: \"The input string is too long\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Col, { span: 2, style: { padding: \"43px 8px 8px 8px\" } }, /* @__PURE__ */ React.createElement(Button, { size: \"small\", type: \"secondary\", onClick: this.onOk, style: { height: \"36px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Submit\"))))))\n ));\n }\n}\nexport default RegistryManageDialog;\n","\"use strict\";\nimport { Checkbox, Grid, Input, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { AiOutlineSearch } from \"react-icons/ai\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"./index.less\";\nclass SelectSearch extends React.Component {\n constructor(props) {\n super(props);\n this.handleClickSearch = () => {\n const { listFunction } = this.props;\n const { registryValue, inputValue } = this.state;\n listFunction({ registry: registryValue, query: inputValue });\n };\n this.generateTagList = () => {\n const { tagList } = this.props;\n const data = [];\n tagList?.map((tag) => {\n if (tag.num > 2) {\n data.push({ label: tag.tag, value: tag.tag });\n }\n });\n return data;\n };\n this.state = {\n registryValue: \"\",\n inputValue: \"\"\n };\n this.handleChangRegistry = this.handleChangRegistry.bind(this);\n this.handleChangName = this.handleChangName.bind(this);\n }\n handleChangRegistry(e) {\n this.setState(\n {\n registryValue: e\n },\n () => {\n this.handleClickSearch();\n }\n );\n }\n handleChangName(e) {\n this.setState({ inputValue: e });\n }\n render() {\n const { Row, Col } = Grid;\n const { Option } = Select;\n const { registries, extButtons } = this.props;\n const queryPlaceholder = i18n.t(\"Search by Name and Description etc\").toString();\n const { registryValue, inputValue } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"border-radius-8 addon-search\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, { wrap: true, gutter: 12 }, /* @__PURE__ */ React.createElement(Col, { l: 8, m: 8, s: 12, xxs: 24 }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n size: \"large\",\n onChange: this.handleChangRegistry,\n className: \"item\",\n value: registryValue\n },\n /* @__PURE__ */ React.createElement(Option, { value: \"\" }, /* @__PURE__ */ React.createElement(Translation, null, \"All\")),\n registries?.map((item) => {\n return /* @__PURE__ */ React.createElement(Option, { key: item.name, value: item.name }, item.name);\n })\n )), /* @__PURE__ */ React.createElement(Col, { l: 8, m: 8, s: 12, xxs: 24 }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(AiOutlineSearch, { onClick: this.handleClickSearch, style: { margin: 4 } }),\n placeholder: queryPlaceholder,\n size: \"large\",\n onChange: this.handleChangName,\n onPressEnter: this.handleClickSearch,\n value: inputValue,\n className: \"item\"\n }\n )), /* @__PURE__ */ React.createElement(Col, { l: 8, m: 8, s: 12, xxs: 24 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"ext-btn\" }, extButtons && extButtons.map((item) => {\n return item;\n })))), /* @__PURE__ */ React.createElement(\"div\", { className: \"tag-search\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"tag-name\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Tags\")), /* @__PURE__ */ React.createElement(\"div\", { className: \"tag-list\" }, /* @__PURE__ */ React.createElement(\n Checkbox.Group,\n {\n dataSource: this.generateTagList(),\n onChange: (tags) => {\n this.props.onTagChange(tags);\n }\n }\n )))));\n }\n}\nexport default SelectSearch;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Button, Loading, Message, Tab } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport { If } from \"../../components/If\";\nimport { ListTitle } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport CardContend from \"./components/card-conten/index\";\nimport AddonDetailDialog from \"./components/detail/index\";\nimport RegistryManageDialog from \"./components/registry-manage/index\";\nimport SelectSearch from \"./components/search/index\";\nlet Addons = class extends React.Component {\n constructor(props) {\n super(props);\n this.getAddonsList = async (params = {}) => {\n this.props.dispatch({\n type: \"addons/getAddonsList\",\n payload: params,\n callback: () => {\n const { match } = this.props;\n if (match && match.params && match.params.addonName) {\n this.openAddonDetail(match.params.addonName);\n }\n this.generateTagList();\n }\n });\n };\n this.generateTagList = () => {\n const { addonsList } = this.props;\n const tagMap = /* @__PURE__ */ new Map();\n addonsList.map((addon) => {\n addon.tags?.map((tag) => {\n const old = tagMap.get(tag);\n tagMap.set(tag, old ? old + 1 : 1);\n });\n });\n const list = [];\n tagMap.forEach((v, key) => {\n list.push({ tag: key, num: v });\n });\n list.sort((a, b) => {\n return b.num - a.num;\n });\n this.setState({ tagList: list });\n };\n this.getEnabledAddon = async () => {\n this.props.dispatch({\n type: \"addons/getEnabledAddons\",\n payload: {}\n });\n };\n this.getAddonRegistriesList = async () => {\n this.props.dispatch({\n type: \"addons/getAddonRegistriesList\",\n payload: {}\n });\n };\n this.openAddonDetail = (addonName) => {\n this.setState({ showAddonDetail: true, addonName });\n };\n this.closeAddonDetail = () => {\n this.setState({ showAddonDetail: false, addonName: \"\" });\n };\n this.onShowAddon = (addonName) => {\n const { addonsList = [] } = this.props;\n addonsList.map((item) => {\n if (item.name == addonName) {\n this.setState({ showAddonDetail: false, addonName: \"\" }, () => {\n this.openAddonDetail(addonName);\n });\n }\n });\n };\n this.state = {\n showAddonDetail: false,\n addonName: \"\",\n showRegistryManage: false,\n selectTags: []\n };\n }\n componentDidMount() {\n this.getAddonsList();\n this.getAddonRegistriesList();\n this.getEnabledAddon();\n }\n render() {\n const {\n addonsList = [],\n registryList = [],\n history,\n dispatch,\n loading,\n addonListMessage,\n enabledAddons,\n plugin\n } = this.props;\n const addonLoading = loading.models.addons;\n const { showAddonDetail, addonName, showRegistryManage, tagList, selectTags } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: \"DataNature Addons\",\n subTitle: \"Manages extended platform capabilities for DataNature.\"\n }\n ), /* @__PURE__ */ React.createElement(\n Tab,\n {\n defaultActiveKey: plugin ? \"plugins\" : \"addons\",\n onChange: (key) => {\n history.push(\"/\" + (key == \"plugins\" ? \"manage/\" : \"\") + key);\n }\n },\n /* @__PURE__ */ React.createElement(Tab.Item, { title: \"DataNature Addons\", key: \"addons\" }, /* @__PURE__ */ React.createElement(\n SelectSearch,\n {\n dispatch,\n tagList,\n registries: registryList,\n listFunction: this.getAddonsList,\n onTagChange: (tags) => {\n this.setState({ selectTags: tags });\n },\n extButtons: [\n /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"addonRegistry:*\", action: \"list\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n onClick: () => {\n this.setState({ showRegistryManage: true });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Addon Registries\")\n ))\n ]\n }\n ), /* @__PURE__ */ React.createElement(Loading, { visible: addonLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(If, { condition: addonListMessage }, /* @__PURE__ */ React.createElement(Message, { style: { marginBottom: \"16px\" }, type: \"warning\" }, addonListMessage)), /* @__PURE__ */ React.createElement(\n CardContend,\n {\n addonLists: addonsList,\n selectTags,\n enabledAddons,\n clickAddon: this.openAddonDetail\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showAddonDetail }, /* @__PURE__ */ React.createElement(\n AddonDetailDialog,\n {\n onClose: this.closeAddonDetail,\n showAddon: this.onShowAddon,\n dispatch,\n addonName\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showRegistryManage }, /* @__PURE__ */ React.createElement(\n RegistryManageDialog,\n {\n visible: showRegistryManage,\n onClose: () => {\n this.getAddonsList();\n this.setState({ showRegistryManage: false });\n },\n syncRegistries: this.getAddonRegistriesList,\n registries: registryList,\n dispatch\n }\n )))\n ));\n }\n};\nAddons = __decorateClass([\n connect((store) => {\n return { ...store.addons, loading: store.loading };\n })\n], Addons);\nexport default Addons;\n","\"use strict\";\nimport React from \"react\";\nconst Item = (props) => {\n return /* @__PURE__ */ React.createElement(\"div\", { style: { marginBottom: props.marginBottom || \"16px\", display: \"flex\" } }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n width: props.labelWidth || \"140px\",\n display: \"flex\",\n justifyItems: \"center\",\n alignItems: \"center\"\n }\n },\n /* @__PURE__ */ React.createElement(\"span\", { style: { fontSize: \"14px\", color: \"#a6a6a6\" } }, props.label, \":\")\n ), /* @__PURE__ */ React.createElement(\"div\", { style: { fontSize: \"14px\", display: \"flex\", flex: 1 } }, props.value));\n};\nexport default Item;\n","\"use strict\";\nimport React from \"react\";\nimport { Link } from \"dva/router\";\nimport \"./index.less\";\nconst NumItem = (props) => {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"num-item\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"number\" }, props.to ? /* @__PURE__ */ React.createElement(Link, { to: props.to }, props.number || 0) : /* @__PURE__ */ React.createElement(\"span\", null, props.number || 0)), /* @__PURE__ */ React.createElement(\"div\", { className: \"title\" }, props.title));\n};\nexport default NumItem;\n","\"use strict\";\nimport { Grid } from \"@alifd/next\";\nimport React from \"react\";\nconst { Col, Row } = Grid;\nexport const Title = (props) => {\n return /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12 }, /* @__PURE__ */ React.createElement(\"h3\", null, props.title)), /* @__PURE__ */ React.createElement(Col, { span: 12, className: \"flexright\" }, /* @__PURE__ */ React.createElement(\"div\", { style: { padding: \"12px 8px 0 0\" } }, props.actions.map((item) => {\n return item;\n }))));\n};\n","\"use strict\";\nimport { Grid, Field, Form, Message, Button, Input } from \"@alifd/next\";\nimport i18n from \"i18next\";\nimport React from \"react\";\nimport { updateApplication } from \"../../../../api/application\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { Translation } from \"../../../../components/Translation\";\nimport KV from \"../../../../extends/KV\";\nclass EditAppDialog extends React.Component {\n constructor(props) {\n super(props);\n this.onSubmit = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { description, alias, labels, annotations } = values;\n const { editItem } = this.props;\n if (editItem) {\n const params = {\n name: editItem.name,\n alias,\n description,\n labels,\n annotations\n };\n updateApplication(params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Application updated successfully\"));\n this.props.onOK();\n }\n });\n }\n });\n };\n this.extButtonList = () => {\n const { onClose } = this.props;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: onClose, className: \"margin-right-10\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")), /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onSubmit }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\")));\n };\n this.field = new Field(this);\n }\n render() {\n const init = this.field.init;\n const FormItem = Form.Item;\n const { Row, Col } = Grid;\n const { editItem, onClose } = this.props;\n return /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Edit Application\"),\n placement: \"right\",\n width: 800,\n onClose,\n extButtons: this.extButtonList()\n },\n editItem && /* @__PURE__ */ React.createElement(Form, { field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Give your app a more recognizable name\").toString(),\n ...init(\"alias\", {\n initValue: editItem?.alias,\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n ...init(\"description\", {\n initValue: editItem?.description,\n rules: [\n {\n maxLength: 128,\n message: \"Enter a description less than 128 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Labels\") }, /* @__PURE__ */ React.createElement(\n KV,\n {\n ...init(\"labels\", {\n initValue: editItem?.labels\n }),\n disabled: false\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Annotations\") }, /* @__PURE__ */ React.createElement(\n KV,\n {\n ...init(\"annotations\", {\n initValue: editItem?.annotations\n }),\n disabled: false\n }\n )))))\n );\n }\n}\nexport default EditAppDialog;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid, Field, Form, Message, Button, Input, Select, Card, Loading } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport _ from \"lodash\";\nimport React from \"react\";\nimport {\n createApplicationComponent,\n updateComponentProperties,\n getApplicationComponent\n} from \"../../../../api/application\";\nimport { detailComponentDefinition } from \"../../../../api/definitions\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { Translation } from \"../../../../components/Translation\";\nimport UISchema from \"../../../../components/UISchema\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { transComponentDefinitions } from \"../../../../utils/utils\";\nimport \"./index.less\";\nimport Permission from \"../../../../components/Permission\";\nimport { If } from \"../../../../components/If\";\nimport { BiCodeBlock, BiLaptop } from \"react-icons/bi\";\nlet ComponentDialog = class extends React.Component {\n constructor(props) {\n super(props);\n this.onClose = () => {\n this.props.onComponentClose();\n };\n this.onSubmitCreate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { appName = \"\", temporaryTraitList = [] } = this.props;\n const { name, alias = \"\", description = \"\", componentType = \"\", properties, dependsOn = [] } = values;\n const params = {\n name,\n alias,\n description,\n componentType,\n properties: JSON.stringify(properties)\n };\n const traitLists = _.cloneDeep(temporaryTraitList);\n traitLists.forEach((item) => {\n if (item.properties) {\n item.properties = JSON.stringify(item.properties);\n }\n });\n params.name = `${appName}-${name}`;\n params.componentType = componentType;\n params.traits = traitLists;\n params.dependsOn = dependsOn;\n this.setState({ isCreateComponentLoading: true });\n createApplicationComponent(params, { appName }).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n content: i18n.t(\"Component created successfully\").toString()\n });\n this.props.onComponentOK();\n }\n this.setState({ isCreateComponentLoading: false });\n });\n });\n };\n this.onDetailsComponentDefinition = (value, callback) => {\n detailComponentDefinition({ name: value }).then((re) => {\n if (re) {\n this.setState({ definitionDetail: re, loading: false });\n if (callback) {\n callback();\n }\n }\n }).catch();\n };\n this.extButtonList = () => {\n const { onComponentClose, isEditComponent, project, componentName, appName } = this.props;\n const { isCreateComponentLoading, isUpdateComponentLoading } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"footer-actions\" }, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: onComponentClose, className: \"margin-right-10\" }, i18n.t(\"Cancel\").toString()), /* @__PURE__ */ React.createElement(If, { condition: !isEditComponent }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${project}/application:${appName}/component:*`,\n action: \"create\"\n },\n project\n },\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onSubmitCreate, loading: isCreateComponentLoading }, i18n.t(\"Create\").toString())\n )), /* @__PURE__ */ React.createElement(If, { condition: isEditComponent }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${project}/application:${appName}/component:${componentName || \"*\"}`,\n action: \"update\"\n },\n project\n },\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onSubmitEditComponent, loading: isUpdateComponentLoading }, i18n.t(\"Update\").toString())\n )));\n };\n this.showComponentTitle = () => {\n const { isEditComponent } = this.props;\n const { editComponent } = this.state;\n if (isEditComponent && editComponent) {\n const { name = \"\", alias = \"\" } = editComponent;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", null, alias ? `${alias}(${name})` : name));\n } else {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", null, i18n.t(\"New Component\"), \" \"));\n }\n };\n this.getInitName = () => {\n const { isEditComponent, appName } = this.props;\n if (isEditComponent && appName) {\n return \"\";\n } else {\n return `${appName}-`;\n }\n };\n this.getTraitList = () => {\n const { editComponent } = this.state;\n const { isEditComponent, temporaryTraitList } = this.props;\n if (isEditComponent && editComponent) {\n return [...editComponent.traits || []];\n } else {\n return [...temporaryTraitList];\n }\n };\n this.onSubmitEditComponent = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { appName = \"\", componentName = \"\" } = this.props;\n const { name, alias = \"\", description = \"\", componentType = \"\", properties, dependsOn = [] } = values;\n const params = {\n name,\n alias,\n description,\n componentType,\n properties: JSON.stringify(properties),\n dependsOn\n };\n this.setState({ isUpdateComponentLoading: true });\n updateComponentProperties(params, { appName, componentName }).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n content: i18n.t(\"Component updated successfully\").toString()\n });\n this.props.onComponentOK();\n }\n this.setState({ isUpdateComponentLoading: false });\n });\n });\n };\n this.removeProperties = () => {\n this.field.remove(\"properties\");\n this.setState({ definitionDetail: void 0 });\n };\n this.getDependsOptions = () => {\n const { components, componentName } = this.props;\n const filterComponents = (components || []).filter((component) => {\n if (componentName && (component.name === componentName || component.dependsOn && component.dependsOn.includes(componentName))) {\n return false;\n } else {\n return true;\n }\n });\n const componentOptions = filterComponents?.map((component) => {\n return {\n label: component.alias ? `${component.alias}(${component.name})` : component.name,\n value: component.name\n };\n });\n return componentOptions || [];\n };\n this.field = new Field(this);\n this.state = {\n isCreateComponentLoading: false,\n isUpdateComponentLoading: false,\n loading: true,\n propertiesMode: \"native\"\n };\n this.uiSchemaRef = React.createRef();\n }\n componentDidMount() {\n const { isEditComponent, dispatch, appName, project } = this.props;\n if (isEditComponent) {\n this.onGetEditComponentInfo(() => {\n if (this.state.editComponent) {\n const { name, alias, type, description, properties, dependsOn } = this.state.editComponent;\n this.field.setValues({\n name,\n alias,\n componentType: type,\n description,\n properties,\n dependsOn\n });\n if (type) {\n this.onDetailsComponentDefinition(type);\n }\n }\n });\n } else {\n const getInitComponentType = this.field.getValue(\"componentType\") || \"\";\n this.onDetailsComponentDefinition(getInitComponentType);\n }\n dispatch({\n type: \"uischema/setAppName\",\n payload: appName\n });\n dispatch({\n type: \"uischema/setProject\",\n payload: project\n });\n }\n onGetEditComponentInfo(callback) {\n const { appName, componentName } = this.props;\n this.setState({ loading: true });\n if (appName && componentName) {\n getApplicationComponent(appName, componentName).then((res) => {\n if (res) {\n this.setState(\n {\n editComponent: res,\n loading: false\n },\n callback\n );\n }\n });\n }\n }\n render() {\n const init = this.field.init;\n const FormItem = Form.Item;\n const { Row, Col } = Grid;\n const { isEditComponent, componentDefinitions, onComponentClose } = this.props;\n const { definitionDetail, loading, propertiesMode } = this.state;\n const validator = (rule, value, callback) => {\n this.uiSchemaRef.current?.validate(callback);\n };\n return /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: this.showComponentTitle(),\n placement: \"right\",\n width: 800,\n onClose: onComponentClose,\n extButtons: this.extButtonList()\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.field, className: \"basic-config-wrapper\" }, /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Card, { contentHeight: \"auto\", title: \"Basic Configuration\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { paddingRight: \"8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, { className: \"font-size-14 font-weight-bold color333\" }, \"Name\"),\n labelTextAlign: \"left\",\n required: true\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n maxLength: 32,\n disabled: isEditComponent ? true : false,\n addonTextBefore: this.getInitName(),\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: \"Please enter a valid application name\"\n }\n ]\n })\n }\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { paddingLeft: \"8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"description\", {\n rules: [\n {\n maxLength: 256,\n message: \"Enter a description that contains less than 256 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { paddingRight: \"8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, { className: \"font-size-14 font-weight-bold color333\" }, \"Type\"),\n required: true,\n help: /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Get more component type?\"), /* @__PURE__ */ React.createElement(Link, { to: \"/addons\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Go to enable addon\")))\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n showSearch: true,\n disabled: isEditComponent ? true : false,\n className: \"select\",\n ...init(`componentType`, {\n initValue: isEditComponent ? \"\" : \"webservice\",\n rules: [\n {\n required: true,\n message: i18n.t(\"Please select\")\n }\n ]\n }),\n dataSource: transComponentDefinitions(componentDefinitions),\n onChange: (item) => {\n this.removeProperties();\n this.field.setValue(\"componentType\", item);\n this.onDetailsComponentDefinition(item);\n }\n }\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { paddingRight: \"8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, { className: \"font-size-14 font-weight-bold color333\" }, \"Depends On\")\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(`dependsOn`, {\n rules: [\n {\n required: false,\n message: i18n.t(\"Please select\")\n }\n ]\n }),\n locale: locale().Select,\n mode: \"multiple\",\n dataSource: this.getDependsOptions()\n }\n )\n ))))), /* @__PURE__ */ React.createElement(\n Card,\n {\n contentHeight: \"auto\",\n className: \"withActions\",\n title: \"Deployment Properties\",\n subTitle: definitionDetail && definitionDetail.uiSchema ? [\n /* @__PURE__ */ React.createElement(\n Button,\n {\n style: { alignItems: \"center\", display: \"flex\" },\n onClick: () => {\n if (propertiesMode === \"native\") {\n this.setState({ propertiesMode: \"code\" });\n } else {\n this.setState({ propertiesMode: \"native\" });\n }\n }\n },\n propertiesMode === \"native\" && /* @__PURE__ */ React.createElement(BiCodeBlock, { size: 14, title: i18n.t(\"Switch to the coding mode\") }),\n propertiesMode === \"code\" && /* @__PURE__ */ React.createElement(BiLaptop, { size: 14, title: i18n.t(\"Switch to the native mode\") })\n )\n ] : []\n },\n /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(If, { condition: definitionDetail }, /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...init(`properties`, {\n rules: [\n {\n validator,\n message: i18n.t(\"Please check the component properties\")\n }\n ]\n }),\n enableCodeEdit: propertiesMode === \"code\",\n uiSchema: definitionDetail && definitionDetail.uiSchema,\n definition: {\n name: definitionDetail?.name || \"\",\n type: \"component\",\n description: definitionDetail?.description || \"\"\n },\n ref: this.uiSchemaRef,\n mode: isEditComponent ? \"edit\" : \"new\"\n }\n )))\n ))\n );\n }\n};\nComponentDialog = __decorateClass([\n connect()\n], ComponentDialog);\nexport default ComponentDialog;\n","\"use strict\";\nimport { Card, Grid, Dialog } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport helm from \"../../../../assets/helm.svg\";\nimport kubernetes from \"../../../../assets/kubernetes.svg\";\nimport terraform from \"../../../../assets/terraform.svg\";\nimport Empty from \"../../../../components/Empty\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport \"./index.less\";\nimport { showAlias } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { IoMdAdd } from \"react-icons/io\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nclass ComponentsList extends Component {\n constructor() {\n super(...arguments);\n this.handleDelete = (name) => {\n Dialog.alert({\n content: i18n.t(\"Are you sure want to delete this Component?\").toString(),\n onOk: () => {\n this.props.onDeleteComponent(name || \"\");\n },\n onClose: () => {\n },\n locale: locale().Dialog\n });\n };\n this.getComponentTypeIcon = (com) => {\n if (com.workloadType?.type == \"configurations.terraform.core.oam.dev\") {\n return /* @__PURE__ */ React.createElement(\"img\", { className: \"component-icon\", src: terraform });\n }\n if (com.componentType.indexOf(\"helm\") > -1) {\n return /* @__PURE__ */ React.createElement(\"img\", { className: \"component-icon\", src: helm });\n }\n return /* @__PURE__ */ React.createElement(\"img\", { className: \"component-icon\", src: kubernetes });\n };\n }\n render() {\n const { Row, Col } = Grid;\n const { components, editComponent, application } = this.props;\n const projectName = application && application.project?.name;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"list-warper\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"box\" }, (components || []).map((item) => /* @__PURE__ */ React.createElement(Row, { key: item.name, wrap: true, className: \"box-item\" }, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"components-list-nav\" }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"components-list-title\",\n onClick: () => {\n editComponent(item);\n }\n },\n this.getComponentTypeIcon(item),\n showAlias(item)\n ), /* @__PURE__ */ React.createElement(If, { condition: item.main != true }, /* @__PURE__ */ React.createElement(\"div\", { className: \"components-list-operation\" }, /* @__PURE__ */ React.createElement(If, { condition: !application?.readOnly }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${application?.name}/component:${item.name}`,\n action: \"delete\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n size: 14,\n className: \"cursor-pointer danger-icon\",\n onClick: () => {\n this.handleDelete(item.name || \"\");\n }\n }\n )\n ))))), /* @__PURE__ */ React.createElement(If, { condition: item.description }, /* @__PURE__ */ React.createElement(\"div\", { className: \"components-list-content\" }, item.description)), /* @__PURE__ */ React.createElement(Row, { wrap: true }, item.traits?.map((trait) => {\n const label = showAlias(trait.type, trait.alias);\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: trait.type,\n onClick: () => this.props.changeTraitStats(true, trait, item.name),\n className: \"trait-icon\",\n title: trait.description || label\n },\n /* @__PURE__ */ React.createElement(\"div\", null, label),\n /* @__PURE__ */ React.createElement(\"div\", { className: \"trait-actions\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${application?.name}/component:${item.name}/trait:${trait.type}`,\n action: \"delete\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n onClick: (event) => {\n event.stopPropagation();\n this.props.onDeleteTrait(item.name, trait.type);\n },\n size: 14,\n className: \"danger-icon\"\n }\n )\n ))\n );\n }), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${application?.name}/component:${item.name}/trait:*`,\n action: \"create\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n title: i18n.t(\"Add a trait\"),\n className: \"trait-icon\",\n onClick: () => this.props.onAddTrait(item.name)\n },\n /* @__PURE__ */ React.createElement(IoMdAdd, null)\n )\n )))))), /* @__PURE__ */ React.createElement(If, { condition: !components || components.length == 0 }, /* @__PURE__ */ React.createElement(\n Empty,\n {\n style: { minHeight: \"400px\" },\n message: /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"There are no components\"))\n }\n ))));\n }\n}\nexport default ComponentsList;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Card, Form, Grid, Message, Button, Select, Input, Field, Loading } from \"@alifd/next\";\nimport React from \"react\";\nimport {\n AiOutlineFileDone,\n AiOutlineGroup,\n AiOutlineHdd,\n AiOutlineMergeCells,\n AiOutlineOneToOne,\n AiOutlineReconciliation\n} from \"react-icons/ai\";\nimport { createPolicy, updatePolicy } from \"../../../../api/application\";\nimport { detailPolicyDefinition, getPolicyDefinitions } from \"../../../../api/definitions\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport \"./index.less\";\nimport classNames from \"classnames\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport UISchema from \"../../../../components/UISchema\";\nimport { connect } from \"dva\";\nimport { BiCodeBlock, BiLaptop } from \"react-icons/bi\";\nconst { Row, Col } = Grid;\nlet PolicyDialog = class extends React.Component {\n constructor(props) {\n super(props);\n this.handleTypeChange = (value) => {\n this.removeProperties(() => {\n this.loadPolicyDefinitionDetail(value);\n this.field.setValue(\"name\", value);\n this.field.setValue(\"alias\", value);\n });\n };\n this.removeProperties = (callback) => {\n this.field.remove(\"properties\");\n this.setState({ policyDefinitionDetail: void 0 }, callback);\n };\n this.setUISchemaContext = () => {\n const { dispatch, appName, project } = this.props;\n if (dispatch) {\n dispatch({\n type: \"uischema/setAppName\",\n payload: appName\n });\n dispatch({\n type: \"uischema/setProject\",\n payload: project\n });\n }\n };\n this.extButtonList = () => {\n const { appName, project, policy } = this.props;\n const { createPolicyLoading, selectedPolicyItem } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${project}/application:${appName}/policy:*`,\n action: \"create\"\n },\n project\n },\n /* @__PURE__ */ React.createElement(If, { condition: !policy }, /* @__PURE__ */ React.createElement(\n Button,\n {\n disabled: !selectedPolicyItem,\n type: \"primary\",\n onClick: this.onSubmitCreate,\n loading: createPolicyLoading\n },\n i18n.t(\"Create\").toString()\n )),\n /* @__PURE__ */ React.createElement(If, { condition: policy }, /* @__PURE__ */ React.createElement(\n Button,\n {\n disabled: !selectedPolicyItem,\n type: \"primary\",\n onClick: this.onSubmitUpdate,\n loading: createPolicyLoading\n },\n i18n.t(\"Update\").toString()\n ))\n ));\n };\n this.onSubmitCreate = () => {\n const { selectedPolicyItem } = this.state;\n if (!selectedPolicyItem) {\n return;\n }\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n this.setState({ createPolicyLoading: true });\n const { appName } = this.props;\n if (!appName) {\n return;\n }\n const { properties, name, alias, description, envName, type, workflow, steps } = values;\n let policyType = selectedPolicyItem.type;\n if (type) {\n policyType = type;\n }\n if (!policyType) {\n Message.warning(i18n.t(\"Please select a policy type first.\"));\n return;\n }\n let env = envName;\n if (!env && workflow) {\n env = this.getEnvNameFromWorkflow(workflow);\n }\n const params = {\n name,\n type: policyType,\n envName: env,\n description,\n alias,\n properties: JSON.stringify(properties)\n };\n if (workflow && steps && steps.length > 0) {\n params.workflowPolicyBind = [\n {\n name: workflow,\n steps\n }\n ];\n }\n createPolicy(appName, params).then((res) => {\n if (res) {\n Message.success(i18n.t(\"Policy added successfully\"));\n this.props.onOK();\n }\n }).finally(() => {\n this.setState({ createPolicyLoading: false });\n });\n });\n };\n this.onSubmitUpdate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n this.setState({ createPolicyLoading: true });\n const { appName } = this.props;\n if (!appName) {\n return;\n }\n const { properties, name, alias, description, envName, type, workflow, steps } = values;\n let env = envName;\n if (!env && workflow) {\n env = this.getEnvNameFromWorkflow(workflow);\n }\n const params = {\n envName: env,\n description,\n alias,\n type,\n properties: JSON.stringify(properties)\n };\n if (workflow && steps && steps.length > 0) {\n params.workflowPolicyBind = [\n {\n name: workflow,\n steps\n }\n ];\n }\n updatePolicy(appName, name, params).then((res) => {\n if (res) {\n Message.success(i18n.t(\"Policy updated successfully\"));\n this.props.onOK();\n }\n }).finally(() => {\n this.setState({ createPolicyLoading: false });\n });\n });\n };\n this.onSelectPolicy = (item) => {\n this.field.reset();\n this.field.setValues({\n name: item.name,\n description: item.title,\n properties: item.properties,\n type: item.type,\n alias: item.label\n });\n if (item.name == \"custom\") {\n this.loadPolicyDefinitions();\n }\n if (!item.properties) {\n this.loadPolicyDefinitionDetail(item.type);\n }\n this.setState({ selectedPolicyItem: item });\n };\n this.buildEnvironmentOptions = () => {\n const { envbinding } = this.props;\n return envbinding?.map((env) => {\n return {\n label: env.alias,\n value: env.name\n };\n });\n };\n this.buildWorkflowStepsOptions = () => {\n const workflowName = this.field.getValue(\"workflow\");\n const { workflows } = this.props;\n const stepOptions = [];\n workflows.map((wf) => {\n if (wf.name == workflowName) {\n wf.steps?.map((step) => {\n if (step.type == \"deploy\") {\n stepOptions.push({\n label: `${step.name}(${step.alias || \"-\"})`,\n value: step.name\n });\n }\n });\n }\n });\n return stepOptions;\n };\n this.buildWorkflowOptions = () => {\n const { workflows } = this.props;\n return workflows.map((wf) => {\n return {\n label: `${wf.name}(${wf.alias || \"-\"})`,\n value: wf.name\n };\n });\n };\n this.buildPolicyTypeOptions = () => {\n const { definitions } = this.state;\n const options = [];\n definitions?.map((definition) => {\n if (definition.name != \"override\" && definition.name != \"topology\") {\n options.push({\n label: definition.name,\n value: definition.name\n });\n }\n });\n return options;\n };\n this.getEnvNameFromWorkflow = (workflowName) => {\n const { workflows } = this.props;\n let envName = \"\";\n workflows.map((wf) => {\n if (wf.name == workflowName) {\n envName = wf.envName;\n }\n });\n return envName;\n };\n this.loadPolicyDefinitions = () => {\n getPolicyDefinitions().then((res) => {\n this.setState({ definitions: res.definitions });\n });\n };\n this.loadPolicyDefinitionDetail = (policyType) => {\n this.setState({ definitionDetailLoading: true });\n detailPolicyDefinition({ name: policyType }).then((res) => {\n if (res) {\n this.setState({ policyDefinitionDetail: res });\n }\n }).finally(() => {\n this.setState({ definitionDetailLoading: false });\n });\n };\n this.state = {\n items: [\n {\n label: i18n.t(\"Override\"),\n type: \"override\",\n name: \"override-custom\",\n icon: /* @__PURE__ */ React.createElement(AiOutlineMergeCells, { size: 35 }),\n title: i18n.t(\"Set differentiated configurations of the application in different environments.\")\n },\n {\n label: i18n.t(\"Topology\"),\n type: \"topology\",\n name: \"topology\",\n icon: /* @__PURE__ */ React.createElement(AiOutlineGroup, { size: 35 }),\n title: i18n.t(\"This policy allows custom the topology by the target\")\n },\n {\n label: i18n.t(\"Deliver Once\"),\n type: \"apply-once\",\n name: \"apply-once-no-rule\",\n icon: /* @__PURE__ */ React.createElement(AiOutlineOneToOne, { size: 35 }),\n title: i18n.t(\n \"This policy allows direct changes to the resources distributed to the target cluster, the controller won't keep reconciling.\"\n ),\n properties: {\n enable: true\n }\n },\n {\n label: i18n.t(\"PVC Retain\"),\n type: \"garbage-collect\",\n name: \"garbage-collect-retain-pvc\",\n icon: /* @__PURE__ */ React.createElement(AiOutlineHdd, { size: 35 }),\n title: i18n.t(\"This policy allows retaining the PVC resource after recycling the application.\"),\n properties: {\n rules: [\n {\n selector: {\n resourceTypes: [\"PersistentVolumeClaim\"]\n },\n strategy: \"never\"\n }\n ]\n }\n },\n {\n label: i18n.t(\"Replicas Scalable\"),\n type: \"apply-once\",\n name: \"apply-once-ignore-replicas\",\n icon: /* @__PURE__ */ React.createElement(AiOutlineReconciliation, { size: 35 }),\n title: i18n.t(\"This policy allows replicas of workloads to be changed, such as working with HPA.\"),\n properties: {\n rules: [\n {\n enable: true,\n rules: [\n {\n selector: {\n resourceTypes: [\"Deployment\", \"StatefulSet\", \"Job\"]\n },\n strategy: {\n path: [\"spec.replicas\"]\n }\n }\n ]\n }\n ]\n }\n },\n {\n label: i18n.t(\"Custom\"),\n name: \"custom\",\n type: \"\",\n icon: /* @__PURE__ */ React.createElement(AiOutlineFileDone, { size: 35 })\n }\n ],\n createPolicyLoading: false,\n definitionDetailLoading: false,\n propertiesMode: \"native\"\n };\n this.field = new Field(this, {\n onChange: (name, value) => {\n if (name === \"type\") {\n this.handleTypeChange(value);\n }\n }\n });\n this.uiSchemaRef = React.createRef();\n }\n componentDidMount() {\n this.setUISchemaContext();\n const { policy } = this.props;\n if (policy) {\n let selected = false;\n this.state.items.map((item) => {\n if (item.type == policy.type && item.properties == void 0) {\n this.onSelectPolicy(item);\n selected = true;\n }\n });\n if (!selected) {\n this.onSelectPolicy({\n label: i18n.t(\"Custom\"),\n name: \"custom\",\n type: \"\",\n icon: /* @__PURE__ */ React.createElement(AiOutlineFileDone, { size: 35 })\n });\n }\n this.field.setValues({ ...policy });\n if (Array.isArray(policy.workflowPolicyBind) && policy.workflowPolicyBind.length > 0) {\n this.field.setValues({\n workflow: policy.workflowPolicyBind[0].name,\n steps: policy.workflowPolicyBind[0].steps\n });\n }\n this.loadPolicyDefinitionDetail(policy.type);\n }\n }\n render() {\n const { onClose, policy } = this.props;\n const { items, selectedPolicyItem, definitionDetailLoading, policyDefinitionDetail, propertiesMode } = this.state;\n const validator = (rule, value, callback) => {\n this.uiSchemaRef.current?.validate(callback);\n };\n const init = this.field.init;\n const showType = selectedPolicyItem && selectedPolicyItem?.name == \"custom\" || policy != void 0;\n const span = showType ? 8 : 12;\n return /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: policy ? i18n.t(\"Update Policy\") : i18n.t(\"New Policy\"),\n placement: \"right\",\n width: 800,\n onClose,\n extButtons: this.extButtonList()\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.field }, /* @__PURE__ */ React.createElement(Card, { contentHeight: \"auto\", title: i18n.t(\"Select a policy type\").toString() }, !policy && /* @__PURE__ */ React.createElement(Row, { wrap: true }, items.map((item) => {\n return /* @__PURE__ */ React.createElement(Col, { l: 4, title: item.title, key: item.name }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\"policy-item\", {\n active: selectedPolicyItem && selectedPolicyItem.name == item.name\n }),\n onClick: () => this.onSelectPolicy(item)\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"policy-icon\" }, item.icon),\n /* @__PURE__ */ React.createElement(\"div\", { className: \"policy-name\" }, item.label)\n ));\n })), selectedPolicyItem && /* @__PURE__ */ React.createElement(Row, { wrap: true }, showType && /* @__PURE__ */ React.createElement(Col, { span, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Policy Type\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(\"type\", {\n rules: [\n {\n required: true,\n message: i18n.t(\"Please must select the policy type.\").toString()\n }\n ]\n }),\n hasClear: true,\n disabled: policy != void 0,\n locale: locale().Select,\n dataSource: this.buildPolicyTypeOptions()\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Name\").toString(), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(`name`, {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: \"Please input a valid policy name\"\n }\n ]\n }),\n disabled: policy != void 0,\n locale: locale().Input\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Alias\").toString() }, /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(`alias`, {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Input a string of 2 to 64 characters.\"\n }\n ]\n }),\n locale: locale().Input\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n placeholder: i18n.t(\"Please input the description\").toString(),\n ...init(\"description\", {\n rules: [\n {\n maxLength: 256,\n message: i18n.t(\"Enter a description that contains less than 256 characters.\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(If, { condition: selectedPolicyItem?.properties }, /* @__PURE__ */ React.createElement(Message, { style: { marginTop: \"8px\" }, type: \"success\" }, /* @__PURE__ */ React.createElement(Translation, null, \"This policy already have the default properties\")))), /* @__PURE__ */ React.createElement(Card, { contentHeight: \"auto\", style: { marginTop: \"8px\" }, title: i18n.t(\"Select an environment\").toString() }, !selectedPolicyItem || selectedPolicyItem.type != \"override\" && /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n help: i18n.t(\"If select an environment, this policy is only enabled in the selected environment.\").toString()\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(\"envName\", {\n rules: []\n }),\n hasClear: true,\n locale: locale().Select,\n dataSource: this.buildEnvironmentOptions()\n }\n )\n )), selectedPolicyItem && selectedPolicyItem.type == \"override\" && /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n help: i18n.t(\"Select the workflow to which the policy should be applied.\").toString(),\n required: true,\n label: i18n.t(\"Workflow\").toString()\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(\"workflow\", {\n rules: [\n {\n required: true\n }\n ]\n }),\n hasClear: true,\n locale: locale().Select,\n dataSource: this.buildWorkflowOptions()\n }\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n help: i18n.t(\"Select the steps to which the policy should be applied.\").toString(),\n label: i18n.t(\"Steps\").toString(),\n required: true\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(\"steps\", {\n rules: [\n {\n required: true\n }\n ]\n }),\n hasClear: true,\n locale: locale().Select,\n mode: \"multiple\",\n dataSource: this.buildWorkflowStepsOptions()\n }\n )\n ))))), selectedPolicyItem && !selectedPolicyItem?.properties && /* @__PURE__ */ React.createElement(Loading, { visible: definitionDetailLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\n Card,\n {\n contentHeight: \"auto\",\n style: { marginTop: \"8px\" },\n title: i18n.t(\"Policy Properties\").toString(),\n className: \"withActions\",\n subTitle: /* @__PURE__ */ React.createElement(\n Button,\n {\n style: { alignItems: \"center\", display: \"flex\" },\n onClick: () => {\n if (propertiesMode === \"native\") {\n this.setState({ propertiesMode: \"code\" });\n } else {\n this.setState({ propertiesMode: \"native\" });\n }\n }\n },\n propertiesMode === \"native\" && /* @__PURE__ */ React.createElement(BiCodeBlock, { size: 14, title: i18n.t(\"Switch to the coding mode\") }),\n propertiesMode === \"code\" && /* @__PURE__ */ React.createElement(BiLaptop, { size: 14, title: i18n.t(\"Switch to the native mode\") })\n )\n },\n /* @__PURE__ */ React.createElement(Form.Item, { required: true }, /* @__PURE__ */ React.createElement(\n UISchema,\n {\n key: policyDefinitionDetail?.name,\n ...init(`properties`, {\n rules: [\n {\n validator,\n message: i18n.t(\"Please check the properties of this policy\")\n }\n ]\n }),\n enableCodeEdit: propertiesMode === \"code\",\n uiSchema: policyDefinitionDetail && policyDefinitionDetail.uiSchema,\n definition: {\n type: \"policy\",\n name: policyDefinitionDetail?.name || \"\",\n description: policyDefinitionDetail?.description || \"\"\n },\n ref: this.uiSchemaRef,\n mode: \"new\"\n }\n )),\n /* @__PURE__ */ React.createElement(If, { condition: !policyDefinitionDetail }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Please select policy type first.\")))\n )))\n );\n }\n};\nPolicyDialog = __decorateClass([\n connect()\n], PolicyDialog);\nexport default PolicyDialog;\n","\"use strict\";\nimport { Balloon, Card, Dialog, Grid } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport { If } from \"../../../../components/If\";\nimport Item from \"../../../../components/Item\";\nimport Permission from \"../../../../components/Permission\";\nimport { beautifyTime, momentDate } from \"../../../../utils/common\";\nimport \"./index.less\";\nimport Empty from \"../../../../components/Empty\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { locale } from \"../../../../utils/locale\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nclass PolicyList extends Component {\n constructor(props) {\n super(props);\n this.handlePolicyDelete = (name) => {\n Dialog.alert({\n content: \"Are you sure want to delete this policy?\",\n onOk: () => {\n this.props.onDeletePolicy(name);\n },\n onClose: () => {\n },\n locale: locale().Dialog\n });\n };\n this.state = {};\n }\n render() {\n const { Row, Col } = Grid;\n const { policies, envbinding, applicationDetail } = this.props;\n const envNameAlias = {};\n envNameAlias[\"\"] = \"-\";\n envbinding?.map((item) => {\n envNameAlias[item.name] = item.alias;\n });\n const projectName = applicationDetail && applicationDetail.project?.name;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"list-warper\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"box\" }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, (policies || []).map((item) => /* @__PURE__ */ React.createElement(Col, { span: 24, key: item.type + item.name, className: \"box-item\" }, /* @__PURE__ */ React.createElement(Card, { free: true, style: { padding: \"16px\" }, hasBorder: true, contentHeight: \"auto\", locale: locale().Card }, /* @__PURE__ */ React.createElement(\"div\", { className: \"policy-list-nav\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"policy-list-title\" }, /* @__PURE__ */ React.createElement(\"a\", { onClick: () => this.props.onShowPolicy(item.name) }, /* @__PURE__ */ React.createElement(Balloon, { trigger: /* @__PURE__ */ React.createElement(\"span\", null, item.alias ? item.alias : item.name) }, item.description))), /* @__PURE__ */ React.createElement(\"div\", { className: \"trigger-list-operation\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/policy:${item.name}`,\n action: \"delete\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n size: 14,\n className: \"margin-right-0 cursor-pointer danger-icon\",\n onClick: () => {\n this.handlePolicyDelete(item.name);\n }\n }\n )\n ))), /* @__PURE__ */ React.createElement(\"div\", { className: \"policy-list-content\" }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n marginBottom: \"8px\",\n labelWidth: 160,\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Type\"),\n value: item.type\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n marginBottom: \"8px\",\n labelWidth: 160,\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Environment\"),\n value: envNameAlias[item.envName || \"\"]\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n marginBottom: \"8px\",\n labelWidth: 160,\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n value: /* @__PURE__ */ React.createElement(\"span\", { title: momentDate(item.createTime) }, beautifyTime(item.createTime))\n }\n )))))))), /* @__PURE__ */ React.createElement(If, { condition: !policies || policies.length == 0 }, /* @__PURE__ */ React.createElement(\n Empty,\n {\n style: { minHeight: \"400px\" },\n message: /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"There are no policies\"))\n }\n ))));\n }\n}\nexport default PolicyList;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid, Field, Form, Select, Message, Button, Input, Icon, Card, Loading } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport React from \"react\";\nimport { BiCodeBlock, BiLaptop } from \"react-icons/bi\";\nimport { updateTrait, createTrait, getApplicationComponent } from \"../../../../api/application\";\nimport { detailTraitDefinition, getTraitDefinitions } from \"../../../../api/definitions\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport UISchema from \"../../../../components/UISchema\";\nimport i18n from \"../../../../i18n\";\nlet TraitDialog = class extends React.Component {\n constructor(props) {\n super(props);\n this.onGetTraitDefinitions = async () => {\n const { component } = this.state;\n if (component?.definition) {\n getTraitDefinitions({ appliedWorkload: component?.definition.workload.type }).then(\n (res) => {\n if (res) {\n const podDisruptive = {};\n res.definitions?.map((def) => {\n if (def.trait?.podDisruptive) {\n podDisruptive[def.name] = true;\n }\n });\n this.setState({\n traitDefinitions: res && res.definitions,\n podDisruptive\n });\n }\n }\n );\n }\n };\n this.onClose = () => {\n this.props.onClose();\n };\n this.onSubmit = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { appName = \"\", componentName = \"\", temporaryTraitList = [] } = this.props;\n const { alias = \"\", type = \"\", description = \"\", properties } = values;\n const query = { appName, componentName, traitType: type };\n const params = {\n alias,\n type,\n description,\n properties: JSON.stringify(properties)\n };\n const { isEditTrait, isEditComponent } = this.props;\n this.setState({ isLoading: true });\n if (isEditComponent) {\n if (isEditTrait) {\n updateTrait(params, query).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n title: i18n.t(\"Trait properties update success.\").toString(),\n content: i18n.t(\"You need to re-execute the workflow for it to take effect.\").toString()\n });\n this.props.onOK();\n }\n this.setState({ isLoading: false });\n });\n } else {\n createTrait(params, query).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n title: i18n.t(\"Trait create success.\").toString(),\n content: i18n.t(\"You need to re-execute the workflow for it to take effect.\").toString()\n });\n this.props.onOK();\n }\n this.setState({ isLoading: false });\n });\n }\n } else {\n const findSameType = temporaryTraitList.find((item) => item.type === type);\n if (!isEditTrait && !findSameType) {\n params.properties = JSON.parse(params.properties);\n this.props.createTemporaryTrait(params);\n } else if (!isEditTrait && findSameType) {\n return Message.warning(i18n.t(\"A trait with the same trait type exists, please modify it\"));\n } else if (isEditTrait) {\n params.properties = JSON.parse(params.properties);\n this.props.upDateTemporaryTrait(params);\n }\n }\n });\n };\n this.onDetailsTraitDefinition = (value, callback) => {\n this.setState({ definitionLoading: true });\n detailTraitDefinition({ name: value }).then((re) => {\n if (re) {\n this.setState({ definitionDetail: re, definitionLoading: false });\n if (callback) {\n callback();\n }\n }\n }).catch(() => this.setState({ definitionLoading: false }));\n };\n this.handleTypeChange = (value) => {\n this.removeProperties();\n this.field.setValues({ type: value });\n this.onDetailsTraitDefinition(value);\n this.setAlias(value);\n };\n this.setAlias = (traitType) => {\n let alias = traitType;\n switch (traitType) {\n case \"scaler\":\n alias = i18n.t(\"Manual Scaler\");\n break;\n case \"http-route\":\n alias = i18n.t(\"HTTP Route\");\n break;\n case \"https-route\":\n alias = i18n.t(\"HTTPs Route\");\n break;\n case \"gateway\":\n alias = i18n.t(\"HTTP Route\");\n break;\n default:\n }\n this.field.setValue(\"alias\", alias);\n };\n this.extButtonList = () => {\n const { onClose, isEditTrait } = this.props;\n const { isLoading } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: onClose, className: \"margin-right-10\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")), /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onSubmit, loading: isLoading }, /* @__PURE__ */ React.createElement(Translation, null, isEditTrait ? i18n.t(\"Update\") : i18n.t(\"Create\"))));\n };\n this.showTraitTitle = () => {\n const { isEditTrait, onClose } = this.props;\n if (isEditTrait) {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Icon, { type: \"arrow-left\", onClick: onClose, className: \"cursor-pointer\" }), /* @__PURE__ */ React.createElement(\"span\", null, \" \", i18n.t(\"Edit Trait\"), \" \"));\n } else {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Icon, { type: \"arrow-left\", onClick: onClose, className: \"cursor-pointer\" }), /* @__PURE__ */ React.createElement(\"span\", null, \" \", i18n.t(\"Add Trait\"), \" \"));\n }\n };\n this.removeProperties = () => {\n this.field.remove(\"properties\");\n this.setState({ definitionDetail: void 0 });\n };\n this.state = {\n definitionLoading: false,\n isLoading: false,\n traitDefinitions: [],\n propertiesMode: \"native\"\n };\n this.field = new Field(this);\n this.uiSchemaRef = React.createRef();\n }\n componentDidMount() {\n this.onGetComponentInfo(() => {\n this.onGetTraitDefinitions();\n const { isEditTrait, traitItem, appName, project, dispatch } = this.props;\n if (isEditTrait && traitItem) {\n const { alias, type, description, properties } = traitItem;\n this.field.setValues({\n alias,\n type,\n description,\n properties\n });\n if (type) {\n this.onDetailsTraitDefinition(type);\n }\n }\n dispatch({\n type: \"uischema/setAppName\",\n payload: appName\n });\n dispatch({\n type: \"uischema/setProject\",\n payload: project\n });\n });\n }\n onGetComponentInfo(callback) {\n const { appName, componentName } = this.props;\n if (appName && componentName) {\n getApplicationComponent(appName, componentName).then((res) => {\n if (res) {\n this.setState(\n {\n component: res\n },\n callback\n );\n }\n });\n }\n }\n transTraitDefinitions() {\n const { traitDefinitions } = this.state;\n return (traitDefinitions || []).map((item) => ({\n label: item.name,\n value: item.name\n }));\n }\n render() {\n const init = this.field.init;\n const FormItem = Form.Item;\n const { Row, Col } = Grid;\n const { onClose, isEditTrait } = this.props;\n const { definitionDetail, definitionLoading, podDisruptive, propertiesMode } = this.state;\n const validator = (rule, value, callback) => {\n this.uiSchemaRef.current?.validate(callback);\n };\n const traitType = this.field.getValue(\"type\");\n return /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: this.showTraitTitle(),\n placement: \"right\",\n width: 800,\n onClose,\n extButtons: this.extButtonList()\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.field }, /* @__PURE__ */ React.createElement(If, { condition: podDisruptive && traitType && podDisruptive[traitType] }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Message,\n {\n type: \"warning\",\n title: i18n.t(\"This trait properties change will cause pod restart after the application deploy\").toString()\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Type\"),\n required: true,\n help: /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Get more trait type?\"), /* @__PURE__ */ React.createElement(Link, { to: \"/addons\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Go to enable addon\")))\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n className: \"select\",\n disabled: isEditTrait ? true : false,\n placeholder: i18n.t(\"Please select\").toString(),\n ...init(`type`, {\n rules: [\n {\n required: true,\n message: i18n.t(\"Please select\")\n }\n ]\n }),\n dataSource: this.transTraitDefinitions(),\n onChange: this.handleTypeChange\n }\n )\n ))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"description\", {\n rules: [\n {\n maxLength: 256,\n message: i18n.t(\"Enter a description that contains less than 256 characters.\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Card,\n {\n contentHeight: \"auto\",\n style: { marginTop: \"8px\" },\n title: i18n.t(\"Properties\").toString(),\n className: \"withActions\",\n subTitle: /* @__PURE__ */ React.createElement(\n Button,\n {\n style: { alignItems: \"center\", display: \"flex\" },\n onClick: () => {\n if (propertiesMode === \"native\") {\n this.setState({ propertiesMode: \"code\" });\n } else {\n this.setState({ propertiesMode: \"native\" });\n }\n }\n },\n propertiesMode === \"native\" && /* @__PURE__ */ React.createElement(BiCodeBlock, { size: 14, title: i18n.t(\"Switch to the coding mode\") }),\n propertiesMode === \"code\" && /* @__PURE__ */ React.createElement(BiLaptop, { size: 14, title: i18n.t(\"Switch to the native mode\") })\n )\n },\n /* @__PURE__ */ React.createElement(Loading, { visible: definitionLoading }, /* @__PURE__ */ React.createElement(If, { condition: definitionDetail }, /* @__PURE__ */ React.createElement(FormItem, { required: true }, /* @__PURE__ */ React.createElement(\n UISchema,\n {\n key: traitType,\n ...init(`properties`, {\n rules: [\n {\n validator,\n message: i18n.t(\"Please check trait deploy properties\")\n }\n ]\n }),\n enableCodeEdit: propertiesMode === \"code\",\n uiSchema: definitionDetail && definitionDetail.uiSchema,\n definition: {\n type: \"trait\",\n name: definitionDetail?.name || \"\",\n description: definitionDetail?.description || \"\"\n },\n ref: this.uiSchemaRef,\n mode: this.props.isEditTrait ? \"edit\" : \"new\"\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: !definitionDetail }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Please select trait type first.\"))))\n ))))\n );\n }\n};\nTraitDialog = __decorateClass([\n connect()\n], TraitDialog);\nexport default TraitDialog;\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { payloadTypeURL } from \"./productionLink\";\nimport { get } from \"./request\";\nconst baseURLOject = getDomain();\nconst base = baseURLOject.MOCK || baseURLOject.APIBASE;\nexport function getPayloadType() {\n const url = base + payloadTypeURL;\n return get(url, {}).then((res) => res);\n}\n","\"use strict\";\nimport { Grid, Field, Form, Select, Message, Button, Input } from \"@alifd/next\";\nimport React from \"react\";\nimport { createTrigger, updateTrigger } from \"../../../../api/application\";\nimport { detailComponentDefinition } from \"../../../../api/definitions\";\nimport { getPayloadType } from \"../../../../api/payload\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nclass TriggerDialog extends React.Component {\n constructor(props) {\n super(props);\n this.onDetailComponentDefinition = (value) => {\n this.setState({ loading: true });\n detailComponentDefinition({ name: value }).then((res) => {\n if (res) {\n const findImageObj = (res.uiSchema || []).find((item) => item.jsonKey === \"image\");\n const hasImage = findImageObj ? true : false;\n this.setState({\n hasImage,\n loading: false\n });\n }\n }).catch(() => this.setState({ loading: false }));\n };\n this.onClose = () => {\n this.props.onClose();\n };\n this.onSubmit = () => {\n const { trigger } = this.props;\n const editMode = trigger != void 0;\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { appName = \"\" } = this.props;\n const {\n name = \"\",\n alias = \"\",\n description = \"\",\n type = \"\",\n payloadType = \"\",\n workflowName = \"\",\n componentName = \"\",\n registry = \"\"\n } = values;\n const query = { appName };\n this.setState({ submitLoading: true });\n if (editMode) {\n const params = {\n alias,\n description,\n payloadType,\n workflowName,\n componentName,\n registry\n };\n updateTrigger(params, { appName, token: trigger.token }).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n content: \"Trigger updated successfully.\"\n });\n this.props.onOK(res);\n }\n }).finally(() => {\n this.setState({ submitLoading: false });\n });\n } else {\n const params = {\n name,\n alias,\n description,\n type,\n payloadType,\n workflowName,\n componentName,\n registry\n };\n createTrigger(params, query).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n content: \"Trigger created successfully.\"\n });\n this.props.onOK(res);\n }\n }).finally(() => {\n this.setState({ submitLoading: false });\n });\n }\n });\n };\n this.extButtonList = () => {\n const { onClose, trigger } = this.props;\n const { submitLoading } = this.state;\n const editMode = trigger != void 0;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: onClose, className: \"margin-right-10\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")), /* @__PURE__ */ React.createElement(Button, { loading: submitLoading, type: \"primary\", onClick: this.onSubmit }, /* @__PURE__ */ React.createElement(Translation, null, editMode ? \"Update\" : \"Create\")));\n };\n this.changeType = (value) => {\n this.field.setValue(\"type\", value);\n if (value === \"webhook\") {\n this.onGetPayloadType();\n }\n };\n this.changeComponentName = (value) => {\n this.field.setValue(\"componentName\", value);\n let componentType = \"\";\n const { components } = this.props;\n components.map((c) => {\n if (c.name === value) {\n componentType = c.componentType;\n this.setState({ component: c });\n }\n });\n this.onDetailComponentDefinition(componentType);\n };\n this.state = {\n loading: false,\n payloadTypes: [\"custom\", \"dockerHub\", \"ACR\", \"harbor\", \"artifactory\"],\n hasImage: false\n };\n this.field = new Field(this);\n }\n componentDidMount() {\n const { trigger } = this.props;\n if (trigger) {\n this.field.setValues(trigger);\n }\n const type = this.field.getValue(\"type\");\n if (type === \"webhook\") {\n this.onGetPayloadType();\n }\n const { components } = this.props;\n if (components && components.length > 0) {\n this.changeComponentName(components[0].name);\n }\n }\n onGetPayloadType() {\n getPayloadType().then((res) => {\n if (res) {\n this.setState({\n payloadTypes: res\n });\n }\n });\n }\n isShowMessage() {\n const { hasImage, component } = this.state;\n const type = this.field.getValue(\"type\");\n const payloadType = this.field.getValue(\"payloadType\");\n const components = [\"webservice\", \"worker\", \"task\"];\n const isNotInclude = component?.componentType && !components.includes(component?.componentType);\n if (isNotInclude && payloadType !== \"custom\" && !hasImage && type === \"webhook\") {\n return true;\n } else {\n return false;\n }\n }\n render() {\n const init = this.field.init;\n const FormItem = Form.Item;\n const { Row, Col } = Grid;\n const { workflows, onClose, components, trigger } = this.props;\n const editMode = trigger != void 0;\n const { payloadTypes } = this.state;\n const workflowOption = workflows?.map((workflow) => {\n return {\n label: workflow.alias ? `${workflow.alias}(${workflow.envName})` : workflow.name,\n value: workflow.name\n };\n });\n const payloadTypeOption = payloadTypes?.map((type) => {\n return {\n label: type,\n value: type\n };\n });\n const componentsOption = components?.map((component) => {\n return {\n label: component.alias ? `${component.alias}(${component.name})` : component.name,\n value: component.name\n };\n });\n return /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: editMode ? i18n.t(\"Edit Trigger\") : i18n.t(\"Add Trigger\"),\n placement: \"right\",\n width: 800,\n onClose,\n extButtons: this.extButtonList()\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n disabled: editMode,\n placeholder: i18n.t(\"Please enter the name\").toString(),\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: \"Please enter a valid name contains only alphabetical words\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"description\", {\n rules: [\n {\n maxLength: 256,\n message: \"Enter a description that contains less than 256 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Type\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"type\",\n locale: locale().Select,\n disabled: editMode,\n dataSource: [{ label: \"On Webhook Event\", value: \"webhook\" }],\n ...init(\"type\", {\n initValue: \"webhook\",\n rules: [\n {\n required: true,\n message: i18n.t(\"Please select a type\")\n }\n ]\n }),\n onChange: this.changeType\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(If, { condition: this.field.getValue(\"type\") === \"webhook\" }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"PayloadType\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"payloadType\",\n locale: locale().Select,\n dataSource: payloadTypeOption,\n ...init(\"payloadType\", {\n initValue: \"custom\",\n rules: [\n {\n required: true,\n message: i18n.t(\"Please select a payloadType\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(If, { condition: this.field.getValue(\"type\") === \"webhook\" && this.field.getValue(\"payloadType\") === \"acr\" }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Registry\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"registry\",\n locale: locale().Input,\n ...init(\"registry\", {\n initValue: \"\",\n rules: [\n {\n pattern: \"^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$\",\n message: \"This is a invalid domain\"\n }\n ]\n }),\n placeholder: i18n.t(\"For the ACR Enterprise Edition, you should set the domain of the registry.\")\n }\n ))))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Execution workflow\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"workflowName\",\n locale: locale().Select,\n dataSource: workflowOption,\n ...init(\"workflowName\", {\n rules: [\n {\n required: true,\n message: i18n.t(\"Please select a workflow\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Component\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"componentName\",\n locale: locale().Select,\n dataSource: componentsOption,\n ...init(\"componentName\", {\n initValue: components.length > 0 && components[0].name,\n rules: [\n {\n required: true,\n message: i18n.t(\"Please select a component\")\n }\n ]\n }),\n onChange: this.changeComponentName\n }\n )))), /* @__PURE__ */ React.createElement(Message, { type: \"warning\", animation: true, visible: this.isShowMessage(), title: \"Warning\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Your component type does not support the image field, and the image update cannot be performed\")))\n );\n }\n}\nexport default TriggerDialog;\n","\"use strict\";\nimport { Card, Dialog, Grid, Message, Tab } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport { getApplicationComponent } from \"../../../../api/application\";\nimport Empty from \"../../../../components/Empty\";\nimport { If } from \"../../../../components/If\";\nimport Item from \"../../../../components/Item\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { momentDate, showAlias } from \"../../../../utils/common\";\nimport \"./index.less\";\nimport { locale } from \"../../../../utils/locale\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nclass TriggerList extends Component {\n constructor(props) {\n super(props);\n this.showWebhook = (trigger) => {\n const { components } = this.props;\n this.loadComponentDetail(trigger.componentName || (components.length > 0 ? components[0].name : \"\"));\n this.setState({ showTrigger: trigger });\n this.setState({ customTriggerType: \"execute\" });\n };\n this.loadComponentDetail = (componentName) => {\n if (!componentName) {\n return;\n }\n const { appName } = this.props;\n getApplicationComponent(appName, componentName).then((res) => {\n if (res) {\n this.setState({\n component: res\n });\n }\n });\n };\n this.closeWebhook = () => {\n this.setState({ showTrigger: void 0 });\n };\n this.handleTriggerDelete = (token) => {\n Dialog.alert({\n content: \"Are you sure want to delete this trigger?\",\n onOk: () => {\n this.props.onDeleteTrigger(token || \"\");\n },\n onClose: () => {\n },\n locale: locale().Dialog\n });\n };\n this.handleCustomTriggerTab = (token) => {\n this.setState({ customTriggerType: token });\n };\n this.state = {};\n }\n componentWillReceiveProps(nextProps) {\n const { createTriggerInfo } = nextProps;\n if (createTriggerInfo && createTriggerInfo !== this.props.createTriggerInfo) {\n this.showWebhook(createTriggerInfo);\n }\n }\n render() {\n const { Row, Col } = Grid;\n const { triggers, applicationDetail } = this.props;\n const { showTrigger, component, customTriggerType } = this.state;\n const domain = `${window.location.protocol}//${window.location.host}`;\n const webHookURL = `${domain}/api/v1/webhook/${showTrigger?.token}`;\n let command = `curl -X POST -H 'content-type: application/json' --url ${webHookURL}`;\n if (showTrigger?.payloadType == \"custom\" && component) {\n const customTriggerBody = {\n execute: {\n action: \"execute\",\n upgrade: {\n [component.name]: {\n image: component.properties && component.properties.image\n }\n },\n codeInfo: {\n commit: \"\",\n branch: \"\",\n user: \"\"\n }\n },\n approve: {\n action: \"approve\",\n step: \"suspend\"\n },\n terminate: {\n action: \"terminate\",\n step: \"suspend\"\n },\n rollback: {\n action: \"rollback\",\n step: \"suspend\"\n }\n };\n let body = customTriggerType ? customTriggerBody[customTriggerType] : \" \";\n command = `curl -X POST -H 'content-type: application/json' --url ${webHookURL} -d '${JSON.stringify(body)}'`;\n }\n const copy = /* @__PURE__ */ React.createElement(\"span\", { style: { lineHeight: \"16px\", marginLeft: \"8px\" } }, /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"1982\",\n width: \"16\",\n height: \"16\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M720 192h-544A80.096 80.096 0 0 0 96 272v608C96 924.128 131.904 960 176 960h544c44.128 0 80-35.872 80-80v-608C800 227.904 764.128 192 720 192z m16 688c0 8.8-7.2 16-16 16h-544a16 16 0 0 1-16-16v-608a16 16 0 0 1 16-16h544a16 16 0 0 1 16 16v608z\",\n \"p-id\": \"1983\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M848 64h-544a32 32 0 0 0 0 64h544a16 16 0 0 1 16 16v608a32 32 0 1 0 64 0v-608C928 99.904 892.128 64 848 64z\",\n \"p-id\": \"1984\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M608 360H288a32 32 0 0 0 0 64h320a32 32 0 1 0 0-64zM608 520H288a32 32 0 1 0 0 64h320a32 32 0 1 0 0-64zM480 678.656H288a32 32 0 1 0 0 64h192a32 32 0 1 0 0-64z\",\n \"p-id\": \"1985\"\n }\n )\n ));\n const customTriggerTypes = [\"execute\", \"approve\", \"terminate\", \"rollback\"];\n const projectName = applicationDetail && applicationDetail.project?.name;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"list-warper\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"box\" }, (triggers || []).map((item) => /* @__PURE__ */ React.createElement(Row, { wrap: true, key: item.type, className: \"box-item\" }, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Card, { free: true, style: { padding: \"16px\" }, locale: locale().Card }, /* @__PURE__ */ React.createElement(\"div\", { className: \"trigger-list-nav\" }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n onClick: () => {\n this.props.onEditTrigger(item);\n },\n className: \"trigger-list-title\"\n },\n showAlias(item)\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"trigger-list-operation\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/trigger:${item.name}`,\n action: \"delete\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n size: 14,\n className: \"margin-right-0 cursor-pointer danger-icon\",\n onClick: () => {\n this.handleTriggerDelete(item.token || \"\");\n }\n }\n )\n ))), /* @__PURE__ */ React.createElement(\"div\", { className: \"trigger-list-content\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n marginBottom: \"8px\",\n labelWidth: 160,\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Type\"),\n value: item.type == \"webhook\" ? /* @__PURE__ */ React.createElement(Translation, null, \"On Webhook Event\") : item.type\n }\n ))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n marginBottom: \"8px\",\n labelWidth: 160,\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Execute Workflow\"),\n value: item.workflowName\n }\n ))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n marginBottom: \"8px\",\n labelWidth: 160,\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n value: momentDate(item.createTime)\n }\n ))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"trigger-list-operation\" }, /* @__PURE__ */ React.createElement(\n \"a\",\n {\n onClick: () => {\n this.showWebhook(item);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Manual Trigger\")\n ))))))))), /* @__PURE__ */ React.createElement(If, { condition: !triggers || triggers.length == 0 }, /* @__PURE__ */ React.createElement(\n Empty,\n {\n style: { minHeight: \"400px\" },\n message: /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"There are no triggers\"))\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: showTrigger }, /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n locale: locale().Dialog,\n visible: true,\n onClose: this.closeWebhook,\n footer: /* @__PURE__ */ React.createElement(\"div\", null),\n width: 500,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Trigger Webhook\")\n },\n /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n labelWidth: 160,\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Webhook URL\"),\n value: /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"a\", { href: webHookURL }, webHookURL), /* @__PURE__ */ React.createElement(\n CopyToClipboard,\n {\n onCopy: () => {\n Message.success(\"Copy successfully\");\n },\n text: webHookURL\n },\n copy\n ))\n }\n ))),\n /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Item, { labelWidth: 160, label: /* @__PURE__ */ React.createElement(Translation, null, \"Method\"), value: \"Post\" }))),\n /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n labelWidth: 160,\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Header\"),\n value: \"content-type: application/json\"\n }\n ))),\n /* @__PURE__ */ React.createElement(\"h4\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Curl Command\"), /* @__PURE__ */ React.createElement(\n CopyToClipboard,\n {\n onCopy: () => {\n Message.success(\"Copy successfully\");\n },\n text: command\n },\n copy\n )),\n /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Tab, { size: \"small\", shape: \"wrapped\" }, customTriggerTypes.map((item) => /* @__PURE__ */ React.createElement(Tab.Item, { className: \"justify-tabs-tab\", onClick: () => {\n this.handleCustomTriggerTab(item);\n }, key: item, title: item }, /* @__PURE__ */ React.createElement(Col, { span: 24, className: \"curlCode\" }, /* @__PURE__ */ React.createElement(\"code\", null, command), /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Please set the properties that need to be changed, such as `image`, `step`.\"), /* @__PURE__ */ React.createElement(Message, { type: \"notice\" }, \" If action is not provided then it will by default execute the workflow.\")))))))\n )));\n }\n}\nexport default TriggerList;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid, Button, Card, Message, Dialog, Balloon, Tag, Loading } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport \"./index.less\";\nimport { connect } from \"dva\";\nimport {\n deleteTrait,\n getApplicationTriggers,\n deleteTrigger,\n deleteComponent,\n deleteApplication,\n deletePolicy,\n getPolicyDetail,\n getApplicationStatistics\n} from \"../../api/application\";\nimport { getComponentDefinitions } from \"../../api/definitions\";\nimport { If } from \"../../components/If\";\nimport Item from \"../../components/Item\";\nimport NumItem from \"../../components/NumItem\";\nimport Permission from \"../../components/Permission\";\nimport { Title } from \"../../components/Title\";\nimport { Translation } from \"../../components/Translation\";\nimport { routerRedux, Link } from \"dva/router\";\nimport i18n from \"../../i18n\";\nimport { beautifyTime, momentDate, showAlias } from \"../../utils/common\";\nimport { handleError } from \"../../utils/errors\";\nimport { locale } from \"../../utils/locale\";\nimport EditAppDialog from \"../ApplicationList/components/EditAppDialog\";\nimport ComponentDialog from \"./components/ComponentDialog\";\nimport Components from \"./components/Components\";\nimport PolicyDialog from \"./components/PolicyDialog\";\nimport PolicyList from \"./components/PolicyList\";\nimport TraitDialog from \"./components/TraitDialog\";\nimport TriggerDialog from \"./components/TriggerDialog\";\nimport TriggerList from \"./components/TriggerList\";\nconst { Row, Col } = Grid;\nlet ApplicationConfig = class extends Component {\n constructor(props) {\n super(props);\n this.loadAppStatistics = async () => {\n const { appName } = this.state;\n if (appName) {\n getApplicationStatistics({ appName }).then((re) => {\n if (re) {\n this.setState({ statistics: re });\n }\n });\n }\n };\n this.onDeleteTrait = async (componentName, traitType) => {\n const { appName } = this.state;\n const params = {\n appName,\n componentName,\n traitType\n };\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n deleteTrait(params).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n content: i18n.t(\"Trait deleted successfully\").toString()\n });\n this.onLoadApplicationComponents();\n }\n });\n },\n locale: locale().Dialog\n });\n };\n this.onClose = () => {\n this.setState({ visibleTrait: false, isEditTrait: false });\n };\n this.onOk = () => {\n this.onLoadApplicationComponents();\n this.setState({\n isEditTrait: false,\n visibleTrait: false\n });\n };\n this.onAddTrait = (componentName, isEditComponent) => {\n this.setState({\n visibleTrait: true,\n traitItem: { type: \"\" },\n isEditTrait: false,\n componentName: componentName || \"\",\n isEditComponent: isEditComponent || false\n });\n };\n this.changeTraitStats = (isEditTrait, traitItem, componentName) => {\n this.setState({\n visibleTrait: true,\n isEditTrait,\n isEditComponent: true,\n traitItem,\n componentName\n });\n };\n this.onAddTrigger = () => {\n this.setState({\n visibleTrigger: true\n });\n };\n this.onTriggerClose = () => {\n this.setState({\n visibleTrigger: false,\n trigger: void 0\n });\n this.onLoadApplicationComponents();\n };\n this.onTriggerOk = (res) => {\n this.onGetApplicationTrigger();\n this.setState({\n visibleTrigger: false,\n trigger: void 0,\n createTriggerInfo: res\n });\n };\n this.onDeleteTrigger = async (token) => {\n const { appName } = this.state;\n const params = {\n appName,\n token\n };\n deleteTrigger(params).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n content: \"Trigger deleted successfully.\"\n });\n this.onGetApplicationTrigger();\n }\n });\n };\n this.editAppPlan = () => {\n const { applicationDetail } = this.props;\n const { alias = \"\", description = \"\", name = \"\", createTime = \"\", icon = \"\", labels, annotations } = applicationDetail || {};\n this.setState({\n editItem: {\n name,\n alias,\n description,\n createTime,\n icon,\n labels,\n annotations\n },\n showEditApplication: true\n });\n };\n this.onOkEditAppDialog = () => {\n this.setState({\n showEditApplication: false\n });\n this.onGetApplicationDetails();\n };\n this.onCloseEditAppDialog = () => {\n this.setState({\n showEditApplication: false\n });\n };\n this.editComponent = (component) => {\n this.setState({\n isEditComponent: true,\n visibleComponent: true,\n componentName: component.name\n });\n };\n this.onAddComponent = () => {\n this.setState({\n visibleComponent: true,\n isEditComponent: false,\n componentName: \"\"\n });\n };\n this.onAddPolicy = () => {\n this.setState({ visiblePolicy: true });\n };\n this.onDeleteComponent = async (componentName) => {\n const { appName } = this.state;\n const params = {\n appName,\n componentName\n };\n deleteComponent(params).then((res) => {\n if (res) {\n Message.success({\n duration: 4e3,\n title: i18n.t(\"Success\").toString(),\n content: i18n.t(\"Delete component success.\").toString()\n });\n this.onLoadApplicationComponents();\n }\n });\n };\n this.createTemporaryTrait = (trait) => {\n this.setState({\n temporaryTraitList: [...this.state.temporaryTraitList, trait],\n visibleTrait: false\n });\n };\n this.upDateTemporaryTrait = (trait) => {\n const { temporaryTraitList } = this.state;\n const updateTraitList = [];\n (temporaryTraitList || []).map((item) => {\n let newTraitItem = { type: \"\" };\n if (item.type === trait.type) {\n newTraitItem = trait;\n } else {\n newTraitItem = item;\n }\n updateTraitList.push(newTraitItem);\n });\n this.setState({\n temporaryTraitList: updateTraitList,\n visibleTrait: false\n });\n };\n this.onComponentClose = () => {\n this.setState({\n visibleComponent: false,\n temporaryTraitList: []\n });\n this.onLoadApplicationComponents();\n };\n this.onComponentOK = () => {\n this.setState(\n {\n visibleComponent: false,\n temporaryTraitList: []\n },\n () => {\n this.onLoadApplicationComponents();\n }\n );\n };\n this.onGetComponentDefinitions = async () => {\n getComponentDefinitions().then((res) => {\n if (res) {\n this.setState({\n componentDefinitions: res && res.definitions\n });\n }\n });\n };\n this.onGetApplicationDetails = async () => {\n const { appName } = this.state;\n this.props.dispatch({\n type: \"application/getApplicationDetail\",\n payload: { appName }\n });\n };\n this.onLoadApplicationComponents = async () => {\n const { appName } = this.state;\n this.props.dispatch({\n type: \"application/getApplicationComponents\",\n payload: { appName }\n });\n };\n this.onDeleteApplication = () => {\n const { appName } = this.state;\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n deleteApplication({ name: appName }).then((re) => {\n if (re) {\n Message.success(\"Application deleted successfully\");\n this.props.dispatch(routerRedux.push(\"/applications\"));\n }\n });\n },\n locale: locale().Dialog\n });\n };\n this.onDeletePolicy = (policyName) => {\n const { appName } = this.state;\n deletePolicy({ appName, policyName }).then((re) => {\n if (re) {\n Message.success(\"Application policy deleted successfully\");\n this.loadApplicationPolicies();\n }\n }).catch((err) => {\n if (err.BusinessCode === 10026) {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"This policy is being used by workflow, do you want to force delete it?\"),\n onOk: () => {\n deletePolicy({ appName, policyName, force: true }).then((res) => {\n if (res) {\n Message.success(\"Application policy deleted successfully\");\n this.loadApplicationPolicies();\n }\n });\n },\n locale: locale().Dialog\n });\n } else {\n handleError(err);\n }\n });\n };\n this.onEditPolicy = (policyName) => {\n const { appName } = this.state;\n getPolicyDetail({ appName, policyName }).then((res) => {\n if (res) {\n this.setState({ policyDetail: res, visiblePolicy: true });\n }\n });\n };\n this.loadApplicationPolicies = async () => {\n const {\n params: { appName }\n } = this.props.match;\n this.props.dispatch({\n type: \"application/getApplicationPolicies\",\n payload: { appName }\n });\n };\n const { params } = props.match;\n this.state = {\n appName: params.appName,\n componentName: \"\",\n isEditTrait: false,\n visibleTrait: false,\n traitItem: { type: \"\" },\n triggers: [],\n visibleTrigger: false,\n createTriggerInfo: { name: \"\", workflowName: \"\", type: \"webhook\", token: \"\" },\n showEditApplication: false,\n visibleComponent: false,\n temporaryTraitList: [],\n isEditComponent: false,\n componentDefinitions: [],\n visiblePolicy: false\n };\n }\n componentDidMount() {\n this.onGetApplicationTrigger();\n this.onGetComponentDefinitions();\n this.loadAppStatistics();\n }\n onGetApplicationTrigger() {\n const { appName } = this.state;\n const params = {\n appName\n };\n getApplicationTriggers(params).then((res) => {\n if (res) {\n this.setState({\n triggers: res.triggers || []\n });\n }\n });\n }\n render() {\n const { applicationDetail, workflows, components, policies, envbinding } = this.props;\n const {\n visibleTrait,\n isEditTrait,\n appName = \"\",\n componentName = \"\",\n traitItem,\n triggers,\n trigger,\n visibleTrigger,\n createTriggerInfo,\n showEditApplication,\n editItem,\n visibleComponent,\n temporaryTraitList,\n isEditComponent,\n componentDefinitions,\n visiblePolicy,\n policyDetail,\n statistics\n } = this.state;\n const projectName = applicationDetail && applicationDetail.project?.name || \"\";\n if (!applicationDetail) {\n return /* @__PURE__ */ React.createElement(Loading, { visible: true });\n }\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, { className: \"flex-row\", wrap: true }, /* @__PURE__ */ React.createElement(Col, { xl: 16, l: 24, s: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\", subTitle: applicationDetail?.description }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { xxs: 12 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"app-name\" }, showAlias(applicationDetail?.name, applicationDetail?.alias))), /* @__PURE__ */ React.createElement(Col, { xxs: 12, className: \"flexright\", style: { marginBottom: \"16px\" } }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application/:${appName}`,\n action: \"delete\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n className: \"danger-btn\",\n style: { marginRight: \"16px\" },\n onClick: this.onDeleteApplication,\n type: \"secondary\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n )\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application/:${appName}`,\n action: \"update\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(Button, { onClick: this.editAppPlan, type: \"secondary\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Edit\"))\n ))), /* @__PURE__ */ React.createElement(Col, { l: 8, xs: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"),\n value: /* @__PURE__ */ React.createElement(Link, { to: `/projects/${applicationDetail?.project?.name}` }, applicationDetail?.project?.alias ? applicationDetail?.project?.alias : applicationDetail?.project?.name)\n }\n )), /* @__PURE__ */ React.createElement(Col, { l: 8, xs: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n value: /* @__PURE__ */ React.createElement(Balloon, { trigger: /* @__PURE__ */ React.createElement(\"span\", null, beautifyTime(applicationDetail.createTime)) }, momentDate(applicationDetail.createTime) || \"-\")\n }\n )), /* @__PURE__ */ React.createElement(Col, { l: 8, xs: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Update Time\"),\n value: /* @__PURE__ */ React.createElement(Balloon, { trigger: /* @__PURE__ */ React.createElement(\"span\", null, beautifyTime(applicationDetail.updateTime)) }, momentDate(applicationDetail.updateTime) || \"-\")\n }\n )), /* @__PURE__ */ React.createElement(Col, { xxs: 24 }, applicationDetail?.labels && Object.keys(applicationDetail?.labels).map((key) => {\n if (applicationDetail?.labels) {\n return /* @__PURE__ */ React.createElement(\n Tag,\n {\n key,\n style: { margin: \"4px\" },\n color: \"blue\"\n },\n `${key}=${applicationDetail?.labels[key]}`\n );\n }\n return;\n }))))), /* @__PURE__ */ React.createElement(Col, { xl: 8, l: 24, s: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\", style: { height: \"100%\" } }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 6, style: { padding: \"22px 0\" } }, /* @__PURE__ */ React.createElement(NumItem, { number: statistics?.envCount, title: i18n.t(\"Environment Count\").toString() })), /* @__PURE__ */ React.createElement(Col, { span: 6, style: { padding: \"22px 0\" } }, /* @__PURE__ */ React.createElement(NumItem, { number: statistics?.targetCount, title: i18n.t(\"Target Count\").toString() })), /* @__PURE__ */ React.createElement(Col, { span: 6, style: { padding: \"22px 0\" } }, /* @__PURE__ */ React.createElement(\n NumItem,\n {\n number: statistics?.revisionCount,\n to: `/applications/${applicationDetail.name}/revisions`,\n title: i18n.t(\"Revision Count\").toString()\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: 6, style: { padding: \"22px 0\" } }, /* @__PURE__ */ React.createElement(\n NumItem,\n {\n number: statistics?.workflowCount,\n to: `/applications/${applicationDetail.name}/workflows`,\n title: i18n.t(\"Workflow Count\").toString()\n }\n )))))), /* @__PURE__ */ React.createElement(Row, { wrap: true, className: \"app-spec\" }, /* @__PURE__ */ React.createElement(Col, { xl: 8, xxs: 24, className: \"app-spec-item\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, className: \"padding16\" }, /* @__PURE__ */ React.createElement(\n Title,\n {\n title: /* @__PURE__ */ React.createElement(\"span\", { className: \"font-size-16 font-weight-bold\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Components\")),\n actions: !applicationDetail?.readOnly ? [\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/component:*`,\n action: \"create\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\"a\", { key: \"add\", onClick: this.onAddComponent, className: \"font-size-14 font-weight-400\" }, /* @__PURE__ */ React.createElement(Translation, null, \"New Component\"))\n )\n ] : []\n }\n ))), /* @__PURE__ */ React.createElement(\n Components,\n {\n application: applicationDetail,\n components: components || [],\n editComponent: (component) => {\n this.editComponent(component);\n },\n onDeleteComponent: (component) => {\n this.onDeleteComponent(component);\n },\n onDeleteTrait: this.onDeleteTrait,\n onAddTrait: (name) => {\n this.onAddTrait(name, true);\n },\n onAddComponent: this.onAddComponent,\n changeTraitStats: this.changeTraitStats\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 8, xxs: 24, className: \"app-spec-item\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, className: \"padding16\" }, /* @__PURE__ */ React.createElement(\n Title,\n {\n title: /* @__PURE__ */ React.createElement(\"span\", { className: \"font-size-16 font-weight-bold\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Policies\")),\n actions: [\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/policy:*`,\n action: \"create\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\"a\", { key: \"add\", className: \"font-size-14 font-weight-400\", onClick: this.onAddPolicy }, /* @__PURE__ */ React.createElement(Translation, null, \"New Policy\"))\n )\n ]\n }\n ))), /* @__PURE__ */ React.createElement(\n PolicyList,\n {\n policies,\n envbinding,\n applicationDetail,\n onDeletePolicy: (name) => {\n this.onDeletePolicy(name);\n },\n onShowPolicy: (name) => {\n this.onEditPolicy(name);\n }\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 8, xxs: 24, className: \"app-spec-item\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, className: \"padding16\" }, /* @__PURE__ */ React.createElement(\n Title,\n {\n actions: [\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/trigger:*`,\n action: \"create\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\"a\", { key: \"add\", className: \"font-size-14 font-weight-400\", onClick: this.onAddTrigger }, /* @__PURE__ */ React.createElement(Translation, null, \"New Trigger\"))\n )\n ],\n title: /* @__PURE__ */ React.createElement(\"span\", { className: \"font-size-16 font-weight-bold\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Triggers\"))\n }\n ))), /* @__PURE__ */ React.createElement(\n TriggerList,\n {\n appName,\n triggers,\n components: components || [],\n onDeleteTrigger: (token) => {\n this.onDeleteTrigger(token);\n },\n createTriggerInfo,\n applicationDetail,\n onEditTrigger: (t) => {\n this.setState({ visibleTrigger: true, trigger: t });\n }\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: visibleTrait }, /* @__PURE__ */ React.createElement(\n TraitDialog,\n {\n project: applicationDetail?.project?.name || \"\",\n visible: visibleTrait,\n isEditComponent,\n appName,\n componentName,\n isEditTrait,\n traitItem,\n temporaryTraitList,\n onClose: this.onClose,\n onOK: this.onOk,\n createTemporaryTrait: (trait) => {\n this.createTemporaryTrait(trait);\n },\n upDateTemporaryTrait: (trait) => {\n this.upDateTemporaryTrait(trait);\n }\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: visibleTrigger }, /* @__PURE__ */ React.createElement(\n TriggerDialog,\n {\n visible: visibleTrigger,\n appName,\n trigger,\n workflows,\n components: components || [],\n onClose: this.onTriggerClose,\n onOK: (res) => {\n this.onTriggerOk(res);\n }\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showEditApplication }, /* @__PURE__ */ React.createElement(EditAppDialog, { editItem, onOK: this.onOkEditAppDialog, onClose: this.onCloseEditAppDialog })), /* @__PURE__ */ React.createElement(If, { condition: visibleComponent }, /* @__PURE__ */ React.createElement(\n ComponentDialog,\n {\n project: applicationDetail?.project?.name || \"\",\n appName,\n componentName,\n components: components || [],\n isEditComponent,\n temporaryTraitList,\n componentDefinitions,\n onComponentClose: this.onComponentClose,\n onComponentOK: this.onComponentOK\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: visiblePolicy }, /* @__PURE__ */ React.createElement(\n PolicyDialog,\n {\n project: applicationDetail?.project?.name || \"\",\n visible: visiblePolicy,\n appName,\n policy: policyDetail,\n envbinding: envbinding || [],\n workflows: workflows || [],\n onClose: () => {\n this.setState({ visiblePolicy: false, policyDetail: void 0 });\n },\n onOK: () => {\n this.loadApplicationPolicies();\n this.setState({ visiblePolicy: false, policyDetail: void 0 });\n }\n }\n )));\n }\n};\nApplicationConfig = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], ApplicationConfig);\nexport default ApplicationConfig;\n","\"use strict\";\nimport { Loading } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { routerRedux } from \"dva/router\";\nimport React, { useEffect } from \"react\";\nimport { getApplicationEnvbinding } from \"../../api/application\";\nconst EnvRoute = (props) => {\n useEffect(() => {\n getApplicationEnvbinding({ appName: props.match.params.appName }).then((res) => {\n if (res && Array.isArray(res.envBindings) && res.envBindings.length > 0) {\n props.dispatch(\n routerRedux.push(\n `/applications/${props.match.params.appName}/envbinding/${res.envBindings[0].name}/workflow`\n )\n );\n } else {\n props.dispatch(routerRedux.push(`/applications/${props.match.params.appName}`));\n }\n });\n });\n return /* @__PURE__ */ React.createElement(Loading, { visible: true });\n};\nexport default connect()(EnvRoute);\n","\"use strict\";\nimport * as monaco from \"monaco-editor\";\nimport React, { useEffect } from \"react\";\nimport defineTheme from \"../DefinitionCode/theme\";\nexport const DiffEditor = (props) => {\n const { language = \"yaml\", base, target, id } = props;\n useEffect(() => {\n const container = document.getElementById(id);\n if (container) {\n container.innerHTML = \"\";\n }\n if (defineTheme) {\n monaco.editor.defineTheme(\"default\", defineTheme);\n monaco.editor.setTheme(\"default\");\n }\n const diffEditor = monaco.editor.createDiffEditor(container);\n diffEditor.setModel({\n original: monaco.editor.createModel(base, language),\n modified: monaco.editor.createModel(target, language)\n });\n }, [id, language, base, target]);\n return /* @__PURE__ */ React.createElement(React.Fragment, null);\n};\n","\"use strict\";\nimport { Button, Dialog, Message } from \"@alifd/next\";\nimport * as React from \"react\";\nimport \"./index.less\";\nimport { DiffEditor } from \"../DiffEditor\";\nimport { If } from \"../If\";\nimport { Translation } from \"../Translation\";\nexport const ApplicationDiff = (props) => {\n const { baseName, targetName, compare, rollback2Revision } = props;\n const container = \"revision\" + baseName + targetName;\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n className: \"application-diff\",\n width: \"800px\",\n overflowScroll: true,\n footer: /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(If, { condition: compare.isDiff && rollback2Revision }, /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: rollback2Revision }, \"Rollback To Revision\"))),\n id: props.id,\n visible: true,\n onClose: props.onClose,\n title: /* @__PURE__ */ React.createElement(\"div\", { style: { color: \"#fff\" } }, \" Differences between \", /* @__PURE__ */ React.createElement(\"span\", { className: \"name\" }, props.baseName), \" and \", /* @__PURE__ */ React.createElement(\"span\", { className: \"name\" }, props.targetName))\n },\n /* @__PURE__ */ React.createElement(If, { condition: !compare.isDiff }, /* @__PURE__ */ React.createElement(Message, { type: \"success\", style: { marginBottom: \"8px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"There is no change\"))),\n /* @__PURE__ */ React.createElement(\"div\", { id: container, className: \"diff-box\" }, /* @__PURE__ */ React.createElement(DiffEditor, { language: \"yaml\", id: container, target: compare.targetAppYAML, base: compare.baseAppYAML }))\n );\n};\n","\"use strict\";\nimport { Button, Dialog, Dropdown, Grid, Menu, Message, Select } from \"@alifd/next\";\nimport { Link, routerRedux } from \"dva/router\";\nimport i18n from \"i18next\";\nimport React, { Component } from \"react\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { AiOutlineCopy } from \"react-icons/ai\";\nimport { HiOutlineRefresh } from \"react-icons/hi\";\nimport { listApplicationServiceEndpoints } from \"../../../../api/observation\";\nimport {\n compareApplication,\n deleteApplicationEnvbinding,\n recycleApplicationEnvbinding\n} from \"../../../../api/application\";\nimport { ApplicationDiff } from \"../../../../components/ApplicationDiff\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components\";\nimport { locale } from \"../../../../utils/locale\";\nimport { getLink } from \"../../../../utils/utils\";\nimport { checkPermission } from \"../../../../utils/permission\";\nclass Header extends Component {\n constructor(props) {\n super(props);\n this.getTarget = () => {\n const { targets } = this.props;\n const { target } = this.state;\n if (targets && target) {\n const t = targets.find((item) => item.name === target);\n return t;\n }\n return;\n };\n this.loadApplicationEndpoints = async () => {\n const { applicationDetail, appName, envbinding } = this.props;\n const { component } = this.state;\n const target = this.getTarget();\n if (applicationDetail && applicationDetail.name && envbinding) {\n const param = {\n appName: envbinding.appDeployName || appName,\n appNs: envbinding.appDeployNamespace,\n componentName: component,\n cluster: \"\",\n clusterNs: \"\"\n };\n if (target) {\n param.cluster = target.cluster?.clusterName || \"\";\n param.clusterNs = target.cluster?.namespace || \"\";\n }\n this.setState({ loading: true });\n listApplicationServiceEndpoints(param).then((re) => {\n if (re && re.endpoints) {\n this.setState({ endpoints: re.endpoints });\n } else {\n this.setState({ endpoints: [] });\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n };\n this.loadApplicationWorkflows = async () => {\n const { appName } = this.props;\n this.props.dispatch({\n type: \"application/getApplicationWorkflows\",\n payload: { appName }\n });\n };\n this.loadApplicationPolicies = async () => {\n const { appName } = this.props;\n this.props.dispatch({\n type: \"application/getApplicationPolicies\",\n payload: { appName }\n });\n };\n this.loadApplicationEnvbinding = async () => {\n const { appName } = this.props;\n if (appName) {\n this.props.dispatch({\n type: \"application/getApplicationEnvbinding\",\n payload: { appName }\n });\n }\n };\n this.updateEnvbindingList = () => {\n this.loadApplicationEnvbinding();\n this.loadApplicationWorkflows();\n this.loadApplicationPolicies();\n };\n this.compareCurrentWithCluster = (appName, envName) => {\n const { applicationStatus, applicationDetail, userInfo } = this.props;\n if (!applicationStatus) {\n this.setState({ compare: void 0 });\n return;\n }\n if (!checkPermission(\n {\n resource: `project:${applicationDetail?.project?.name}/application:${applicationDetail?.name}`,\n action: \"compare\"\n },\n applicationDetail?.project?.name,\n userInfo\n )) {\n return;\n }\n compareApplication(appName, { compareLatestWithRunning: { env: envName } }).then(\n (res) => {\n this.setState({ compare: res });\n }\n );\n };\n this.handleTargetChange = (value) => {\n this.setState({ target: value }, () => {\n if (this.props.updateQuery) {\n this.props.updateQuery({ component: this.state.component, target: this.state.target });\n }\n this.loadApplicationEndpoints();\n });\n };\n this.handleComponentChange = (value) => {\n this.setState({ component: value }, () => {\n if (this.props.updateQuery) {\n this.props.updateQuery({ component: this.state.component, target: this.state.target });\n }\n this.loadApplicationEndpoints();\n });\n };\n this.recycleEnv = async () => {\n const { applicationDetail, envName, refresh, dispatch } = this.props;\n const sourceOfTrust = applicationDetail?.labels && applicationDetail?.labels[\"app.oam.dev/source-of-truth\"];\n let content = \"Are you sure you want to recycle the application form this environment?\";\n if (sourceOfTrust === \"from-k8s-resource\") {\n content = \"This application is synchronizing from cluster, recycling from this environment means this application will be deleted.\";\n }\n Dialog.confirm({\n needWrapper: true,\n content: /* @__PURE__ */ React.createElement(\"span\", null, i18n.t(content)),\n onOk: () => {\n if (applicationDetail) {\n recycleApplicationEnvbinding({\n appName: applicationDetail.name,\n envName\n }).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Recycle application environment success\"));\n if (sourceOfTrust === \"from-k8s-resource\") {\n dispatch(routerRedux.push(`/applications`));\n } else {\n refresh();\n this.loadApplicationEndpoints();\n }\n }\n });\n }\n },\n locale: locale().Dialog\n });\n };\n this.deleteEnv = async () => {\n Dialog.confirm({\n content: i18n.t(\"Are you sure you want to delete the current environment binding?\").toString(),\n onOk: () => {\n const { applicationDetail, envName, dispatch } = this.props;\n if (applicationDetail) {\n deleteApplicationEnvbinding({ appName: applicationDetail.name, envName }).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Environment binding deleted successfully\"));\n this.updateEnvbindingList();\n dispatch(routerRedux.push(`/applications/${applicationDetail.name}/config`));\n }\n });\n }\n },\n locale: locale().Dialog\n });\n };\n this.refresh = async () => {\n this.props.refresh();\n this.compareCurrentWithCluster(this.props.appName, this.props.envName);\n };\n this.showStatus = () => {\n this.refresh();\n this.setState({ showStatus: true });\n };\n this.showEditDialog = () => {\n this.setState({ visibleEnvEditPlan: true });\n };\n this.showApplicationDiff = () => {\n this.setState({ visibleApplicationDiff: true });\n };\n this.state = {\n recycleLoading: false,\n deleteLoading: false,\n refreshLoading: false,\n showStatus: false,\n visibleEnvEditPlan: false,\n visibleApplicationDiff: false\n };\n }\n componentDidMount() {\n this.compareCurrentWithCluster(this.props.appName, this.props.envName);\n this.loadApplicationEndpoints();\n }\n shouldComponentUpdate(nextProps) {\n if (nextProps.appName + nextProps.envName != this.props.appName + this.props.envName) {\n this.compareCurrentWithCluster(this.props.appName, nextProps.envName);\n this.loadApplicationEndpoints();\n }\n return true;\n }\n render() {\n const { Row, Col } = Grid;\n const { appName, envName, components, applicationDetail } = this.props;\n const { recycleLoading, deleteLoading, refreshLoading, compare, visibleApplicationDiff, endpoints } = this.state;\n const { targets, applicationStatus, disableStatusShow } = this.props;\n const targetOptions = (targets || []).map((item) => ({\n label: item.alias || item.name,\n value: item.name\n }));\n const componentOptions = (components || []).map((item) => ({\n label: item.alias || item.name,\n value: item.name\n }));\n const getAppStatusShowType = (status) => {\n if (!status) {\n return \"notice\";\n }\n switch (status) {\n case \"running\":\n return \"success\";\n case \"workflowFinished\":\n return \"success\";\n case \"unhealthy\":\n return \"error\";\n }\n return \"warning\";\n };\n const projectName = applicationDetail && applicationDetail.project?.name;\n const span = 10 + (targetOptions.length > 0 ? 0 : 4) + (componentOptions.length > 0 ? 0 : 4);\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, { wrap: true, className: \"border-radius-8\" }, targetOptions.length > 0 && /* @__PURE__ */ React.createElement(Col, { xl: 4, m: 12, xs: 24, style: { marginBottom: \"16px\", padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n onChange: this.handleTargetChange,\n dataSource: targetOptions,\n label: i18n.t(\"Target\").toString(),\n placeholder: i18n.t(\"Target Selector\").toString(),\n hasClear: true\n }\n )), componentOptions.length > 0 && /* @__PURE__ */ React.createElement(Col, { xl: 4, m: 12, xs: 24, style: { marginBottom: \"16px\", padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n onChange: this.handleComponentChange,\n dataSource: componentOptions,\n label: i18n.t(\"Component\").toString(),\n placeholder: i18n.t(\"Component Selector\").toString(),\n hasClear: true\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 6, m: 12, xs: 24, style: { marginBottom: \"16px\", padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(If, { condition: applicationStatus }, /* @__PURE__ */ React.createElement(Message, { type: getAppStatusShowType(applicationStatus?.status), size: \"medium\", style: { padding: \"8px\" } }, /* @__PURE__ */ React.createElement(Translation, null, `Application is ${applicationStatus?.status || \"Init\"}`), /* @__PURE__ */ React.createElement(If, { condition: !disableStatusShow }, /* @__PURE__ */ React.createElement(\"span\", { style: { marginLeft: \"16px\" } }, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${appName}/envbinding/${envName}/status` }, /* @__PURE__ */ React.createElement(Translation, null, \"Check the details\"))))))), /* @__PURE__ */ React.createElement(Col, { xl: span, m: 12, xs: 24, className: \"flexright\", style: { marginBottom: \"16px\", padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(If, { condition: compare && compare.isDiff }, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.showApplicationDiff }, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-failure\" }), \"Diff\")), /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", style: { marginLeft: \"16px\" }, loading: refreshLoading, onClick: this.refresh }, /* @__PURE__ */ React.createElement(HiOutlineRefresh, null)), /* @__PURE__ */ React.createElement(If, { condition: endpoints && endpoints.length > 0 }, /* @__PURE__ */ React.createElement(\n Dropdown,\n {\n trigger: /* @__PURE__ */ React.createElement(Button, { style: { marginLeft: \"16px\" }, type: \"secondary\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Service Endpoint\"))\n },\n /* @__PURE__ */ React.createElement(Menu, null, endpoints?.map((item) => {\n const linkURL = getLink(item);\n if (item && !item.endpoint.inner) {\n return /* @__PURE__ */ React.createElement(Menu.Item, { key: linkURL }, /* @__PURE__ */ React.createElement(If, { condition: item.endpoint.portName }, /* @__PURE__ */ React.createElement(\"span\", { className: \"margin-right-5\" }, item.endpoint.portName, \":\")), /* @__PURE__ */ React.createElement(\"a\", { style: { color: \"#1b58f4\" }, target: \"_blank\", href: linkURL, rel: \"noopener noreferrer\" }, linkURL));\n }\n return;\n }), endpoints?.map((item) => {\n const linkURL = getLink(item);\n if (item && item.endpoint.inner) {\n return /* @__PURE__ */ React.createElement(Menu.Item, { key: linkURL }, /* @__PURE__ */ React.createElement(If, { condition: item.endpoint.portName }, /* @__PURE__ */ React.createElement(\"span\", { className: \"margin-right-5\" }, item.endpoint.portName, \":\")), /* @__PURE__ */ React.createElement(\"span\", null, linkURL, \"(Inner)\", /* @__PURE__ */ React.createElement(\n CopyToClipboard,\n {\n onCopy: () => {\n Message.success(\"Copied successfully\");\n },\n text: linkURL\n },\n /* @__PURE__ */ React.createElement(AiOutlineCopy, { size: 14 })\n )));\n }\n return;\n }))\n )), /* @__PURE__ */ React.createElement(If, { condition: !applicationStatus || !applicationStatus.status }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/envBinding:${envName}`,\n action: \"delete\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n style: { marginLeft: \"16px\" },\n loading: deleteLoading,\n disabled: applicationDetail?.readOnly,\n className: \"danger-btn\",\n onClick: this.deleteEnv\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Delete\")\n )\n )), /* @__PURE__ */ React.createElement(If, { condition: applicationStatus && applicationStatus.status && applicationStatus.status != \"deleting\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/envBinding:${envName}`,\n action: \"recycle\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n loading: recycleLoading,\n onClick: this.recycleEnv,\n disabled: applicationDetail?.readOnly,\n className: \"danger-btn\",\n style: { marginLeft: \"16px\" }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Recycle\")\n )\n )))), /* @__PURE__ */ React.createElement(If, { condition: visibleApplicationDiff }, compare && /* @__PURE__ */ React.createElement(\n ApplicationDiff,\n {\n id: appName + envName,\n baseName: \"Deployed Application\",\n targetName: \"Latest Application Configuration\",\n compare,\n onClose: () => {\n this.setState({ visibleApplicationDiff: false });\n }\n }\n )));\n }\n}\nexport default Header;\n","\"use strict\";\nimport { Dialog, Grid, Checkbox, Dropdown, Menu, Button, Icon } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { momentDate, momentShortDate } from \"../../../../utils/common\";\nimport { downloadStringFile } from \"../../../../utils/utils\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"./index.less\";\nimport { listContainerLog } from \"../../../../api/observation\";\nimport Ansi from \"ansi-to-react\";\nimport { FaEllipsisV } from \"react-icons/fa\";\nconst { Row, Col } = Grid;\nclass ContainerLog extends Component {\n constructor(props) {\n super(props);\n this.maxTailLine = 3e3;\n this.toLogLines = (logs) => {\n const logLines = logs.split(\"\\n\");\n const lines = [];\n logLines.map((line) => {\n if (line) {\n const startsWithDate = 0 <= Number(line[0]) && Number(line[0]) <= 9;\n const idx = line.indexOf(\" \");\n if (idx > 0 && startsWithDate) {\n const timestamp = line.substring(0, idx);\n const content = line.substring(idx + 1);\n lines.push({ content, timestamp });\n } else {\n lines.push({ content: line, timestamp: \"\" });\n }\n }\n });\n return lines;\n };\n this.loadContainerLog = () => {\n const { pod, containerName, clusterName } = this.props;\n const { previous } = this.state;\n listContainerLog({\n cluster: clusterName,\n namespace: pod.metadata.namespace,\n pod: pod.metadata.name,\n container: containerName,\n previous,\n timestamps: true,\n tailLines: this.maxTailLine\n }).then((res) => {\n if (res && res.logs) {\n this.setState({ logs: this.toLogLines(res.logs), info: res.info });\n }\n if (res && res.err) {\n this.setState({ logs: this.toLogLines(res.err) });\n }\n const { autoRefresh, refreshInterval } = this.state;\n if (autoRefresh) {\n this.timeoutID = setTimeout(() => this.loadContainerLog(), refreshInterval);\n }\n }).catch(() => {\n });\n };\n this.setAutoRefresh = (v) => {\n this.setState({ autoRefresh: v });\n if (!v && this.timeoutID) {\n clearTimeout(this.timeoutID);\n this.timeoutID = void 0;\n }\n if (v && !this.timeoutID) {\n this.loadContainerLog();\n }\n };\n this.downloadLog = () => {\n const { pod, containerName = \"\" } = this.props;\n const { logs } = this.state;\n let logContent = [];\n logs.map((line) => {\n logContent.push(line.content);\n });\n downloadStringFile(logContent.join(\"\\n\"), pod?.metadata.name + \"-\" + containerName);\n };\n this.state = {\n autoRefresh: true,\n refreshInterval: 5e3,\n logs: [],\n showTimestamps: false,\n previous: false\n };\n }\n componentDidMount() {\n this.loadContainerLog();\n }\n componentWillUnmount() {\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n }\n }\n render() {\n const { logs, info, showTimestamps, autoRefresh, refreshInterval, previous } = this.state;\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n className: \"logDialog\",\n locale: locale().Dialog,\n visible: true,\n footerActions: [],\n onClose: this.props.onClose,\n overflowScroll: true,\n v2: true,\n title: /* @__PURE__ */ React.createElement(Row, { style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Col, { span: 12 }, /* @__PURE__ */ React.createElement(Translation, null, \"Container Log\")), /* @__PURE__ */ React.createElement(Col, { span: 12 }, /* @__PURE__ */ React.createElement(Button, { style: { float: \"right\" }, type: \"normal\", size: \"small\", onClick: this.downloadLog }, /* @__PURE__ */ React.createElement(Icon, { type: \"download\" })))),\n footer: /* @__PURE__ */ React.createElement(Row, { style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Col, { span: 12 }, /* @__PURE__ */ React.createElement(\"span\", { style: { float: \"left\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Logs Date\"), \":\", /* @__PURE__ */ React.createElement(\"span\", { style: { marginLeft: \"8px\" }, className: \"logDate\", title: momentDate(info?.fromDate) }, momentShortDate(info?.fromDate)), \"~\", /* @__PURE__ */ React.createElement(\"span\", { className: \"logDate\", title: momentDate(info?.toDate) }, momentShortDate(info?.toDate)))), /* @__PURE__ */ React.createElement(Col, { span: 12 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"logAction\" }, /* @__PURE__ */ React.createElement(Checkbox, { checked: showTimestamps, onChange: (v) => this.setState({ showTimestamps: v }) }, /* @__PURE__ */ React.createElement(Translation, null, \"Show timestamps\")), /* @__PURE__ */ React.createElement(Checkbox, { checked: autoRefresh, onChange: this.setAutoRefresh }, /* @__PURE__ */ React.createElement(Translation, null, \"Auto-refresh\"), \"(every \", refreshInterval / 1e3, \" s.)\"), /* @__PURE__ */ React.createElement(Dropdown, { trigger: /* @__PURE__ */ React.createElement(FaEllipsisV, null) }, /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(Menu.Item, null, /* @__PURE__ */ React.createElement(Checkbox, { checked: previous, onChange: (v) => this.setState({ previous: v }) }, /* @__PURE__ */ React.createElement(Translation, null, \"Show previous logs\"))))))))\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"logBox\" }, logs.map((line) => {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"logLine\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"content\" }, /* @__PURE__ */ React.createElement(If, { condition: showTimestamps }, momentDate(line.timestamp), \" | \", /* @__PURE__ */ React.createElement(Ansi, null, line.content)), /* @__PURE__ */ React.createElement(If, { condition: !showTimestamps }, /* @__PURE__ */ React.createElement(Ansi, null, line.content))));\n }))\n );\n }\n}\nexport default ContainerLog;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport React from \"react\";\nimport { Table, Progress, Message, Dialog, Button } from \"@alifd/next\";\nimport \"../../index.less\";\nimport { connect } from \"dva\";\nimport { routerRedux } from \"dva/router\";\nimport moment from \"moment\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport { AiOutlineCode, AiOutlineCopy } from \"react-icons/ai\";\nimport { listApplicationPodsDetails } from \"../../../../api/observation\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkEnabledAddon } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { quantityToScalar } from \"../../../../utils/utils\";\nimport ContainerLog from \"../ContainerLog\";\nimport { HiOutlineNewspaper } from \"react-icons/hi\";\nlet PodDetail = class extends React.Component {\n constructor(props) {\n super(props);\n this.showStatus = (statu) => {\n const statsuInfo = [\n { name: \"running\", value: /* @__PURE__ */ React.createElement(\"div\", { style: { color: \"green\" } }, \"Running\") },\n { name: \"terminated\", value: /* @__PURE__ */ React.createElement(\"div\", { style: { color: \"red\" } }, \"Terminated\") },\n { name: \"waiting\", value: /* @__PURE__ */ React.createElement(\"div\", { style: { color: \"#e17518\" } }, \"Waiting\") }\n ];\n const findStatus = statsuInfo.find((item) => item.name === statu) || { value: /* @__PURE__ */ React.createElement(\"div\", null) };\n return findStatus && findStatus.value;\n };\n this.getTimes = (record) => {\n const { firstTimestamp, eventTime } = record;\n if (eventTime) {\n const date = (new Date().getTime() - moment(eventTime).valueOf()) / 6e4;\n return date.toFixed(2);\n } else if (firstTimestamp) {\n const date = (new Date().getTime() - moment(firstTimestamp).valueOf()) / 6e4;\n return date.toFixed(2);\n }\n return;\n };\n this.onOpenCloudShell = (containerName) => {\n const { env, pod } = this.props;\n if (!checkEnabledAddon(\"cloudshell\", this.props.enabledAddons)) {\n Dialog.alert({\n title: i18n.t(\"CloudShell feature is not enabled\").toString(),\n content: i18n.t(\"You must enable the CloudShell addon first\").toString(),\n locale: locale().Dialog,\n footer: /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n onClick: () => {\n if (this.props.dispatch) {\n this.props.dispatch(\n routerRedux.push({\n pathname: \"/addons/cloudshell\"\n })\n );\n }\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Go to enable\")\n )\n });\n return;\n }\n const shellScript = `vela exec ${env?.appDeployName} -n ${env?.appDeployNamespace} --component ${pod.component} --cluster ${pod.cluster} --pod ${pod.metadata.name} --container ${containerName} -- bash`;\n Dialog.show({\n footer: false,\n style: { width: 600 },\n content: /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"h5\", null, \"1. \", /* @__PURE__ */ React.createElement(Translation, null, \"Copy the command\"), \":\"), /* @__PURE__ */ React.createElement(\"code\", { className: \"code\" }, shellScript, \" \", /* @__PURE__ */ React.createElement(\n CopyToClipboard,\n {\n onCopy: () => {\n Message.success(\"Copied successfully\");\n },\n text: shellScript\n },\n /* @__PURE__ */ React.createElement(AiOutlineCopy, { size: 14 })\n )), /* @__PURE__ */ React.createElement(\"h5\", null, \"2. \", /* @__PURE__ */ React.createElement(Translation, null, \"Open Cloud Shell\"), \":\"), /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Button,\n {\n size: \"small\",\n type: \"secondary\",\n onClick: () => {\n if (this.props.dispatch) {\n this.props.dispatch({\n type: \"cloudshell/open\"\n });\n }\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Open Cloud Shell\")\n )))\n });\n };\n this.loadPodDetail = async () => {\n listApplicationPodsDetails({\n name: this.props.pod.metadata.name || \"\",\n namespace: this.props.pod.metadata.namespace || \"\",\n cluster: this.props.pod.cluster || \"\"\n }).then((re) => {\n if (re && re.error) {\n Message.warning(re.error);\n } else if (re) {\n this.setState({\n containers: re.containers,\n events: re.events\n });\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n };\n this.showContainerLog = (containerName) => {\n this.setState({ showContainerLog: true, containerName });\n };\n this.getContainerColumns = () => {\n return [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Container Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"status\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Status\"),\n dataIndex: \"status\",\n cell: (v, i, record) => {\n const { state = {} } = record.status || {};\n const key = Object.keys(state) && Object.keys(state)[0] || \"\";\n return this.showStatus(key);\n }\n },\n {\n key: \"image\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Image\"),\n dataIndex: \"image\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"memory\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Memory\"),\n dataIndex: \"memory\",\n cell: (v, i, record) => {\n if (record.resources?.requests?.memory && record.resources?.usage?.memory) {\n const requestMemory = quantityToScalar(record.resources?.requests?.memory);\n const useMemory = quantityToScalar(record.resources?.usage?.memory);\n const percent = Number(useMemory).valueOf() / Number(requestMemory).valueOf();\n return /* @__PURE__ */ React.createElement(Progress, { size: \"small\", percent: percent * 100 });\n }\n if (record.resources?.usage?.memory) {\n return /* @__PURE__ */ React.createElement(\"span\", null, record.resources?.usage?.memory);\n }\n if (record.resources?.requests?.memory) {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Request\"), \": \", record.resources?.requests?.memory);\n }\n return /* @__PURE__ */ React.createElement(\"span\", null);\n }\n },\n {\n key: \"cpu\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"CPU\"),\n dataIndex: \"cpu\",\n cell: (v, i, record) => {\n if (record.resources?.requests?.cpu && record.resources?.usage?.cpu) {\n const requestcpu = quantityToScalar(record.resources?.requests?.cpu);\n const usecpu = quantityToScalar(record.resources?.usage?.cpu);\n const percent = Number(usecpu).valueOf() / Number(requestcpu).valueOf();\n return /* @__PURE__ */ React.createElement(Progress, { size: \"small\", percent: percent * 100 });\n }\n if (record.resources?.usage?.cpu) {\n return /* @__PURE__ */ React.createElement(\"span\", null, record.resources?.usage?.cpu);\n }\n if (record.resources?.requests?.cpu) {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Request\"), \": \", record.resources?.requests?.cpu);\n }\n return /* @__PURE__ */ React.createElement(\"span\", null);\n }\n },\n {\n key: \"restarts\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Restarts\"),\n dataIndex: \"restarts\",\n cell: (v, i, record) => {\n if (record.status?.restartCount !== void 0) {\n return /* @__PURE__ */ React.createElement(\"span\", null, record.status?.restartCount);\n }\n return /* @__PURE__ */ React.createElement(\"span\", null);\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"operations\" }, /* @__PURE__ */ React.createElement(\"a\", { title: \"Log\", onClick: () => this.showContainerLog(record.name), className: \"actionIcon\" }, /* @__PURE__ */ React.createElement(HiOutlineNewspaper, null)), /* @__PURE__ */ React.createElement(\"a\", { title: \"Console Shell\", onClick: () => this.onOpenCloudShell(record.name), className: \"actionIcon\" }, /* @__PURE__ */ React.createElement(AiOutlineCode, { size: 20 })));\n }\n }\n ];\n };\n this.getEventColumns = () => {\n return [\n {\n key: \"type\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Event Type\"),\n dataIndex: \"type\",\n width: 160,\n cell: (v, i, record) => {\n const { type, reason } = record;\n return /* @__PURE__ */ React.createElement(\"span\", null, type, \"/\", reason);\n }\n },\n {\n key: \"time\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Time\"),\n dataIndex: \"time\",\n width: 100,\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, \" \", this.getTimes(record), \"m\");\n }\n },\n {\n key: \"message\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Message\"),\n dataIndex: \"message\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n }\n ];\n };\n this.state = { loading: true, showContainerLog: false, containerName: \"\" };\n }\n componentDidMount() {\n this.loadPodDetail();\n }\n render() {\n const { Column } = Table;\n const containerColumns = this.getContainerColumns();\n const eventColumns = this.getEventColumns();\n const { events, containers, loading, showContainerLog, containerName } = this.state;\n const { pod, clusterName } = this.props;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"table-podDetails-list margin-top-20\" }, /* @__PURE__ */ React.createElement(\n Table,\n {\n className: \"container-table-wrapper margin-top-20\",\n dataSource: containers || [],\n primaryKey: \"name\",\n loading,\n locale: locale().Table\n },\n containerColumns && containerColumns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))\n ), /* @__PURE__ */ React.createElement(\n Table,\n {\n className: \"event-table-wrapper margin-top-20\",\n dataSource: events || [],\n loading,\n primaryKey: \"time\",\n locale: locale().Table\n },\n eventColumns && eventColumns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))\n ), /* @__PURE__ */ React.createElement(If, { condition: showContainerLog }, /* @__PURE__ */ React.createElement(\n ContainerLog,\n {\n onClose: () => {\n this.setState({ showContainerLog: false, containerName: \"\" });\n },\n pod,\n containerName,\n clusterName\n }\n )));\n }\n};\nPodDetail = __decorateClass([\n connect((store) => {\n return { ...store.cloudshell, ...store.addons };\n })\n], PodDetail);\nexport default PodDetail;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Table, Button, Message, Dialog, Card } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link, routerRedux } from \"dva/router\";\nimport querystring from \"query-string\";\nimport React from \"react\";\nimport { deployApplication } from \"../../api/application\";\nimport { listApplicationPods, listCloudResources } from \"../../api/observation\";\nimport { If } from \"../../components/If\";\nimport StatusShow from \"../../components/StatusShow\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport { momentDate } from \"../../utils/common\";\nimport { handleError } from \"../../utils/errors\";\nimport { locale } from \"../../utils/locale\";\nimport Header from \"./components/Header\";\nimport PodDetail from \"./components/PodDetail\";\nconst { Column } = Table;\nlet ApplicationInstanceList = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadApplicationStatus = async () => {\n const {\n params: { appName, envName }\n } = this.props.match;\n if (envName) {\n this.props.dispatch({\n type: \"application/getApplicationStatus\",\n payload: { appName, envName },\n callback: (re) => {\n this.loadAppInstances();\n }\n });\n }\n };\n this.convertCloudInstance = (configurations) => {\n const instances = [];\n if (Array.isArray(configurations) && configurations.length > 0) {\n configurations.map((configuration) => {\n let url = \"\";\n let identifierKey = \"\";\n if (configuration.metadata.annotations) {\n url = configuration.metadata.annotations[\"cloud-resource/console-url\"];\n identifierKey = configuration.metadata.annotations[\"cloud-resource/identifier\"];\n }\n const outputs = configuration.status?.apply?.outputs;\n let instanceName = \"\";\n const region = configuration.status?.apply?.region || configuration.spec.region || \"\";\n if (outputs) {\n if (outputs[identifierKey]) {\n instanceName = outputs[identifierKey].value;\n }\n if (url) {\n const params = url.match(/\\{(.+?)\\}/g);\n if (Array.isArray(params) && params.length > 0) {\n params.map((param) => {\n const paramKey = param.replace(\"{\", \"\").replace(\"}\", \"\");\n if (paramKey.toLowerCase() == \"region\" && region) {\n url = url.replace(param, region);\n }\n if (outputs[paramKey]) {\n url = url.replace(param, outputs[paramKey].value);\n }\n });\n }\n }\n }\n instances.push({\n instanceName,\n status: configuration.status?.apply?.state || \"-\",\n url,\n createTime: configuration.metadata.creationTimestamp || \"\",\n region,\n message: configuration.status?.apply?.message,\n type: configuration.metadata.labels && configuration.metadata.labels[\"workload.oam.dev/type\"]\n });\n });\n }\n this.setState({ cloudInstance: instances });\n };\n this.loadAppInstances = async () => {\n this.setState({ podList: [] });\n const { applicationDetail, envbinding, components } = this.props;\n const {\n params: { appName, envName }\n } = this.props.match;\n const cloudComponents = components?.filter((c) => c.workloadType?.type == \"configurations.terraform.core.oam.dev\");\n const showCloudInstance = cloudComponents?.length && cloudComponents?.length > 0;\n const queryPod = cloudComponents?.length == void 0 || components?.length && components.length > cloudComponents?.length;\n const { target, componentName } = this.state;\n const envs = envbinding.filter((item) => item.name == envName);\n if (applicationDetail && applicationDetail.name && envs.length > 0) {\n const param = {\n appName: envs[0].appDeployName || appName,\n appNs: envs[0].appDeployNamespace,\n componentName,\n cluster: \"\",\n clusterNs: \"\"\n };\n if (target) {\n param.cluster = target.cluster?.clusterName || \"\";\n param.clusterNs = target.cluster?.namespace || \"\";\n }\n this.setState({ loading: true });\n if (queryPod) {\n listApplicationPods(param).then((re) => {\n if (re && re.podList) {\n re.podList.map((item) => {\n item.primaryKey = item.metadata.name;\n });\n this.setState({ podList: re.podList });\n } else {\n this.setState({ podList: [] });\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n if (showCloudInstance) {\n this.setState({ loading: true });\n listCloudResources(param).then((cloudResources) => {\n if (cloudResources) {\n this.convertCloudInstance(cloudResources[\"cloud-resources\"]);\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n } else {\n this.setState({ loading: false });\n }\n } else {\n setTimeout(() => {\n this.loadAppInstances();\n }, 1e3);\n }\n };\n this.getColumns = () => {\n const { applicationDetail, components } = this.props;\n const getColor = (status) => {\n switch (status) {\n case \"Running\":\n return \"#28a745\";\n default:\n return \"#000\";\n }\n };\n const targets = this.getTargets();\n const targetMap = /* @__PURE__ */ new Map();\n targets?.map((item) => {\n targetMap.set(item.cluster?.clusterName + \"-\" + item.cluster?.namespace, item);\n });\n const getTarget = (key) => {\n return targetMap.get(key);\n };\n const componentNameAlias = {};\n components?.map((c) => {\n componentNameAlias[c.name] = c.alias || c.name;\n });\n return [\n {\n key: \"podName\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Pod Name\"),\n dataIndex: \"metadata.name\",\n cell: (v, index, record) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"div\", null, record.metadata.name), /* @__PURE__ */ React.createElement(\"div\", null, record.status.podIP));\n }\n },\n {\n key: \"clusterName\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Target\"),\n dataIndex: \"cluster\",\n cell: (v, index, record) => {\n const target = getTarget(record.cluster + \"-\" + record.metadata.namespace);\n if (target) {\n return /* @__PURE__ */ React.createElement(\"span\", null, target?.alias || target?.name);\n }\n return /* @__PURE__ */ React.createElement(\"span\", null, record.cluster, \"/\", record.metadata.namespace);\n }\n },\n {\n key: \"component\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Component\"),\n dataIndex: \"component\",\n cell: (v) => {\n return componentNameAlias[v];\n }\n },\n {\n key: \"status\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Status\"),\n dataIndex: \"status.phase\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", { style: { color: getColor(v) } }, v);\n }\n },\n {\n key: \"createTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"CreateTime\"),\n dataIndex: \"metadata.creationTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n },\n {\n key: \"deployVersion\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Revision\"),\n dataIndex: \"metadata.version.deployVersion\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${applicationDetail?.name}/revisions` }, v));\n }\n },\n {\n key: \"workload\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Workload Type\"),\n dataIndex: \"workload.kind\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"nodeName\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Node\"),\n dataIndex: \"status.nodeName\",\n cell: (v, index, record) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"div\", null, record.status.nodeName), /* @__PURE__ */ React.createElement(\"div\", null, record.status.hostIP));\n }\n }\n ];\n };\n this.updateQuery = (params) => {\n const targets = this.getTargets()?.filter((item) => item.name == params.target);\n let target = void 0;\n if (targets && targets.length > 0) {\n target = targets[0];\n }\n this.setState({ target, componentName: params.component }, () => {\n this.loadAppInstances();\n });\n };\n this.getTargets = () => {\n const { envbinding, match } = this.props;\n const env = envbinding.filter((item) => item.name == match.params.envName);\n if (env.length > 0) {\n return env[0].targets;\n }\n return [];\n };\n this.onRowOpen = (openRowKeys) => {\n this.setState({ openRowKeys });\n };\n this.onDeploy = (force) => {\n const { envbinding, dispatch } = this.props;\n const {\n params: { appName, envName }\n } = this.props.match;\n const envs = envbinding.filter((item) => item.name == envName);\n if (envs) {\n this.setState({ deployLoading: true });\n deployApplication(\n {\n appName,\n workflowName: \"workflow-\" + envs[0].name,\n triggerType: \"web\",\n force: force || false\n },\n true\n ).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Application deployed successfully\"));\n this.setState({ deployLoading: false });\n this.loadApplicationStatus();\n if (re.record && re.record.name && dispatch) {\n dispatch(\n routerRedux.push(`/applications/${appName}/envbinding/${re.envName}/workflow/records/${re.record.name}`)\n );\n }\n }\n }).catch((err) => {\n if (err.BusinessCode === 10004) {\n Dialog.confirm({\n content: \"Workflow is executing. Do you want to force a restart?\",\n onOk: () => {\n this.onDeploy(true);\n },\n onCancel: () => {\n this.setState({ deployLoading: false });\n },\n locale: locale().Dialog\n });\n } else {\n handleError(err);\n }\n });\n } else {\n Message.warning(\"Please wait\");\n }\n };\n this.getEnvbindingByName = () => {\n const { envbinding } = this.props;\n const {\n params: { envName }\n } = this.props.match;\n return envbinding.find((env) => env.name === envName);\n };\n this.loadStatusDetail = async () => {\n const {\n params: { appName, envName }\n } = this.props.match;\n if (envName) {\n this.setState({ loading: true });\n this.props.dispatch({\n type: \"application/getApplicationStatus\",\n payload: { appName, envName },\n callback: () => {\n this.setState({ loading: false });\n }\n });\n }\n };\n this.onStatusClose = () => {\n this.setState({ showStatus: false });\n };\n const { params } = props.match;\n this.state = {\n envName: params.envName,\n loading: false,\n openRowKeys: [],\n showStatus: false,\n deployLoading: false\n };\n }\n componentDidMount() {\n this.loadApplicationStatus();\n const query = querystring.parse(location.search);\n if (query && query.pod) {\n this.onRowOpen([query.pod]);\n }\n }\n componentWillReceiveProps(nextProps) {\n const { params } = nextProps.match;\n if (params.envName !== this.state.envName) {\n this.setState({ envName: params.envName }, () => {\n this.loadApplicationStatus();\n });\n }\n }\n render() {\n const { applicationStatus, applicationDetail, components, userInfo } = this.props;\n const { podList, loading, showStatus, cloudInstance, deployLoading } = this.state;\n const columns = this.getColumns();\n const envbinding = this.getEnvbindingByName();\n const expandedRowRender = (record) => {\n return /* @__PURE__ */ React.createElement(\"div\", { style: { margin: \"16px 0\" } }, /* @__PURE__ */ React.createElement(\n PodDetail,\n {\n env: envbinding,\n userInfo,\n clusterName: record.cluster,\n application: applicationDetail,\n pod: record\n }\n ));\n };\n const {\n params: { envName, appName }\n } = this.props.match;\n const cloudComponents = components?.filter((c) => c.workloadType?.type == \"configurations.terraform.core.oam.dev\");\n const showCloudInstance = cloudComponents?.length && cloudComponents?.length > 0;\n const onlyShowCloudInstance = showCloudInstance && cloudComponents?.length == components?.length;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Header,\n {\n envbinding,\n userInfo,\n targets: this.getTargets(),\n components,\n envName,\n appName,\n applicationDetail,\n applicationStatus,\n updateQuery: (params) => {\n this.updateQuery(params);\n },\n refresh: () => {\n this.loadApplicationStatus();\n },\n dispatch: this.props.dispatch\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: applicationStatus }, /* @__PURE__ */ React.createElement(If, { condition: !onlyShowCloudInstance }, /* @__PURE__ */ React.createElement(\"div\", { style: { overflow: \"auto\" } }, /* @__PURE__ */ React.createElement(\n Table,\n {\n style: { marginBottom: \"32px\", minWidth: \"1000px\" },\n locale: locale().Table,\n className: \"podlist-table-wrapper\",\n size: \"medium\",\n primaryKey: \"primaryKey\",\n loading,\n dataSource: podList || [],\n expandedIndexSimulate: true,\n expandedRowRender,\n openRowKeys: this.state.openRowKeys,\n onRowOpen: (openRowKeys) => {\n this.onRowOpen(openRowKeys);\n }\n },\n columns.map((col) => /* @__PURE__ */ React.createElement(Column, { ...col, key: col.key, align: \"left\" }))\n ))), /* @__PURE__ */ React.createElement(If, { condition: showCloudInstance }, /* @__PURE__ */ React.createElement(Card, { title: i18n.t(\"Instances of the cloud service\").toString() }, /* @__PURE__ */ React.createElement(\"div\", { style: { overflow: \"auto\" } }, /* @__PURE__ */ React.createElement(\n Table,\n {\n size: \"medium\",\n locale: locale().Table,\n style: { minWidth: \"1000px\" },\n className: \"customTable\",\n dataSource: cloudInstance,\n primaryKey: \"instanceName\",\n loading\n },\n /* @__PURE__ */ React.createElement(\n Column,\n {\n align: \"left\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"instanceName\",\n cell: (value, index, record) => {\n if (record.url) {\n return /* @__PURE__ */ React.createElement(\"a\", { target: \"_blank\", href: record.url, rel: \"noopener noreferrer\" }, value);\n }\n return value;\n }\n }\n ),\n /* @__PURE__ */ React.createElement(Column, { align: \"left\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Status\"), dataIndex: \"status\" }),\n /* @__PURE__ */ React.createElement(Column, { align: \"left\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Resource Type\"), dataIndex: \"type\" }),\n /* @__PURE__ */ React.createElement(\n Column,\n {\n align: \"left\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n dataIndex: \"createTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n }\n ),\n /* @__PURE__ */ React.createElement(Column, { align: \"left\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Region\"), dataIndex: \"region\" }),\n /* @__PURE__ */ React.createElement(\n Column,\n {\n align: \"left\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"url\",\n cell: (value, index, record) => {\n if (record.instanceName) {\n return /* @__PURE__ */ React.createElement(\"a\", { target: \"_blank\", href: value, rel: \"noopener noreferrer\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Console\"));\n }\n return;\n }\n }\n )\n ))))), /* @__PURE__ */ React.createElement(If, { condition: !applicationStatus }, /* @__PURE__ */ React.createElement(\"div\", { className: \"deployNotice\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"noticeBox\" }, /* @__PURE__ */ React.createElement(\"h2\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Not Deploy\")), /* @__PURE__ */ React.createElement(\"div\", { className: \"desc\" }, /* @__PURE__ */ React.createElement(Translation, null, \"The current environment has not been deployed.\")), /* @__PURE__ */ React.createElement(\"div\", { className: \"noticeAction\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n loading: deployLoading,\n disabled: applicationDetail?.readOnly,\n onClick: () => this.onDeploy(),\n type: \"primary\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Deploy\")\n ))))), /* @__PURE__ */ React.createElement(If, { condition: showStatus }, /* @__PURE__ */ React.createElement(\n StatusShow,\n {\n loading,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Application Status\"),\n applicationStatus,\n loadStatusDetail: this.loadStatusDetail,\n onClose: this.onStatusClose\n }\n )));\n }\n};\nApplicationInstanceList = __decorateClass([\n connect((store) => {\n return { ...store.application, ...store.user };\n })\n], ApplicationInstanceList);\nexport default ApplicationInstanceList;\n","\"use strict\";\nimport { Input, Select, Button, Message, Dialog, Form, Field, Grid } from \"@alifd/next\";\nimport React from \"react\";\nimport { createClusterNamespace } from \"../../../../api/cluster\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { locale } from \"../../../../utils/locale\";\nclass Namespace extends React.Component {\n constructor(props) {\n super(props);\n this.openNamespaceInput = () => {\n const { createNamespaceDialog } = this.props;\n if (createNamespaceDialog) {\n this.field.setValue(\"namespace\", \"\");\n this.setState({\n visible: true\n });\n }\n };\n this.createNamespace = () => {\n const { cluster, loadNamespaces, targetField } = this.props;\n if (!cluster) {\n Message.warning(\"Please select a cluster first\");\n return;\n }\n const { createNamespace } = this.state;\n const namespace = createNamespace || this.field.getValue(\"namespace\");\n this.setState({ loading: true });\n if (cluster && namespace) {\n createClusterNamespace({ cluster, namespace }).then((re) => {\n if (re) {\n Message.success(\"Namespace created successfully\");\n loadNamespaces(cluster);\n }\n targetField.setValue(\"runtimeNamespace\", namespace);\n this.setState({\n loading: false,\n visible: false\n });\n });\n }\n };\n this.onClose = () => {\n this.setState({\n visible: false\n });\n };\n this.state = {\n inputNamespaceParam: \"\",\n loading: false,\n visible: false\n };\n this.field = new Field(this);\n }\n render() {\n const { disableNew, onChange, namespaces, value, disabled } = this.props;\n const { visible } = this.state;\n const { Col, Row } = Grid;\n const init = this.field.init;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 10\n },\n wrapperCol: {\n span: 14\n }\n };\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"div\", { className: \"cluster-container\" }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n className: \"cluster-params-input\",\n mode: \"single\",\n disabled,\n dataSource: namespaces,\n onChange,\n placeholder: \"\",\n value\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: !disableNew }, /* @__PURE__ */ React.createElement(\n Button,\n {\n className: \"cluster-option-btn\",\n type: \"secondary\",\n disabled,\n onClick: this.openNamespaceInput\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New\")\n ))), /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n locale: locale().Dialog,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Create Namespace\"),\n autoFocus: true,\n overflowScroll: true,\n visible,\n onOk: this.createNamespace,\n onCancel: this.onClose,\n onClose: this.onClose,\n footerActions: [\"ok\"]\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.field, ...formItemLayout }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"namespace\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"namespace\",\n placeholder: \"Please input the name of namespace\",\n ...init(\"namespace\", {\n rules: [\n {\n required: true,\n message: \"Please input the name of namespace\"\n }\n ]\n })\n }\n )))))\n ));\n }\n}\nexport default Namespace;\n","\"use strict\";\nimport { Message, Grid, Dialog, Form, Input, Field, Select, Loading } from \"@alifd/next\";\nimport React from \"react\";\nimport { listNamespaces } from \"../../../../api/observation\";\nimport { getCloudServiceProviderList, getProjectList } from \"../../../../api/project\";\nimport { createTarget, updateTarget } from \"../../../../api/target\";\nimport { Translation } from \"../../../../components/Translation\";\nimport Group from \"../../../../extends/Group\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport Namespace from \"../Namespace\";\nclass TargetDialog extends React.Component {\n constructor(props) {\n super(props);\n this.listProjects = async () => {\n this.setState({ isLoading: true });\n getProjectList({ page: 0, pageSize: 0 }).then((res) => {\n this.setState({\n projects: res.projects || [],\n isLoading: false\n });\n }).catch(() => {\n this.setState({ isLoading: false });\n });\n };\n this.onClose = () => {\n this.props.onClose();\n this.resetField();\n };\n this.onOk = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { isEdit, liteMode } = this.props;\n const {\n name,\n alias,\n description,\n clusterName,\n runtimeNamespace,\n var_providerName,\n var_region,\n var_zone,\n var_vpcID,\n project\n } = values;\n const params = {\n name,\n alias,\n description,\n cluster: {\n clusterName,\n namespace: runtimeNamespace\n },\n variable: {\n providerName: var_providerName,\n region: var_region,\n zone: var_zone,\n vpcID: var_vpcID\n },\n project\n };\n if (liteMode) {\n params.name = params.cluster.clusterName + \"-\" + runtimeNamespace;\n params.project = this.props.project;\n }\n if (isEdit) {\n updateTarget(params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Target updated successfully\"));\n this.props.onOK(params.name);\n this.onClose();\n }\n });\n } else {\n createTarget(params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Target created successfully\"));\n this.props.onOK(params.name);\n this.onClose();\n }\n });\n }\n });\n };\n this.transCluster = () => {\n const { clusterList } = this.props;\n return (clusterList || []).map((item) => ({\n label: item.alias || item.name,\n value: item.name\n }));\n };\n this.loadNamespaces = async (cluster) => {\n if (cluster) {\n listNamespaces({ cluster }).then((re) => {\n if (re && re.list) {\n const namespaces = [];\n re.list.map((item) => {\n if (item.metadata.labels && item.metadata.labels[\"namespace.oam.dev/target\"]) {\n return;\n }\n namespaces.push({ label: item.metadata.name, value: item.metadata.name });\n });\n this.setState({ namespaces });\n }\n });\n }\n };\n this.getProviderList = async (projectName) => {\n getCloudServiceProviderList(projectName).then((res) => {\n if (res && Array.isArray(res.providers)) {\n this.setState({\n providerList: res.providers\n });\n } else {\n this.setState({\n providerList: []\n });\n }\n });\n };\n this.field = new Field(this, {\n onChange: (name, value) => {\n if (name == \"clusterName\") {\n this.setState({ namespaces: [] }, () => {\n this.loadNamespaces(value);\n });\n this.field.setValue(\"runtimeNamespace\", \"\");\n props.clusterList?.map((cluster) => {\n if (cluster.name == value && cluster.providerInfo) {\n this.field.setValues({\n var_region: cluster.providerInfo.regionID,\n var_zone: cluster.providerInfo.zoneID,\n var_vpcID: cluster.providerInfo.vpcID\n });\n if (cluster.providerInfo.provider == \"aliyun\") {\n this.field.setValue(\"var_providerName\", \"default\");\n }\n }\n });\n }\n }\n });\n this.state = {\n namespaces: [],\n providerList: [],\n isLoading: true\n };\n }\n componentDidMount() {\n const { targetItem } = this.props;\n if (targetItem) {\n const {\n name,\n alias,\n description,\n cluster = { clusterName: \"\", namespace: \"\" },\n variable = { providerName: \"\", region: \"\", zone: \"\", vpcID: \"\" },\n project = { name: \"\", alias: \"\" }\n } = targetItem;\n this.field.setValues({\n name,\n alias,\n description,\n clusterName: cluster.clusterName,\n runtimeNamespace: cluster.namespace,\n var_providerName: variable.providerName,\n var_region: variable.region,\n var_zone: variable.zone,\n var_vpcID: variable.vpcID,\n project: project.name\n });\n if (cluster) {\n this.loadNamespaces(cluster.clusterName);\n }\n if (project.name) {\n this.getProviderList(project.name);\n }\n }\n this.listProjects();\n }\n resetField() {\n this.field.setValues({\n name: \"\",\n alias: \"\",\n description: \"\",\n project: \"\",\n clusterName: \"\",\n namespace: \"\",\n providerName: \"\",\n region: \"\",\n zone: \"\",\n vpcID: \"\"\n });\n }\n render() {\n const { Col, Row } = Grid;\n const FormItem = Form.Item;\n const init = this.field.init;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 18\n }\n };\n const { visible, isEdit, liteMode } = this.props;\n const { namespaces, projects, isLoading } = this.state;\n const cluster = this.field.getValue(\"clusterName\");\n const projectOptions = projects?.map((project) => {\n return {\n label: project.alias ? project.alias : project.name,\n value: project.name\n };\n });\n const { providerList } = this.state;\n const providerListOptions = providerList.map((pro) => {\n return {\n label: `(${pro.provider})${pro.name}`,\n value: pro.name\n };\n });\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n locale: locale().Dialog,\n title: isEdit ? /* @__PURE__ */ React.createElement(Translation, null, \"Edit Target\") : /* @__PURE__ */ React.createElement(Translation, null, \"New Target\"),\n autoFocus: true,\n overflowScroll: true,\n visible,\n onOk: this.onOk,\n onCancel: this.onClose,\n onClose: this.onClose,\n footerActions: [\"ok\"]\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, !liteMode && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { m: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n disabled: isEdit,\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: \"Please enter a valid name contains only alphabetical words\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { m: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Loading, { visible: isLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"project\",\n hasClear: true,\n showSearch: true,\n disabled: isEdit,\n placeholder: i18n.t(\"Please select\").toString(),\n filterLocal: true,\n dataSource: projectOptions,\n readOnly: this.props.project != void 0,\n style: { width: \"100%\" },\n ...init(\"project\", {\n rules: [\n {\n required: true,\n message: \"Please select project\"\n }\n ],\n initValue: this.props.project\n }),\n onChange: (item) => {\n this.field.setValue(\"var_providerName\", \"\");\n this.field.setValue(\"project\", item);\n this.getProviderList(item);\n }\n }\n ))))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"description\", {\n rules: [\n {\n maxLength: 256,\n message: \"Enter a description that contains less than 256 characters.\"\n }\n ]\n })\n }\n ))))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { m: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Cluster\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n className: \"select\",\n disabled: isEdit,\n placeholder: i18n.t(\"Please select\").toString(),\n ...init(`clusterName`, {\n rules: [\n {\n required: true,\n message: \"Please select\"\n }\n ]\n }),\n dataSource: this.transCluster()\n }\n ))), /* @__PURE__ */ React.createElement(Col, { m: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Namespace\"), required: true }, /* @__PURE__ */ React.createElement(\n Namespace,\n {\n ...init(`runtimeNamespace`, {\n rules: [\n {\n required: true,\n message: \"Please select namesapce\"\n }\n ]\n }),\n disabled: isEdit,\n namespaces,\n loadNamespaces: this.loadNamespaces,\n cluster,\n createNamespaceDialog: true,\n targetField: this.field\n }\n )))), !liteMode && /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Group,\n {\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Shared Variables\"),\n required: false,\n description: /* @__PURE__ */ React.createElement(Translation, null, \"You can define parameters such as region or zone\"),\n hasToggleIcon: true\n },\n /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Cloud Service Provider\"),\n help: i18n.t(\"Load the options after the project selected\").toString()\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n className: \"select\",\n locale: locale().Select,\n placeholder: i18n.t(\"Please select a terraform provider\").toString(),\n ...init(`var_providerName`, {\n rules: [\n {\n required: false,\n message: i18n.t(\"Please select terraform provider name\")\n }\n ]\n }),\n onChange: (provider) => {\n providerList.map((pro) => {\n if (pro.name == provider) {\n this.field.setValue(\"var_region\", pro.region);\n }\n });\n this.field.setValue(\"var_providerName\", provider);\n },\n dataSource: providerListOptions\n }\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Region\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"var_region\",\n locale: locale().Input,\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"var_region\", {\n rules: [\n {\n maxLength: 256,\n message: \"Enter a Region.\"\n }\n ]\n })\n }\n ))))\n ))))\n ));\n }\n}\nexport default TargetDialog;\n","\"use strict\";\nimport { Message, Grid, Dialog, Form, Input, Field, Select, Loading, Button, Table } from \"@alifd/next\";\nimport React from \"react\";\nimport { getClusterList } from \"../../../../api/cluster\";\nimport { createEnv, updateEnv } from \"../../../../api/env\";\nimport { listNamespaces } from \"../../../../api/observation\";\nimport { getProjectTargetList } from \"../../../../api/project\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { checkPermission } from \"../../../../utils/permission\";\nimport TargetDialog from \"../../../TargetList/components/TargetDialog\";\nclass EnvDialog extends React.Component {\n constructor(props) {\n super(props);\n this.loadClusters = () => {\n if (checkPermission({ resource: \"cluster\", action: \"list\" }, \"\", this.props.userInfo)) {\n getClusterList({}).then((res) => {\n if (res) {\n this.setState({ clusterList: res.clusters });\n }\n });\n }\n };\n this.onClose = () => {\n this.props.onClose();\n this.resetField();\n };\n this.loadProjectTarget = async (projectName, callback) => {\n this.setState({ targetLoading: true });\n getProjectTargetList({ projectName }).then((res) => {\n if (res) {\n this.setState({ targets: res.targets, targetLoading: false }, callback);\n }\n });\n };\n this.makeTargetDataSource = () => {\n const { targets } = this.state;\n const selectTargets = this.field.getValue(\"targets\");\n const targetMap = /* @__PURE__ */ new Map();\n if (!targets || !selectTargets) {\n return [];\n }\n targets?.map((t) => {\n targetMap.set(t.name, t);\n });\n const data = selectTargets.filter((t) => targetMap.get(t)).map((t) => {\n return targetMap.get(t);\n });\n return data;\n };\n this.onOk = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n this.setState({ submitLoading: true });\n const { isEdit } = this.props;\n const { name, alias, description, targets, namespace, project } = values;\n const params = {\n name,\n alias,\n description,\n namespace,\n project: project || \"default\",\n targets\n };\n if (isEdit) {\n updateEnv(params).then((res) => {\n this.setState({ submitLoading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Environment updated successfully\"));\n this.props.onOK();\n this.onClose();\n }\n });\n } else {\n createEnv(params).then((res) => {\n this.setState({ submitLoading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Environment created successfully\"));\n this.props.onOK();\n this.onClose();\n }\n });\n }\n });\n };\n this.convertTarget = () => {\n const { targets } = this.state;\n return (targets || []).map((target) => ({\n label: `${target.alias || target.name}(${target.cluster?.clusterName}/${target.cluster?.namespace})`,\n value: target.name\n }));\n };\n this.loadNamespaces = async (cluster) => {\n if (cluster) {\n listNamespaces({ cluster }).then((re) => {\n if (re && re.list) {\n const namespaces = re.list.map((item) => {\n return { label: item.metadata.name, value: item.metadata.name };\n });\n this.setState({ namespaces });\n }\n });\n }\n };\n this.showNewTarget = () => {\n this.setState({ newTarget: true });\n };\n this.field = new Field(this, {\n onChange: (name, value) => {\n if (name == \"project\") {\n this.loadProjectTarget(value);\n }\n }\n });\n this.state = {\n targetLoading: false,\n submitLoading: false,\n newTarget: false\n };\n }\n componentDidMount() {\n const { envItem, isEdit } = this.props;\n let projectName = this.props.project;\n if (envItem && isEdit) {\n const { name, alias, description, targets, namespace, project } = envItem;\n const targetNames = targets?.map((target) => {\n return target.name;\n });\n projectName = project.name;\n this.field.setValues({\n name,\n alias,\n namespace,\n description,\n targets: targetNames,\n project: project.name\n });\n }\n if (projectName) {\n this.loadProjectTarget(projectName);\n }\n this.loadClusters();\n }\n resetField() {\n this.field.setValues({\n name: \"\",\n alias: \"\",\n description: \"\",\n project: \"\",\n targets: [],\n namespace: \"\"\n });\n }\n render() {\n const { Col, Row } = Grid;\n const FormItem = Form.Item;\n const init = this.field.init;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 18\n }\n };\n const { visible, isEdit, projects, userInfo } = this.props;\n const { targetLoading, submitLoading, newTarget, clusterList } = this.state;\n const projectOptions = [];\n (projects || []).map((project) => {\n if (checkPermission({ resource: `project:${project.name}/environment:*`, action: \"create\" }, project.name, userInfo)) {\n projectOptions.push({\n label: project.alias ? `${project.alias}(${project.name})` : project.name,\n value: project.name\n });\n }\n });\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n locale: locale().Dialog,\n title: isEdit ? /* @__PURE__ */ React.createElement(Translation, null, \"Edit Environment\") : /* @__PURE__ */ React.createElement(Translation, null, \"New Environment\"),\n autoFocus: true,\n overflowScroll: true,\n visible,\n onOk: this.onOk,\n onCancel: this.onClose,\n onClose: this.onClose,\n footerActions: [\"cancel\", \"ok\"],\n footer: /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Button, { onClick: this.onOk, type: \"primary\", loading: submitLoading }, /* @__PURE__ */ React.createElement(Translation, null, \"OK\")))\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n disabled: isEdit,\n placeholder: i18n.t(\"Please enter the Environment name\").toString(),\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a valid name contains only alphabetical words\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter the Environment alias\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Enter a string of 2 to 64 characters\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Environment Namespace\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"namespace\",\n disabled: isEdit,\n placeholder: i18n.t(\"By default, it is the same as the Environment name\").toString(),\n ...init(\"namespace\", {\n rules: [\n {\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"please enter a valid English name\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n placeholder: i18n.t(\"Please enter the Environment description\").toString(),\n ...init(\"description\", {\n rules: [\n {\n maxLength: 256,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Enter a description that contains less than 256 characters\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"project\",\n hasClear: true,\n showSearch: true,\n placeholder: i18n.t(\"Please select a project\").toString(),\n filterLocal: true,\n dataSource: projectOptions,\n style: { width: \"100%\" },\n ...init(\"project\", {\n rules: [\n {\n required: true,\n message: i18n.t(\"Please select a project\")\n }\n ],\n initValue: this.props.project\n })\n }\n )))), /* @__PURE__ */ React.createElement(If, { condition: this.field.getValue(\"project\") }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Loading, { visible: targetLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Target\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n className: \"select\",\n mode: \"multiple\",\n placeholder: i18n.t(\"Please select a target\").toString(),\n ...init(`targets`, {\n rules: [\n {\n required: true,\n message: \"Please select at least one target\"\n }\n ],\n initValue: []\n }),\n dataSource: this.convertTarget()\n }\n )))), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: { resource: \"target:*\", action: \"create\" },\n project: this.field.getValue(\"project\")\n },\n /* @__PURE__ */ React.createElement(Col, { className: \"flexright\" }, /* @__PURE__ */ React.createElement(Button, { onClick: this.showNewTarget, type: \"secondary\", style: { marginBottom: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"New Target\")))\n )), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: this.makeTargetDataSource() }, /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"name\",\n title: i18n.t(\"Name\").toString(),\n cell: (v, i, t) => {\n if (t.alias) {\n return `${t.name}(${t.alias})`;\n }\n return t.name;\n }\n }\n ), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"cluster.clusterName\", title: i18n.t(\"Cluster\").toString() }), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"cluster.namespace\", title: i18n.t(\"Namespace\").toString() }))))))\n ), /* @__PURE__ */ React.createElement(If, { condition: newTarget }, /* @__PURE__ */ React.createElement(\n TargetDialog,\n {\n visible: newTarget,\n clusterList: clusterList || [],\n isEdit: false,\n liteMode: true,\n project: this.field.getValue(\"project\"),\n onClose: () => {\n this.setState({ newTarget: false });\n },\n onOK: (name) => {\n if (this.field.getValue(\"project\")) {\n this.loadProjectTarget(this.field.getValue(\"project\"), () => {\n const existTarget = this.field.getValue(\"targets\") || [];\n existTarget.push(name);\n this.field.setValue(\"targets\", existTarget);\n });\n }\n this.setState({\n newTarget: false\n });\n }\n }\n )));\n }\n}\nexport default EnvDialog;\n","\"use strict\";\nimport { Grid, Form, Input, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { checkName } from \"../../../../utils/common\";\nimport \"./index.less\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkPermission } from \"../../../../utils/permission\";\nclass GeneralConfig extends React.Component {\n resetField() {\n this.props.field.setValues({\n name: \"\",\n cluster: [],\n describe: \"\"\n });\n }\n render() {\n const { Row, Col } = Grid;\n const { projects, isDisableProject, userInfo } = this.props;\n let defaultProject = \"\";\n const projectOptions = [];\n (projects || []).map((project) => {\n if (checkPermission({ resource: `project:${project.name}/application:*`, action: \"create\" }, project.name, userInfo)) {\n if (project.name === \"default\") {\n defaultProject = project.name;\n }\n projectOptions.push({\n label: project.alias ? `${project.alias}(${project.name})` : project.name,\n value: project.name\n });\n }\n });\n const FormItem = Form.Item;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const init = this.props.field.init;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.props.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), labelTextAlign: \"left\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n maxLength: 31,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a valid application name\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Give your app a more recognizable name\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n ...init(\"description\", {\n rules: [\n {\n maxLength: 128,\n message: \"Enter a description less than 128 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"project\",\n placeholder: i18n.t(\"Please select a project\").toString(),\n disabled: isDisableProject ? true : false,\n dataSource: projectOptions,\n filterLocal: true,\n hasClear: true,\n style: { width: \"100%\" },\n ...init(\"project\", {\n initValue: defaultProject,\n rules: [\n {\n required: true,\n message: \"Please select project\"\n }\n ]\n })\n }\n ))))));\n }\n}\nexport default GeneralConfig;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid, Field, Form, Select, Message, Button } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport React from \"react\";\nimport { createApplication } from \"../../../../api/application\";\nimport { detailComponentDefinition } from \"../../../../api/definitions\";\nimport { getEnvs } from \"../../../../api/env\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { Translation } from \"../../../../components/Translation\";\nimport UISchema from \"../../../../components/UISchema\";\nimport { locale } from \"../../../../utils/locale\";\nimport EnvDialog from \"../../../EnvPage/components/EnvDialog\";\nimport GeneralConfig from \"../GeneralConfig\";\nlet AppDialog = class extends React.Component {\n constructor(props) {\n super(props);\n this.onClose = () => {\n this.props.setVisible(false);\n };\n this.onSubmit = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { description, alias, name, icon = \"\", componentType, properties, envBindings, project } = values;\n const envbinding = envBindings?.map((env) => {\n return { name: env };\n });\n const params = {\n alias,\n icon,\n name,\n description,\n project: project || \"default\",\n envBinding: envbinding,\n component: {\n alias,\n componentType,\n description,\n icon,\n name,\n properties: JSON.stringify(properties)\n }\n };\n this.setState({ createLoading: true });\n createApplication(params).then((res) => {\n if (res && res.name) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Application created successfully\"));\n this.props.onOK(name);\n }\n this.setState({ createLoading: false });\n });\n });\n };\n this.loadEnvs = (callback) => {\n if (this.state.project) {\n getEnvs({ project: this.state.project, page: 0 }).then((res) => {\n if (res) {\n this.setState({ envs: res && res.envs });\n const envOption = (res?.envs || []).map((env) => {\n return {\n label: env.alias ? `${env.alias}(${env.name})` : env.name,\n value: env.name\n };\n });\n if (callback) {\n callback(envOption[0]?.value || \"\");\n }\n }\n });\n }\n };\n this.onDetailComponentDefinition = (value) => {\n detailComponentDefinition({ name: value }).then((re) => {\n if (re) {\n this.setState({ definitionDetail: re, definitionLoading: false });\n }\n });\n };\n this.changeStatus = (value) => {\n const values = this.field.getValues();\n const { envBindings } = values;\n if (value === \"isCreateComponent\") {\n this.field.validateCallback(\n [\"name\", \"alias\", \"description\", \"project\", \"componentType\", \"envBindings\"],\n (error) => {\n if (error) {\n return;\n }\n const { dispatch } = this.props;\n if (Array.isArray(envBindings) && envBindings.length > 0) {\n const { envs } = this.state;\n let namespace = \"\";\n envs?.map((env) => {\n if (envBindings[0] == env.name) {\n namespace = env.namespace;\n }\n });\n dispatch({\n type: \"uischema/setAppNamespace\",\n payload: namespace\n });\n dispatch({\n type: \"uischema/setProject\",\n payload: values.project\n });\n }\n this.setState({\n dialogStats: value\n });\n }\n );\n } else if (value === \"isBasic\") {\n this.setState({\n dialogStats: value\n });\n }\n };\n this.extButtonList = () => {\n const { dialogStats, createLoading } = this.state;\n const { onClose } = this.props;\n if (dialogStats === \"isBasic\") {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: onClose, className: \"margin-right-10\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")), /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n onClick: () => {\n this.changeStatus(\"isCreateComponent\");\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Next Step\")\n ));\n } else if (dialogStats === \"isCreateComponent\") {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n onClick: () => {\n this.changeStatus(\"isBasic\");\n },\n className: \"margin-right-10\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Previous\")\n ), /* @__PURE__ */ React.createElement(Button, { loading: createLoading, type: \"primary\", onClick: this.onSubmit }, /* @__PURE__ */ React.createElement(Translation, null, \"Create\")));\n } else {\n return /* @__PURE__ */ React.createElement(\"div\", null);\n }\n };\n this.onCloseEnvDialog = () => {\n this.setState({\n visibleEnvDialog: false\n });\n };\n this.onOKEnvDialog = () => {\n this.setState(\n {\n visibleEnvDialog: false\n },\n () => {\n this.loadEnvs(this.setEnvValue);\n }\n );\n };\n this.changeEnvDialog = (visible) => {\n this.setState({\n visibleEnvDialog: visible\n });\n };\n this.setEnvValue = (envBinding) => {\n const envBindings = this.field.getValue(\"envBindings\");\n (envBindings || []).push(envBinding);\n this.field.setValues({ envBindings });\n };\n this.removeProperties = () => {\n this.field.remove(\"properties\");\n this.setState({ definitionDetail: void 0 });\n };\n this.handleChange = (value) => {\n this.removeProperties();\n this.field.setValues({ componentType: value });\n this.onDetailComponentDefinition(value);\n };\n this.state = {\n definitionLoading: true,\n dialogStats: \"isBasic\",\n envs: [],\n visibleEnvDialog: false,\n createLoading: false\n };\n this.field = new Field(this, {\n autoUnmount: false,\n onChange: (name, value) => {\n if (name === \"project\") {\n this.setState({ project: value }, () => {\n this.loadEnvs();\n this.field.setValue(\"envBindings\", []);\n });\n }\n }\n });\n this.uiSchemaRef = React.createRef();\n this.basicRef = React.createRef();\n }\n componentDidMount() {\n const { projects, projectName } = this.props;\n if (projectName) {\n this.field.setValue(\"project\", projectName);\n }\n let defaultProject = \"\";\n (projects || []).map((item, i) => {\n if (i == 0) {\n defaultProject = item.name;\n }\n if (item.name == \"default\") {\n defaultProject = item.name;\n }\n return;\n });\n if (projectName || defaultProject) {\n this.setState({ project: projectName ? projectName : defaultProject }, () => {\n this.loadEnvs();\n });\n }\n this.onDetailComponentDefinition(\"webservice\");\n }\n transComponentDefinitions() {\n const { componentDefinitions } = this.props;\n const defaultCoreDataSource = [\"k8s-objects\", \"task\", \"webservice\", \"worker\"];\n const cloud = [\n {\n label: \"Cloud\",\n children: []\n }\n ];\n const core = [\n {\n label: \"Core\",\n children: []\n }\n ];\n const custom = [\n {\n label: \"Custom\",\n children: []\n }\n ];\n (componentDefinitions || []).map((item) => {\n if (item.workloadType === \"configurations.terraform.core.oam.dev\") {\n cloud[0].children.push({\n label: item.name,\n value: item.name\n });\n } else if (defaultCoreDataSource.includes(item.name)) {\n core[0].children.push({\n label: item.name,\n value: item.name\n });\n } else {\n custom[0].children.push({\n label: item.name,\n value: item.name\n });\n }\n });\n return [...core, ...custom, ...cloud];\n }\n render() {\n const init = this.field.init;\n const FormItem = Form.Item;\n const { Row, Col } = Grid;\n const { visible, setVisible, dispatch, projects, onClose, isDisableProject, userInfo } = this.props;\n const { definitionDetail, dialogStats, envs, visibleEnvDialog } = this.state;\n const validator = (rule, value, callback) => {\n this.uiSchemaRef.current?.validate(callback);\n };\n const envOptions = envs?.map((env) => {\n return {\n label: env.alias ? `${env.alias}(${env.name})` : env.name,\n value: env.name\n };\n });\n const secondStep = dialogStats === \"isCreateComponent\" && definitionDetail && definitionDetail.uiSchema ? true : false;\n init(\"test\");\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: /* @__PURE__ */ React.createElement(Translation, null, \"New Application\"),\n placement: \"right\",\n width: 800,\n visible,\n onClose,\n extButtons: this.extButtonList()\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.field }, dialogStats === \"isBasic\" && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n GeneralConfig,\n {\n visible,\n setVisible,\n dispatch,\n userInfo,\n projects,\n isDisableProject,\n field: this.field,\n ref: this.basicRef\n }\n ), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, { className: \"font-size-14 font-weight-bold\" }, \"Main Component Type\"),\n required: true,\n help: /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Get more component type?\"), /* @__PURE__ */ React.createElement(Link, { to: \"/addons\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Go to enable addon\")))\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n showSearch: true,\n className: \"select\",\n ...init(`componentType`, {\n initValue: \"webservice\",\n rules: [\n {\n required: true,\n message: \"Please select\"\n }\n ]\n }),\n dataSource: this.transComponentDefinitions(),\n onChange: this.handleChange\n }\n )\n ))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, { className: \"font-size-14 font-weight-bold\" }, \"Bind Environments\"),\n help: /* @__PURE__ */ React.createElement(\n \"a\",\n {\n onClick: () => {\n this.changeEnvDialog(true);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New Environment\")\n ),\n required: true\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(`envBindings`, {\n rules: [\n {\n required: true,\n message: \"Please select env\"\n }\n ]\n }),\n locale: locale().Select,\n mode: \"multiple\",\n dataSource: envOptions\n }\n )\n )))), secondStep && /* @__PURE__ */ React.createElement(FormItem, { required: true }, /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...init(`properties`, {\n rules: [\n {\n validator,\n message: \"Please check app deploy properties\"\n }\n ]\n }),\n uiSchema: definitionDetail && definitionDetail.uiSchema,\n ref: this.uiSchemaRef,\n mode: \"new\"\n }\n )))\n ), visibleEnvDialog && /* @__PURE__ */ React.createElement(\n EnvDialog,\n {\n visible: visibleEnvDialog,\n userInfo,\n projects: projects || [],\n project: this.field.getValue(\"project\"),\n isEdit: false,\n onClose: this.onCloseEnvDialog,\n onOK: this.onOKEnvDialog\n }\n ));\n }\n};\nAppDialog = __decorateClass([\n connect(() => {\n return {};\n })\n], AppDialog);\nexport default AppDialog;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport \"./index.less\";\nimport { Link } from \"dva/router\";\nimport { Grid, Card, Menu, Dropdown, Dialog, Button, Table, Tag, Icon } from \"@alifd/next\";\nimport { AiFillDelete, AiFillSetting } from \"react-icons/ai\";\nimport appSvg from \"../../../../assets/application.svg\";\nimport Empty from \"../../../../components/Empty\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { momentDate } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { checkPermission } from \"../../../../utils/permission\";\nconst { Column } = Table;\nlet CardContent = class extends React.Component {\n constructor(props) {\n super(props);\n this.onDeleteAppPlan = (name) => {\n this.props.deleteAppPlan(name);\n };\n this.onEditAppPlan = (item) => {\n this.props.editAppPlan(item);\n };\n this.onClickLabelFilter = (label) => {\n if (this.props.clickLabelFilter) {\n this.props.clickLabelFilter(label);\n }\n };\n this.onMoreLabels = (appName) => {\n let { showLabelMode } = this.state;\n let cur = showLabelMode.get(appName);\n showLabelMode.set(appName, cur ? false : true);\n this.setState({\n showLabelMode\n });\n };\n this.isEditPermission = (item, button) => {\n const { userInfo } = this.props;\n const project = item?.project?.name || this.props.projectName || \"?\";\n const request = { resource: `project:${project}/application:${item.name}`, action: \"update\" };\n if (checkPermission(request, project, userInfo)) {\n if (button) {\n return /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onEditAppPlan(item);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillSetting, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n );\n }\n return /* @__PURE__ */ React.createElement(\n Menu.Item,\n {\n onClick: () => {\n this.onEditAppPlan(item);\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"dropdown-menu-item inline-center\" }, /* @__PURE__ */ React.createElement(AiFillSetting, null), /* @__PURE__ */ React.createElement(Translation, null, \"Edit\"))\n );\n } else {\n return null;\n }\n };\n this.isDeletePermission = (item, button) => {\n const { userInfo } = this.props;\n const project = item?.project?.name || this.props.projectName || \"?\";\n const request = { resource: `project:${project}/application:${item.name}`, action: \"delete\" };\n const onClick = () => {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n this.onDeleteAppPlan(item.name);\n },\n locale: locale().Dialog\n });\n };\n if (checkPermission(request, project, userInfo)) {\n if (button) {\n return /* @__PURE__ */ React.createElement(Button, { text: true, size: \"medium\", className: \"danger-btn\", component: \"a\", onClick }, /* @__PURE__ */ React.createElement(AiFillDelete, null), \" \", /* @__PURE__ */ React.createElement(Translation, null, \"Remove\"));\n }\n return /* @__PURE__ */ React.createElement(Menu.Item, { onClick }, /* @__PURE__ */ React.createElement(\"div\", { className: \"dropdown-menu-item inline-center\" }, /* @__PURE__ */ React.createElement(AiFillDelete, null), \" \", /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")));\n } else {\n return null;\n }\n };\n this.getColumns = () => {\n return [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name(Alias)\"),\n dataIndex: \"name\",\n cell: (v, i, app) => {\n const showName = app.name + \"(\" + (app.alias || \"-\") + \")\";\n return /* @__PURE__ */ React.createElement(Link, { to: `/applications/${v}/config` }, showName);\n }\n },\n {\n key: \"project\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"),\n dataIndex: \"project\",\n cell: (v) => {\n if (v && v.name) {\n return /* @__PURE__ */ React.createElement(Link, { to: `/projects/${v.name}/summary` }, v && v.name);\n } else {\n return null;\n }\n }\n },\n {\n key: \"description\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\"),\n dataIndex: \"description\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"labels\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Labels\"),\n dataIndex: \"labels\",\n cell: (label, i, v) => {\n const { showLabelMode } = this.state;\n const more = showLabelMode.get(v.name);\n let displayLabels = 0;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"div\", { className: more ? \"\" : \"table-content-label\" }, label && Object.keys(label)?.map((key) => {\n if (label && key.indexOf(\"ux.oam.dev\") < 0 && key.indexOf(\"app.oam.dev\") < 0) {\n displayLabels++;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Tag,\n {\n onClick: (e) => this.onClickLabelFilter(key + `=${label[key]}`),\n key: `${key}=${label[key]}`,\n style: { margin: \"2px\" },\n color: \"blue\",\n size: \"small\"\n },\n `${key}=${label[key]}`\n ));\n }\n return;\n })), displayLabels > 1 && /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Tag,\n {\n onClick: (e) => this.onMoreLabels(v.name),\n key: \"showLabelTag\",\n style: { margin: \"2px\" },\n size: \"small\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, more ? \"Hide\" : \"More\"),\n more ? /* @__PURE__ */ React.createElement(Icon, { type: \"minus\" }) : /* @__PURE__ */ React.createElement(Icon, { type: \"add\" })\n )));\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n width: \"200px\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, this.isEditPermission(record, true), /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" }), this.isDeletePermission(record, true));\n }\n }\n ];\n };\n const { applications } = this.props;\n let showLabelMode = /* @__PURE__ */ new Map();\n applications?.map((app) => {\n if (app.labels && Object.keys(app.labels).length > 1) {\n showLabelMode.set(app.name, true);\n } else {\n showLabelMode.set(app.name, false);\n }\n });\n this.state = {\n extendDotVisible: false,\n choseIndex: 0,\n showLabelMode\n };\n }\n render() {\n const { Row, Col } = Grid;\n const { applications, setVisible, showMode } = this.props;\n const projectName = this.props.projectName || \"?\";\n if (!applications || applications.length === 0) {\n return /* @__PURE__ */ React.createElement(\n Empty,\n {\n message: /* @__PURE__ */ React.createElement(\"section\", { style: { textAlign: \"center\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"There are no applications\"), /* @__PURE__ */ React.createElement(\"main\", null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: { resource: `project:${projectName}/application:*`, action: \"create\" },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n component: \"a\",\n onClick: () => {\n setVisible(true);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New Application\")\n )\n ))),\n style: { minHeight: \"400px\" }\n }\n );\n }\n const columns = this.getColumns();\n if (showMode == \"table\") {\n return /* @__PURE__ */ React.createElement(\"div\", { style: { overflow: \"auto\" } }, /* @__PURE__ */ React.createElement(\n Table,\n {\n locale: locale().Table,\n className: \"customTable\",\n size: \"medium\",\n style: { minWidth: \"1200px\" },\n dataSource: applications,\n loading: false\n },\n columns.map((col) => /* @__PURE__ */ React.createElement(Column, { ...col, key: col.key, align: \"left\" }))\n ));\n }\n return /* @__PURE__ */ React.createElement(Row, { wrap: true }, applications?.map((item) => {\n const { name, alias, icon, description, createTime, readOnly, labels } = item;\n const showName = alias || name;\n return /* @__PURE__ */ React.createElement(Col, { xl: 6, m: 8, s: 12, xxs: 24, className: `card-content-wrapper`, key: `${item.name}` }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\" }, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${name}/config` }, /* @__PURE__ */ React.createElement(\"div\", { className: \"appplan-card-top flexcenter\" }, /* @__PURE__ */ React.createElement(If, { condition: icon && icon != \"none\" }, /* @__PURE__ */ React.createElement(\"img\", { src: icon })), /* @__PURE__ */ React.createElement(If, { condition: !icon || icon === \"none\" }, /* @__PURE__ */ React.createElement(\"img\", { src: appSvg })))), /* @__PURE__ */ React.createElement(\"div\", { className: \"content-wrapper background-F9F8FF\" }, /* @__PURE__ */ React.createElement(Row, { className: \"content-title\" }, /* @__PURE__ */ React.createElement(Col, { span: \"20\", className: \"font-size-16 color1A1A1A\" }, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${name}/config` }, showName)), /* @__PURE__ */ React.createElement(Col, { span: 4, className: \"dot-wrapper\" }, /* @__PURE__ */ React.createElement(\n Dropdown,\n {\n trigger: /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n className: \"action\",\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"3448\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M365.066 197.39c0 0 0 0 0 0 0 58.569 47.479 106.048 106.048 106.048 58.569 0 106.048-47.479 106.048-106.048 0 0 0 0 0 0 0-58.569-47.479-106.048-106.048-106.048-58.569 0-106.048 47.479-106.048 106.048 0 0 0 0 0 0z\",\n fill: \"#a6a6a6\",\n \"p-id\": \"3449\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M365.066 512c0 0 0 0 0 0 0 58.569 47.479 106.048 106.048 106.048 58.569 0 106.048-47.479 106.048-106.048 0 0 0 0 0 0 0-58.569-47.479-106.048-106.048-106.048-58.569 0-106.048 47.479-106.048 106.048 0 0 0 0 0 0z\",\n fill: \"#a6a6a6\",\n \"p-id\": \"3450\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M365.066 826.61c0 0 0 0 0 0 0 58.569 47.479 106.048 106.048 106.048 58.569 0 106.048-47.479 106.048-106.048 0 0 0 0 0 0 0-58.569-47.479-106.048-106.048-106.048-58.569 0-106.048 47.479-106.048 106.048 0 0 0 0 0 0z\",\n fill: \"#a6a6a6\",\n \"p-id\": \"3451\"\n }\n )\n )\n },\n /* @__PURE__ */ React.createElement(Menu, null, this.isEditPermission(item), this.isDeletePermission(item))\n ))), /* @__PURE__ */ React.createElement(Row, { className: \"content-main\" }, /* @__PURE__ */ React.createElement(\"h4\", { className: \"color595959 font-size-14\", title: description }, description)), /* @__PURE__ */ React.createElement(Row, { className: \"content-labels\" }, labels && Object.keys(labels).map((key) => {\n if (labels && key.indexOf(\"ux.oam.dev\") < 0 && key.indexOf(\"app.oam.dev\")) {\n return /* @__PURE__ */ React.createElement(\n Tag,\n {\n onClick: (e) => this.onClickLabelFilter(key + `=${labels[key]}`),\n key,\n style: { margin: \"4px\" },\n color: \"blue\"\n },\n `${key}=${labels[key]}`\n );\n }\n return null;\n })), /* @__PURE__ */ React.createElement(Row, { className: \"content-foot colorA6A6A6\" }, /* @__PURE__ */ React.createElement(Col, { span: \"16\" }, /* @__PURE__ */ React.createElement(\"span\", null, createTime && momentDate(createTime))), /* @__PURE__ */ React.createElement(Col, { span: 8, className: \"flexright\" }, /* @__PURE__ */ React.createElement(If, { condition: readOnly }, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-warning\" }), /* @__PURE__ */ React.createElement(Translation, null, \"ReadOnly\")))))));\n }));\n }\n};\nCardContent = __decorateClass([\n connect((store) => {\n return { ...store.user };\n })\n], CardContent);\nexport default CardContent;\n","\"use strict\";\nimport { Grid, Icon, Select, Input, Button } from \"@alifd/next\";\nimport React from \"react\";\nimport \"./index.less\";\nimport { locale } from \"../../../../utils/locale\";\nimport i18n from \"../../../../i18n\";\nimport { AiOutlineSearch } from \"react-icons/ai\";\nconst { Row, Col } = Grid;\nclass SelectSearch extends React.Component {\n constructor(props) {\n super(props);\n this.onChangeEnv = (e) => {\n this.setState(\n {\n envValue: e\n },\n () => {\n this.getApplications();\n }\n );\n };\n this.handleClickSearch = () => {\n this.getApplications();\n };\n this.getApplications = async () => {\n const { projectValue, inputValue, envValue, labelValue } = this.state;\n const labelSelector = labelValue.join(\",\");\n const params = {\n project: projectValue,\n query: inputValue,\n env: envValue,\n labels: labelSelector\n };\n this.props.getApplications(params);\n };\n this.state = {\n projectValue: \"\",\n targetValue: \"\",\n envValue: \"\",\n inputValue: \"\",\n labelValue: []\n };\n this.onChangeProject = this.onChangeProject.bind(this);\n this.onChangeTarget = this.onChangeTarget.bind(this);\n this.handleChangName = this.handleChangName.bind(this);\n this.handleChangeLabel = this.handleChangeLabel.bind(this);\n }\n onChangeProject(e) {\n this.setState(\n {\n projectValue: e\n },\n () => {\n this.getApplications();\n }\n );\n }\n onChangeTarget(e) {\n this.setState(\n {\n targetValue: e\n },\n () => {\n this.getApplications();\n }\n );\n }\n handleChangName(e) {\n this.setState({\n inputValue: e\n });\n }\n handleChangeLabel(value) {\n const { setLabelValue } = this.props;\n let label = value ? value : [];\n setLabelValue(label);\n this.setState(\n {\n labelValue: label\n },\n () => {\n this.getApplications();\n }\n );\n }\n render() {\n const { projects, appLabels, envs, showMode, labelValue } = this.props;\n const { projectValue, inputValue, envValue } = this.state;\n const projectPlaceholder = i18n.t(\"Search by Project\").toString();\n const appPlaceholder = i18n.t(\"Search by Name and Description etc\").toString();\n const envPlaceholder = i18n.t(\"Search by Environment\").toString();\n const labelPlaceholder = i18n.t(\"Search by Label Selector\").toString();\n const projectSource = projects?.map((item) => {\n return {\n label: item.alias || item.name,\n value: item.name\n };\n });\n const labelSource = appLabels?.map((item) => {\n return {\n label: item,\n value: item\n };\n });\n const envSource = envs?.map((env) => {\n return {\n label: env.alias || env.name,\n value: env.name\n };\n });\n return /* @__PURE__ */ React.createElement(Row, { className: \"app-select-wrapper border-radius-8\", wrap: true }, /* @__PURE__ */ React.createElement(Col, { xl: 4, m: 4, s: 6, xxs: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n size: \"large\",\n onChange: this.onChangeProject,\n dataSource: projectSource,\n placeholder: projectPlaceholder,\n className: \"item\",\n hasClear: true,\n value: projectValue\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 4, m: 4, s: 6, xxs: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n size: \"large\",\n onChange: this.onChangeEnv,\n dataSource: envSource,\n placeholder: envPlaceholder,\n className: \"item\",\n hasClear: true,\n value: envValue\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 4, m: 8, s: 12, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(AiOutlineSearch, { onClick: this.handleClickSearch, style: { margin: 4 } }),\n hasClear: true,\n size: \"large\",\n placeholder: appPlaceholder,\n onChange: this.handleChangName,\n onPressEnter: this.handleClickSearch,\n value: inputValue,\n className: \"item\"\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 8, m: 8, s: 12, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n hasClear: true,\n size: \"large\",\n placeholder: labelPlaceholder,\n onChange: this.handleChangeLabel,\n showSearch: true,\n mode: \"multiple\",\n value: labelValue,\n className: \"item\",\n dataSource: labelSource\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 4, className: \"flexboth\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"padding16 show-mode\" }, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: () => this.getApplications() }, /* @__PURE__ */ React.createElement(Icon, { type: \"refresh\" }))), /* @__PURE__ */ React.createElement(\"div\", { className: \"show-mode padding16\" }, /* @__PURE__ */ React.createElement(Button.Group, null, /* @__PURE__ */ React.createElement(Button, { type: showMode == \"card\" ? \"primary\" : \"secondary\", onClick: () => this.props.setMode(\"card\") }, \"Card\"), /* @__PURE__ */ React.createElement(Button, { type: showMode == \"table\" ? \"primary\" : \"secondary\", onClick: () => this.props.setMode(\"table\") }, \"Table\")))));\n }\n}\nexport default SelectSearch;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Message, Loading, Button } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport { deleteApplication } from \"../../api/application\";\nimport { getComponentDefinitions } from \"../../api/definitions\";\nimport { If } from \"../../components/If\";\nimport { ListTitle } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport AppDialog from \"./components/AddAppDialog\";\nimport CardContend from \"./components/CardContent\";\nimport EditAppDialog from \"./components/EditAppDialog\";\nimport SelectSearch from \"./components/SelectSearch\";\nlet Application = class extends Component {\n constructor(props) {\n super(props);\n this.getApplications = async (params) => {\n this.setState({ isLoading: true });\n this.props.dispatch({\n type: \"application/getApplicationList\",\n payload: params,\n callback: () => {\n this.setState({\n isLoading: false\n });\n }\n });\n };\n this.getEnvs = async () => {\n this.props.dispatch({\n type: \"env/listEnvs\",\n payload: {}\n });\n };\n this.setLabelValue = async (labels) => {\n this.setState({\n labelValue: labels\n });\n };\n this.onDeleteApp = (name) => {\n deleteApplication({ name }).then((re) => {\n if (re) {\n Message.success(\"Application deleted successfully\");\n this.getApplications({});\n }\n });\n };\n this.onGetComponentDefinitions = async () => {\n getComponentDefinitions().then((res) => {\n if (res) {\n this.setState({\n componentDefinitions: res && res.definitions\n });\n }\n });\n };\n this.closeAddApplication = () => {\n this.setState({\n showAddApplication: false\n });\n this.getApplications({});\n };\n this.closeEditAppDialog = () => {\n this.setState({\n showEditApplication: false\n });\n this.getApplications({});\n };\n this.editAppPlan = (editItem) => {\n this.setState({\n editItem,\n showEditApplication: true\n });\n };\n this.clickLabelFilter = (label) => {\n let { labelValue } = this.state;\n let existIndex = -1;\n labelValue.map((key, index) => {\n if (key == label) {\n existIndex = index;\n return;\n }\n });\n if (existIndex == -1) {\n labelValue.push(label);\n } else {\n labelValue = labelValue.splice(existIndex, existIndex);\n }\n this.setState({\n labelValue\n });\n this.getApplications({ labels: labelValue.join(\",\") });\n };\n let mode = localStorage.getItem(\"application-list-mode\");\n if (mode != \"table\" && mode != \"card\") {\n mode = \"card\";\n }\n this.state = {\n showAddApplication: false,\n componentDefinitions: [],\n labelValue: [],\n isLoading: false,\n showEditApplication: false,\n showMode: mode\n };\n }\n componentDidMount() {\n this.getApplications({});\n this.getEnvs();\n this.onGetComponentDefinitions();\n }\n render() {\n const { applicationList, targets, dispatch, envs, userInfo } = this.props;\n const { showAddApplication, componentDefinitions, isLoading, showEditApplication, editItem, labelValue, showMode } = this.state;\n let appLabels = [];\n applicationList?.map((app) => {\n app.labels && Object.keys(app.labels).map((key) => {\n if (key.indexOf(\"ux.oam.dev\") < 0 && key.indexOf(\"app.oam.dev\")) {\n if (app.labels) {\n appLabels.push(key + \"=\" + app.labels[key]);\n }\n }\n });\n });\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: \"Applications\",\n subTitle: \"Deploy and manage all your applications\",\n extButtons: [\n /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"project:?/application:*\", action: \"create\" }, project: \"?\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n onClick: () => {\n this.setState({ showAddApplication: true });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New Application\")\n ))\n ]\n }\n ), /* @__PURE__ */ React.createElement(\n SelectSearch,\n {\n projects: userInfo?.projects,\n appLabels,\n dispatch,\n setLabelValue: this.setLabelValue,\n labelValue,\n envs,\n showMode,\n setMode: (mode) => {\n this.setState({ showMode: mode });\n if (mode) {\n localStorage.setItem(\"application-list-mode\", mode);\n }\n },\n getApplications: (params) => {\n this.getApplications(params);\n }\n }\n ), /* @__PURE__ */ React.createElement(Loading, { visible: isLoading, fullScreen: true }, /* @__PURE__ */ React.createElement(\n CardContend,\n {\n applications: applicationList,\n editAppPlan: (item) => {\n this.editAppPlan(item);\n },\n clickLabelFilter: this.clickLabelFilter,\n showMode,\n deleteAppPlan: this.onDeleteApp,\n setVisible: (visible) => {\n this.setState({ showAddApplication: visible });\n }\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showAddApplication }, /* @__PURE__ */ React.createElement(\n AppDialog,\n {\n visible: showAddApplication,\n targets,\n userInfo,\n projects: userInfo?.projects,\n componentDefinitions,\n setVisible: (visible) => {\n this.setState({ showAddApplication: visible });\n },\n onOK: (name) => {\n this.props.history.push(`/applications/${name}/config`);\n },\n onClose: this.closeAddApplication,\n dispatch\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showEditApplication && editItem }, /* @__PURE__ */ React.createElement(EditAppDialog, { editItem, onOK: this.closeEditAppDialog, onClose: this.closeEditAppDialog })));\n }\n};\nApplication = __decorateClass([\n connect((store) => {\n return { ...store.application, ...store.target, ...store.clusters, ...store.env, ...store.user };\n })\n], Application);\nexport default Application;\n","\"use strict\";\nimport { Grid, Checkbox, Dropdown, Menu, Loading, Button, Icon } from \"@alifd/next\";\nimport Ansi from \"ansi-to-react\";\nimport React, { Component, Fragment } from \"react\";\nimport { listContainerLog } from \"../../../../api/observation\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { momentDate, momentShortDate } from \"../../../../utils/common\";\nimport { downloadStringFile } from \"../../../../utils/utils\";\nimport \"./index.less\";\nimport { If } from \"../../../../components/If\";\nimport { FaEllipsisV } from \"react-icons/fa\";\nclass ContainerLog extends Component {\n constructor(props) {\n super(props);\n this.maxTailLine = 3e3;\n this.toLogLines = (logs) => {\n const logLines = logs.split(\"\\n\");\n const lines = [];\n logLines.map((line) => {\n if (line) {\n const startsWithDate = 0 <= Number(line[0]) && Number(line[0]) <= 9;\n const idx = line.indexOf(\" \");\n if (idx > 0 && startsWithDate) {\n const timestamp = line.substring(0, idx);\n const content = line.substring(idx + 1);\n lines.push({ content, timestamp });\n } else {\n lines.push({ content: line, timestamp: \"\" });\n }\n }\n });\n return lines;\n };\n this.loadContainerLog = () => {\n const { pod, activeContainerName = \"\" } = this.props;\n const { previous } = this.state;\n if (pod && activeContainerName) {\n listContainerLog({\n cluster: pod.cluster,\n namespace: pod.metadata.namespace,\n pod: pod.metadata.name,\n container: activeContainerName,\n previous,\n timestamps: true,\n tailLines: this.maxTailLine\n }).then((res) => {\n if (res && res.logs) {\n this.setState({ logs: this.toLogLines(res.logs), info: res.info });\n }\n if (res && res.err) {\n this.setState({ logs: this.toLogLines(res.err) });\n }\n const { autoRefresh, refreshInterval } = this.state;\n if (autoRefresh) {\n this.timeoutID = setTimeout(() => this.loadContainerLog(), refreshInterval);\n }\n }).catch(() => {\n }).finally(() => {\n this.setState({ loading: false });\n });\n } else {\n this.setState({ loading: false });\n }\n };\n this.setAutoRefresh = (v) => {\n this.setState({ autoRefresh: v });\n if (!v && this.timeoutID) {\n clearTimeout(this.timeoutID);\n this.timeoutID = void 0;\n }\n if (v && !this.timeoutID) {\n this.loadContainerLog();\n }\n };\n this.downloadLog = () => {\n const { pod, activeContainerName = \"\" } = this.props;\n const { logs } = this.state;\n let logContent = [];\n logs.map((line) => {\n logContent.push(line.content);\n });\n downloadStringFile(logContent.join(\"\\n\"), pod?.metadata.name + \"-\" + activeContainerName);\n };\n this.state = {\n autoRefresh: true,\n refreshInterval: 5e3,\n logs: [],\n showTimestamps: false,\n previous: false,\n loading: false\n };\n }\n componentDidMount() {\n this.loadContainerLog();\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps.pod?.metadata.name != this.props.pod?.metadata.name || nextProps.activeContainerName != this.props.activeContainerName) {\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n }\n this.setState(\n {\n logs: [],\n loading: true\n },\n () => {\n this.loadContainerLog();\n }\n );\n }\n }\n componentWillUnmount() {\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n }\n }\n render() {\n const { Row, Col } = Grid;\n const { logs, info, showTimestamps, autoRefresh, refreshInterval, previous, loading } = this.state;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"application-logs-actions\" }, /* @__PURE__ */ React.createElement(Button, { className: \"download\", type: \"normal\", size: \"small\", onClick: this.downloadLog }, /* @__PURE__ */ React.createElement(Icon, { type: \"download\" })), /* @__PURE__ */ React.createElement(Checkbox, { checked: showTimestamps, onChange: (v) => this.setState({ showTimestamps: v }) }, /* @__PURE__ */ React.createElement(Translation, { className: \"font-bold font-size-14\" }, \"Show timestamps\")), /* @__PURE__ */ React.createElement(Checkbox, { checked: autoRefresh, onChange: this.setAutoRefresh }, /* @__PURE__ */ React.createElement(Translation, { className: \"font-bold font-size-14\" }, \"Auto-refresh\"), \"(every\", refreshInterval / 1e3, \" s.)\"), /* @__PURE__ */ React.createElement(Dropdown, { trigger: /* @__PURE__ */ React.createElement(FaEllipsisV, null) }, /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(Menu.Item, null, /* @__PURE__ */ React.createElement(Checkbox, { checked: previous, onChange: (v) => this.setState({ previous: v }) }, /* @__PURE__ */ React.createElement(Translation, { className: \"font-bold font-size-14\" }, \"Show previous logs\")))))), /* @__PURE__ */ React.createElement(Loading, { visible: loading, inline: false }, /* @__PURE__ */ React.createElement(\"div\", { className: \"application-logs-wrapper margin-top-15\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"logBox\" }, logs.map((line) => {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"logLine\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"content\" }, /* @__PURE__ */ React.createElement(If, { condition: showTimestamps }, momentDate(line.timestamp), \" | \", /* @__PURE__ */ React.createElement(Ansi, null, line.content)), /* @__PURE__ */ React.createElement(If, { condition: !showTimestamps }, /* @__PURE__ */ React.createElement(Ansi, { linkify: true }, line.content))));\n })), /* @__PURE__ */ React.createElement(Row, { style: { width: \"100%\" }, className: \"margin-top-15\" }, /* @__PURE__ */ React.createElement(Col, { span: 12 }, /* @__PURE__ */ React.createElement(\"span\", { style: { float: \"left\", marginLeft: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, { className: \"font-bold font-size-14\" }, \"Logs Date\"), \":\", /* @__PURE__ */ React.createElement(\n \"span\",\n {\n style: { marginLeft: \"8px\" },\n className: \"logDate font-bold font-size-14\",\n title: momentDate(info?.fromDate)\n },\n momentShortDate(info?.fromDate)\n ), \"~\", /* @__PURE__ */ React.createElement(\"span\", { className: \"logDate font-bold font-size-14\", title: momentDate(info?.toDate) }, momentShortDate(info?.toDate))))))));\n }\n}\nexport default ContainerLog;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Message, Grid, Select } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport querystring from \"query-string\";\nimport React, { Fragment } from \"react\";\nimport { listApplicationPods, listApplicationPodsDetails } from \"../../api/observation\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport LogContainer from \"./components/LogContainer\";\nlet ApplicationLog = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadApplicationStatus = async () => {\n const { appName, envName } = this.state;\n if (envName) {\n this.props.dispatch({\n type: \"application/getApplicationStatus\",\n payload: { appName, envName },\n callback: () => {\n this.loadPodInstance();\n }\n });\n }\n };\n this.loadPodInstance = async () => {\n const { envbinding } = this.props;\n const { appName, envName, activeComponentName } = this.state;\n const envs = envbinding.filter((item) => item.name === envName);\n if (envs.length > 0 && envs[0]) {\n const param = {\n appName: envs[0].appDeployName || appName,\n appNs: envs[0].appDeployNamespace,\n componentName: activeComponentName,\n cluster: \"\",\n clusterNs: \"\"\n };\n listApplicationPods(param).then((res) => {\n if (res && res.podList && res.podList.length > 0) {\n this.setState(\n {\n podList: res.podList,\n activePodName: \"\"\n },\n () => {\n const query = querystring.parse(location.search);\n if (query && query.pod) {\n this.handlePodNameChange(query.pod);\n } else {\n this.handlePodNameChange(res.podList[0].metadata.name);\n }\n }\n );\n } else {\n this.setState({\n podList: []\n });\n }\n }).catch(() => {\n });\n }\n };\n this.loadPodDetail = async () => {\n const { pod } = this.state;\n if (pod) {\n listApplicationPodsDetails({\n name: pod?.metadata.name || \"\",\n namespace: pod?.metadata.namespace || \"\",\n cluster: pod?.cluster || \"\"\n }).then((res) => {\n if (res && res.error) {\n Message.warning(res.error);\n } else if (res) {\n const activeContainerName = res.containers?.[0] && res.containers[0]?.name || \"\";\n this.setState(\n {\n containers: res.containers\n },\n () => {\n this.handleContainerNameChange(activeContainerName);\n }\n );\n }\n }).catch(() => {\n });\n }\n };\n this.handleComponentNameChange = (value) => {\n this.setState({ activeComponentName: value, activePodName: \"\", activeContainerName: \"\" }, () => {\n this.loadPodInstance();\n });\n };\n this.handlePodNameChange = (value) => {\n const { podList } = this.state;\n const findPod = (podList || []).filter((item) => item.metadata.name === value);\n this.setState(\n {\n activePodName: value,\n activeContainerName: \"\",\n pod: findPod[0] || {},\n isActiveContainerNameDisabled: false\n },\n () => {\n this.loadPodDetail();\n }\n );\n };\n this.handleContainerNameChange = (value) => {\n this.setState({ activeContainerName: value });\n };\n this.getComponentNameList = () => {\n const { components } = this.props;\n return components?.map((c) => {\n return { label: c.alias || c.name, value: c.name };\n });\n };\n this.getPodNameList = () => {\n const { podList, activeComponentName } = this.state;\n if (podList && podList.length != 0) {\n const podNameList = [];\n podList.forEach((item) => {\n if (item.metadata && item.metadata.name) {\n if (!activeComponentName || item.component == activeComponentName) {\n podNameList.push(item.metadata.name);\n }\n }\n });\n return podNameList;\n } else {\n return [];\n }\n };\n this.getContainerNameList = () => {\n const { containers } = this.state;\n if (containers && containers.length != 0) {\n const containersNameList = [];\n containers.forEach((item) => {\n if (item) {\n containersNameList.push(item.name);\n }\n });\n return containersNameList;\n } else {\n return [];\n }\n };\n const { params } = props.match;\n this.state = {\n appName: params.appName,\n envName: params.envName,\n podList: [],\n activeComponentName: \"\",\n activePodName: \"\",\n activeContainerName: \"\",\n isActiveContainerNameDisabled: true\n };\n }\n componentDidMount() {\n this.loadApplicationStatus();\n }\n componentWillReceiveProps(nextProps) {\n const { params } = nextProps.match;\n if (params.envName !== this.state.envName || this.props.envbinding != nextProps.envbinding) {\n this.setState({ envName: params.envName }, () => {\n this.loadApplicationStatus();\n });\n }\n }\n render() {\n const { Row, Col } = Grid;\n const { pod, activePodName, activeContainerName, activeComponentName, isActiveContainerNameDisabled } = this.state;\n const podLabel = /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Pod\"), \":\");\n const containerLabel = /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Container\"), \":\");\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: \"4\" }, /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Select Component\").toString(),\n label: i18n.t(\"Component\").toString(),\n dataSource: this.getComponentNameList(),\n value: activeComponentName,\n onChange: this.handleComponentNameChange\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: \"4\", className: \"margin-left-10\" }, /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Select Pod\").toString(),\n label: podLabel,\n dataSource: this.getPodNameList(),\n value: activePodName,\n onChange: this.handlePodNameChange\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: \"4\", className: \"margin-left-10\" }, /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Select Container\").toString(),\n label: containerLabel,\n dataSource: this.getContainerNameList(),\n value: activeContainerName,\n onChange: this.handleContainerNameChange,\n disabled: isActiveContainerNameDisabled\n }\n ))), /* @__PURE__ */ React.createElement(LogContainer, { pod, activeContainerName }));\n }\n};\nApplicationLog = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], ApplicationLog);\nexport default ApplicationLog;\n","\"use strict\";\nimport { Button, Message } from \"@alifd/next\";\nimport * as React from \"react\";\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\nimport { detailRevision } from \"../../../../api/application\";\nimport DefinitionCode from \"../../../../components/DefinitionCode\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport Empty from \"../../../../components/Empty\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nfunction loadRevisionDetail(appName, revision, setDetail) {\n detailRevision({\n appName,\n revision: revision.version\n }).then((res) => {\n if (res) {\n setDetail(res);\n } else {\n setDetail(null);\n }\n });\n}\nexport function nodeKey(resource, sep = \"-\") {\n return [resource.cluster || \"\", resource.kind || \"\", resource.namespace, resource.name].join(sep);\n}\nexport const ShowRevision = (props) => {\n const [detail, setDetail] = React.useState();\n React.useEffect(() => {\n loadRevisionDetail(props.appName, props.revision, setDetail);\n }, [props.appName, props.revision]);\n const containerId = props.revision.version + \"detail\";\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: `${props.appName}-${props.revision.version}`,\n placement: \"right\",\n width: 600,\n onClose: props.onClose,\n extButtons: /* @__PURE__ */ React.createElement(\n CopyToClipboard,\n {\n text: detail?.applyAppConfig || \"\",\n onCopy: () => {\n Message.success(i18n.t(\"The application configuration copied successfully\"));\n }\n },\n /* @__PURE__ */ React.createElement(Button, null, /* @__PURE__ */ React.createElement(Translation, null, \"Copy\"))\n )\n },\n /* @__PURE__ */ React.createElement(If, { condition: detail }, /* @__PURE__ */ React.createElement(\"div\", { id: containerId, style: { height: \"calc(100vh - 100px)\" } }, /* @__PURE__ */ React.createElement(\n DefinitionCode,\n {\n id: containerId + \"content\",\n containerId,\n language: \"yaml\",\n readOnly: true,\n value: detail?.applyAppConfig\n }\n ))),\n /* @__PURE__ */ React.createElement(If, { condition: !detail }, /* @__PURE__ */ React.createElement(Empty, { message: \"Loading the revision\" }))\n ));\n};\n","\"use strict\";\nimport { Grid, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport i18n from \"../../../../i18n\";\nimport { locale } from \"../../../../utils/locale\";\nclass Header extends React.Component {\n constructor(props) {\n super(props);\n this.transEnvBind = () => {\n };\n this.state = {\n envValue: \"\",\n statusValue: \"\"\n };\n this.handleChangeEnv = this.handleChangeEnv.bind(this);\n this.handleChangeStatus = this.handleChangeStatus.bind(this);\n }\n handleChangeEnv(value) {\n this.setState({ envValue: value });\n this.props.updateQuery({ isChangeEnv: true, value });\n }\n handleChangeStatus(value) {\n this.setState({ statusValue: value });\n this.props.updateQuery({ isChangeStatus: true, value });\n }\n render() {\n const { Row, Col } = Grid;\n const envPlaceholder = i18n.t(\"Select Environment\").toString();\n const statusPlaceholder = i18n.t(\"Select Status\").toString();\n const { envValue, statusValue } = this.state;\n const { statusList, envBinding } = this.props;\n const envBinds = (envBinding || []).map((item) => ({\n label: item.alias || item.name,\n value: item.name\n }));\n return /* @__PURE__ */ React.createElement(Row, { className: \"border-radius-8\" }, /* @__PURE__ */ React.createElement(Col, { span: \"6\", style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n onChange: this.handleChangeEnv,\n dataSource: envBinds,\n placeholder: envPlaceholder,\n className: \"item\",\n hasClear: true,\n value: envValue\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: \"6\", style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n onChange: this.handleChangeStatus,\n dataSource: statusList,\n placeholder: statusPlaceholder,\n className: \"item\",\n hasClear: true,\n value: statusValue\n }\n )));\n }\n}\nexport default Header;\n","\"use strict\";\nimport React from \"react\";\nimport { Translation } from \"../../../../components/Translation\";\nconst Empty = function() {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"h4\", null, /* @__PURE__ */ React.createElement(Translation, null, \"No version record\")), /* @__PURE__ */ React.createElement(\"p\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Your version record will be displayed here after release\")));\n};\nexport default Empty;\n","\"use strict\";\nexport const statusList = [\n { label: \"Init\", value: \"init\" },\n { label: \"Running\", value: \"running\" },\n { label: \"Complete\", value: \"complete\" },\n { label: \"Failure\", value: \"failure\" },\n { label: \"Terminated\", value: \"terminated\" },\n { label: \"Rollback\", value: \"rollback\" }\n];\n","\"use strict\";\nimport { Balloon, Button, Dialog, Dropdown, Menu, Message, Table } from \"@alifd/next\";\nimport Empty from \"../Empty\";\nimport { Link, routerRedux } from \"dva/router\";\nimport React, { Component } from \"react\";\nimport \"./index.less\";\nimport { compareApplication, rollbackWithRevision } from \"../../../../api/application\";\nimport { ApplicationDiff } from \"../../../../components/ApplicationDiff\";\nimport { If } from \"../../../../components/If\";\nimport Item from \"../../../../components/Item\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { momentDate, showAlias } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { statusList } from \"../../constants\";\nclass TableList extends Component {\n constructor(props) {\n super(props);\n this.onRollback = (record, ok) => {\n const { applicationDetail, dispatch } = this.props;\n if (record.status === \"terminated\" && !ok) {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"This revision status is terminated, are you sure to rollback to this revision?\"),\n onOk: () => {\n this.onRollback(record, true);\n },\n locale: locale().Dialog\n });\n return;\n }\n if (applicationDetail) {\n rollbackWithRevision({ appName: applicationDetail?.name, revision: record.version }).then(\n (res) => {\n if (res) {\n Message.success(\"Application rollback successfully\");\n if (res.record && res.record.name && dispatch) {\n dispatch(\n routerRedux.push(\n `/applications/${applicationDetail.name}/envbinding/${record.envName}/workflow/records/${res.record.name}`\n )\n );\n }\n }\n }\n );\n }\n };\n this.loadChanges = (revision, mode) => {\n const { applicationDetail } = this.props;\n if (!revision || !applicationDetail) {\n this.setState({ compare: void 0 });\n return;\n }\n let params = {\n compareRevisionWithLatest: { revision: revision.version }\n };\n if (mode === \"cluster\") {\n params = {\n compareRevisionWithRunning: { revision: revision.version }\n };\n }\n compareApplication(applicationDetail?.name, params).then((res) => {\n this.setState({\n revision,\n compare: res,\n visibleApplicationDiff: true,\n diffMode: mode\n });\n });\n };\n this.getColumns = () => {\n const { applicationDetail } = this.props;\n return [\n {\n key: \"version\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Revision\"),\n dataIndex: \"version\",\n cell: (v, i, record) => {\n if (record.codeInfo) {\n return /* @__PURE__ */ React.createElement(Balloon, { style: { width: \"220px\" }, trigger: /* @__PURE__ */ React.createElement(\"a\", null, v) }, /* @__PURE__ */ React.createElement(\n Item,\n {\n label: \"Commit\",\n value: /* @__PURE__ */ React.createElement(\"a\", { title: record.codeInfo.commit }, record.codeInfo.commit?.slice(0, 7))\n }\n ), /* @__PURE__ */ React.createElement(Item, { label: \"Branch\", value: record.codeInfo.branch }), /* @__PURE__ */ React.createElement(Item, { label: \"User\", value: record.codeInfo.user }));\n }\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"deployUser\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Deploy User\"),\n dataIndex: \"deployUser\",\n cell: (v) => {\n return showAlias(v.name, v.alias);\n }\n },\n {\n key: \"status\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Status\"),\n dataIndex: \"status\",\n cell: (v, i, record) => {\n const findObj = statusList.find((item) => item.value === v);\n if (findObj) {\n const show = /* @__PURE__ */ React.createElement(\"div\", null, v === \"failure\" && /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-failure\" }), v === \"terminated\" && /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-warning\" }), v === \"complete\" && /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-success\" }), /* @__PURE__ */ React.createElement(Translation, null, findObj.label));\n if (record.reason) {\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: show }, record.reason);\n }\n return show;\n }\n return \"\";\n }\n },\n {\n key: \"triggerType\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Trigger Type\"),\n dataIndex: \"triggerType\"\n },\n {\n key: \"createTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Publish Time\"),\n dataIndex: \"createTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v && momentDate(v));\n }\n },\n {\n key: \"envName\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Environment\"),\n dataIndex: \"envName\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${applicationDetail && applicationDetail.name}/envbinding/${v}/status` }, v));\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: applicationDetail?.project?.name,\n request: {\n resource: `project:${applicationDetail?.project?.name}/application:${applicationDetail?.name}`,\n action: \"detail\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.props.onShowAppModel(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Detail\")\n )\n ), /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" }), /* @__PURE__ */ React.createElement(\n Dropdown,\n {\n trigger: /* @__PURE__ */ React.createElement(Button, { text: true, size: \"medium\", component: \"a\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Diff\"))\n },\n /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(\n Menu.Item,\n {\n onClick: () => {\n this.loadChanges(record, \"cluster\");\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Diff With Deployed Application\")\n ), /* @__PURE__ */ React.createElement(\n Menu.Item,\n {\n onClick: () => {\n this.loadChanges(record, \"latest\");\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Diff With Latest Configuration\")\n ))\n ), /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" }), /* @__PURE__ */ React.createElement(If, { condition: record.status === \"complete\" || record.status == \"terminated\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: applicationDetail?.project?.name,\n request: {\n resource: `project:${applicationDetail?.project?.name}/application:${applicationDetail?.name}/revision:${record.version}`,\n action: \"rollback\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onRollback(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Rollback\")\n )\n )));\n }\n }\n ];\n };\n this.state = {\n diffMode: \"latest\",\n visibleApplicationDiff: false\n };\n }\n render() {\n const { Column } = Table;\n const columns = this.getColumns();\n const { list } = this.props;\n const { visibleApplicationDiff, compare, diffMode, revision } = this.state;\n const baseName = \"Current Revision\";\n let targetName = \"Latest Application Configuration\";\n if (diffMode == \"cluster\") {\n targetName = \"Deployed Application\";\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"table-version-list margin-top-20\", style: { overflow: \"auto\" } }, /* @__PURE__ */ React.createElement(\n Table,\n {\n locale: locale().Table,\n primaryKey: \"version\",\n style: { minWidth: \"1000px\" },\n className: \"customTable\",\n rowHeight: 40,\n dataSource: list,\n loading: false,\n emptyContent: /* @__PURE__ */ React.createElement(Empty, null)\n },\n columns.map((col) => /* @__PURE__ */ React.createElement(Column, { ...col, key: col.key, align: \"left\" }))\n ), /* @__PURE__ */ React.createElement(If, { condition: visibleApplicationDiff }, compare && /* @__PURE__ */ React.createElement(\n ApplicationDiff,\n {\n onClose: () => {\n this.setState({\n visibleApplicationDiff: false,\n compare: void 0,\n revision: void 0\n });\n },\n rollback2Revision: diffMode === \"cluster\" && revision ? () => {\n this.onRollback(revision);\n } : void 0,\n baseName,\n targetName,\n compare\n }\n )));\n }\n}\nexport default TableList;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Pagination } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport { listRevisions } from \"../../api/application\";\nimport { If } from \"../../components/If\";\nimport { locale } from \"../../utils/locale\";\nimport { ShowRevision } from \"./components/Detail\";\nimport Header from \"./components/Header\";\nimport TableList from \"./components/List\";\nimport { statusList } from \"./constants\";\nimport \"./index.less\";\nlet ApplicationRevisionList = class extends React.Component {\n constructor(props) {\n super(props);\n this.getRevisionList = async () => {\n const { appName, page, pageSize, envName, status } = this.state;\n const params = {\n appName,\n envName,\n status,\n page,\n pageSize\n };\n listRevisions(params).then((res) => {\n if (res) {\n this.setState({\n revisionsList: res.revisions || [],\n revisionsListTotal: res.total || 0\n });\n }\n });\n };\n this.updateQuery = (updateQuery) => {\n const { isChangeEnv, isChangeStatus, value } = updateQuery;\n if (isChangeEnv) {\n this.setState({ envName: value }, () => {\n this.getRevisionList();\n });\n } else if (isChangeStatus) {\n this.setState({ status: value }, () => {\n this.getRevisionList();\n });\n }\n };\n this.handleChange = (page) => {\n this.setState(\n {\n page\n },\n () => {\n this.getRevisionList();\n }\n );\n };\n this.showAppModel = (revision) => {\n this.setState({ showAppRevision: true, revision });\n };\n const { params } = props.match;\n this.state = {\n appName: params.appName,\n page: 1,\n pageSize: 10,\n envName: \"\",\n status: \"\",\n revisionsList: [],\n revisionsListTotal: 0,\n showAppRevision: false\n };\n }\n componentDidMount() {\n this.getRevisionList();\n }\n render() {\n const { revisionsList, showAppRevision, revision, appName } = this.state;\n const { envbinding, applicationDetail, dispatch } = this.props;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Header,\n {\n envBinding: envbinding,\n statusList,\n updateQuery: (params) => {\n this.updateQuery(params);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n TableList,\n {\n applicationDetail,\n list: revisionsList,\n onShowAppModel: this.showAppModel,\n getRevisionList: this.getRevisionList,\n dispatch\n }\n ), /* @__PURE__ */ React.createElement(\n Pagination,\n {\n locale: locale().Pagination,\n className: \"revision-pagination text-align-right\",\n total: this.state.revisionsListTotal,\n pageSize: this.state.pageSize,\n current: this.state.page,\n onChange: this.handleChange\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: showAppRevision }, revision && /* @__PURE__ */ React.createElement(\n ShowRevision,\n {\n onClose: () => {\n this.setState({ showAppRevision: false, revision: void 0 });\n },\n appName,\n revision\n }\n )));\n }\n};\nApplicationRevisionList = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], ApplicationRevisionList);\nexport default ApplicationRevisionList;\n","\"use strict\";\nimport * as React from \"react\";\nimport cRole from \"../../assets/resources/c-role.svg\";\nimport cm from \"../../assets/resources/cm.svg\";\nimport crb from \"../../assets/resources/crb.svg\";\nimport crd from \"../../assets/resources/crd.svg\";\nimport cronjob from \"../../assets/resources/cronjob.svg\";\nimport deploy from \"../../assets/resources/deploy.svg\";\nimport ds from \"../../assets/resources/ds.svg\";\nimport ep from \"../../assets/resources/ep.svg\";\nimport group from \"../../assets/resources/group.svg\";\nimport hpa from \"../../assets/resources/hpa.svg\";\nimport ing from \"../../assets/resources/ing.svg\";\nimport job from \"../../assets/resources/job.svg\";\nimport limits from \"../../assets/resources/limits.svg\";\nimport netpol from \"../../assets/resources/netpol.svg\";\nimport ns from \"../../assets/resources/ns.svg\";\nimport psp from \"../../assets/resources/psp.svg\";\nimport pv from \"../../assets/resources/pv.svg\";\nimport pvc from \"../../assets/resources/pvc.svg\";\nimport quota from \"../../assets/resources/quota.svg\";\nimport rb from \"../../assets/resources/rb.svg\";\nimport role from \"../../assets/resources/role.svg\";\nimport rs from \"../../assets/resources/rs.svg\";\nimport sa from \"../../assets/resources/sa.svg\";\nimport sc from \"../../assets/resources/sc.svg\";\nimport secret from \"../../assets/resources/secret.svg\";\nimport sts from \"../../assets/resources/sts.svg\";\nimport svc from \"../../assets/resources/svc.svg\";\nimport user from \"../../assets/resources/user.svg\";\nimport vol from \"../../assets/resources/vol.svg\";\nexport function describeNode(node) {\n const lines = [\n `Kind: ${node.resource.kind}`,\n `Namespace: ${node.resource.namespace || \"(global)\"}`,\n `Name: ${node.resource.name}`\n ];\n if (node.resource.healthStatus?.statusCode) {\n let statue = `Status: ${node.resource.healthStatus?.statusCode}`;\n if (node.resource.kind === \"Pod\") {\n statue = statue + `(${node.resource.additionalInfo?.Status})`;\n }\n lines.push(statue);\n }\n if (node.resource.healthStatus?.message) {\n lines.push(`Message: ${node.resource.healthStatus?.message}`);\n }\n if (node.resource.healthStatus?.reason) {\n lines.push(`Reason: ${node.resource.healthStatus?.reason}`);\n }\n if (node.resource.kind === \"Service\" && node.resource.additionalInfo?.EIP) {\n lines.push(`EIP: ${node.resource.additionalInfo?.EIP}`);\n }\n if (node.resource.kind === \"Pod\") {\n lines.push(`Age: ${node.resource.additionalInfo?.Age}`);\n lines.push(`Ready: ${node.resource.additionalInfo?.Ready}`);\n lines.push(`Restarts: ${node.resource.additionalInfo?.Restarts}`);\n }\n return lines;\n}\nexport function describeCluster(node) {\n const lines = [`Cluster: ${node.resource.name}`];\n return lines;\n}\nexport function describeTarget(node) {\n const info = node.resource.name.split(\"/\");\n if (info.length > 1) {\n const lines = [`Cluster: ${info[0]}`, `Namespace: ${info[1]}`];\n return lines;\n }\n return [`Cluster: ${node.resource.name}`];\n}\nexport function describeComponents(node) {\n const lines = [\n `Name: ${node.resource.name}`,\n `Alias: ${node.resource.component?.alias}`,\n `Type: ${node.resource.component?.componentType}`,\n `DependsOn: ${node.resource.component?.dependsOn || []}`,\n `Namespace: ${node.resource?.namespace}`,\n `Cluster: ${node.resource.service?.cluster || \"local\"}`\n ];\n if (node.resource.service?.message) {\n lines.push(`Message: ${node.resource.service?.message}`);\n }\n return lines;\n}\nexport function treeNodeKey(node) {\n if (node.uid && node.uid.length > 0) {\n return node.uid;\n }\n return nodeKey(node);\n}\nexport function nodeKey(node) {\n return [\n node.resource.cluster,\n node.resource.apiVersion,\n node.resource.kind,\n node.resource.namespace,\n node.resource.name\n ].join(\"/\");\n}\nexport function getGraphSize(nodes) {\n let width = 0;\n let height = 0;\n nodes.forEach((node) => {\n width = Math.max(node.x || 0 + node.width, width);\n height = Math.max(node.y || 0 + node.height, height);\n });\n return { width, height };\n}\nexport function getNodeSize(node) {\n let width = 220;\n let height = 40;\n if (node.nodeType == \"cluster\") {\n width = 140;\n height = 40;\n }\n if (node.nodeType == \"target\") {\n width = 200;\n height = 40;\n }\n if (node.nodeType == \"app\") {\n width = 180;\n height = 40;\n }\n if (node.nodeType == \"pod\") {\n width = 220;\n height = 60;\n }\n if (node.nodeType == \"component\") {\n width = 320;\n height = 40;\n }\n return { width, height };\n}\nconst resourceIcons = /* @__PURE__ */ new Map([\n [\"ClusterRole\", cRole],\n [\"ConfigMap\", cm],\n [\"ClusterRoleBinding\", crb],\n [\"CustomResourceDefinition\", crd],\n [\"CronJob\", cronjob],\n [\"Deployment\", deploy],\n [\"DaemonSet\", ds],\n [\"Endpoint\", ep],\n [\"Endpoints\", ep],\n [\"Group\", group],\n [\"HorizontalPodAutoscaler\", hpa],\n [\"Ingress\", ing],\n [\"Job\", job],\n [\"LimitRange\", limits],\n [\"NetworkPolicy\", netpol],\n [\"Namespace\", ns],\n [\"PodSecurityPolicy\", psp],\n [\"PersistentVolume\", pv],\n [\"PersistentVolumeClaim\", pvc],\n [\"Quote\", quota],\n [\"RoleBinding\", rb],\n [\"Role\", role],\n [\"ReplicaSet\", rs],\n [\"ServiceAccount\", sa],\n [\"StorageClass\", sc],\n [\"Secret\", secret],\n [\"StatefulSet\", sts],\n [\"Service\", svc],\n [\"User\", user],\n [\"Volume\", vol]\n]);\nexport const ResourceIcon = ({\n kind,\n customStyle\n}) => {\n const svgName = resourceIcons.get(kind);\n if (svgName) {\n return /* @__PURE__ */ React.createElement(\"img\", { title: kind, src: svgName });\n }\n const initials = kind.replace(/[a-z]/g, \"\");\n const n = initials.length;\n const style = {\n display: \"inline-block\",\n verticalAlign: \"middle\",\n overflow: \"hidden\",\n padding: `${n <= 2 ? 2 : 0}px 4px`,\n width: \"32px\",\n height: \"32px\",\n borderRadius: \"50%\",\n backgroundColor: \"#1b58f4\",\n textAlign: \"center\",\n lineHeight: \"30px\",\n ...customStyle\n };\n return /* @__PURE__ */ React.createElement(\"div\", { style }, /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"white\", fontSize: `${n <= 2 ? 1 : 0.6}em` } }, initials));\n};\n","\"use strict\";\nimport { Balloon, Tag } from \"@alifd/next\";\nimport classNames from \"classnames\";\nimport * as dagre from \"dagre\";\nimport React, { useState } from \"react\";\nimport { Translation } from \"../Translation\";\nimport { describeComponents, getGraphSize, ResourceIcon } from \"./utils\";\nimport \"./component-node.less\";\nimport { If } from \"../If\";\nfunction renderTraitTree(traits) {\n const graph = new dagre.graphlib.Graph();\n graph.setGraph({\n nodesep: 20,\n rankdir: \"TB\",\n align: \"UL\",\n ranksep: 26,\n compound: true\n });\n graph.setNode(\"graph-trait-start\", {\n width: 5,\n height: 40,\n x: 0,\n y: 0\n });\n traits.map((trait) => {\n graph.setEdge(\"graph-trait-start\", trait.type, {});\n graph.setNode(trait.type, {\n trait,\n width: 130,\n height: 30,\n x: 0,\n y: 0\n });\n });\n dagre.layout(graph);\n const edges = [];\n graph.edges().forEach((edgeInfo) => {\n const edge = graph.edge(edgeInfo);\n const lines = [];\n if (edge.points && edge.points.length > 1) {\n for (let i = 1; i < edge.points.length; i++) {\n lines.push({\n x1: edge.points[i - 1].x,\n y1: edge.points[i - 1].y - 14,\n x2: edge.points[i].x,\n y2: edge.points[i].y - 14\n });\n }\n }\n edges.push({\n from: edgeInfo.v,\n to: edgeInfo.w,\n lines\n });\n });\n const size = getGraphSize(graph.nodes().map((key) => graph.node(key)));\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"trait-graph\",\n style: {\n width: size.width,\n height: size.height,\n left: 190,\n transformOrigin: \"0% 0%\",\n transform: `scale(${1})`\n }\n },\n graph.nodes().map((key) => {\n if (key === \"graph-trait-start\") {\n return;\n }\n const { trait, x, y, width, height } = graph.node(key);\n if (!trait) {\n return;\n }\n const label = trait.type;\n const traitNode = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key,\n id: label,\n className: classNames(\"graph-node\", \"trait-node\"),\n style: {\n left: x + 22,\n top: y - 10,\n width,\n height,\n transform: `translate(-60px, 0px)`\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"trait\") }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n \"span\",\n {\n className: classNames(\"circle\", {\n \"circle-success\": trait.healthy,\n \"circle-failure\": !trait.healthy\n })\n }\n ), label))\n );\n if (trait.message) {\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: traitNode }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"p\", { className: \"line\" }, `Message: ${trait.message}`)));\n }\n return traitNode;\n }),\n edges.map((edge) => /* @__PURE__ */ React.createElement(\"div\", { key: `${edge.from}-${edge.to}`, className: \"graph-edge\" }, edge.lines.map((line) => {\n const distance = Math.sqrt(Math.pow(line.x1 - line.x2, 2) + Math.pow(line.y1 - line.y2, 2));\n const xMid = (line.x1 + line.x2) / 2;\n const yMid = (line.y1 + line.y2) / 2;\n const angle = Math.atan2(line.y1 - line.y2, line.x1 - line.x2) * 180 / Math.PI;\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"graph-edge-line\",\n key: \"line\" + line.x2 + line.y2,\n style: {\n width: distance,\n left: xMid - distance / 2,\n top: yMid,\n transform: `translate(40px, 30px) rotate(${angle}deg)`\n }\n }\n );\n })))\n );\n}\nexport const ComponentNode = (props) => {\n const { node } = props;\n const traits = node.resource.service?.traits || [];\n const [showTrait, setShowTrait] = useState(props.showTrait);\n const WithBalloon = (graphNode2) => {\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: graphNode2 }, /* @__PURE__ */ React.createElement(\"div\", null, describeComponents(node).map((line) => {\n return /* @__PURE__ */ React.createElement(\"p\", { className: \"line\" }, line);\n })));\n };\n const graphNode = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\"graph-node\", \"graph-node-resource\", {\n \"warning-status\": !node.resource.service?.healthy\n }),\n style: {\n // 50 = (nodeWidth - 220)/2\n left: node.x - 50,\n top: node.y,\n width: node.width,\n height: node.height,\n transform: `translate(-80px, 0px)`\n }\n },\n WithBalloon(\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"icon\") }, /* @__PURE__ */ React.createElement(ResourceIcon, { kind: node.resource.component?.componentType.substring(0, 1).toUpperCase() || \"\" }))\n ),\n WithBalloon(\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"name\") }, /* @__PURE__ */ React.createElement(\"div\", null, node.resource.name), /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"healthy\", { success: node.resource.service?.healthy }) }, /* @__PURE__ */ React.createElement(If, { condition: node.resource.service?.healthy }, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-success\" }), /* @__PURE__ */ React.createElement(Translation, null, \"Healthy\")), /* @__PURE__ */ React.createElement(If, { condition: !node.resource.service?.healthy }, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-warning\" }), /* @__PURE__ */ React.createElement(Translation, null, \"UnHealthy\"))))\n ),\n /* @__PURE__ */ React.createElement(If, { condition: traits.length > 0 }, /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"label-traits\") }, traits && traits.length > 0 && traits[0] && /* @__PURE__ */ React.createElement(Tag, { animation: true }, /* @__PURE__ */ React.createElement(\n \"span\",\n {\n className: classNames(\"circle\", {\n \"circle-success\": traits[0].healthy,\n \"circle-failure\": !traits[0].healthy\n })\n }\n ), traits[0].type), /* @__PURE__ */ React.createElement(If, { condition: traits?.length > 1 }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\"trait-num\", { active: showTrait }),\n color: \"blue\",\n style: { marginLeft: \"8px\" },\n onClick: () => setShowTrait(!showTrait)\n },\n traits?.length > 1 && \"+\" + (traits?.length - 1)\n )))),\n traits.length > 1 && showTrait && renderTraitTree(traits)\n );\n return graphNode;\n};\n","\"use strict\";\nimport * as dagre from \"dagre\";\nimport * as React from \"react\";\nimport \"dagre-compound\";\nimport kubevela from \"../../assets/KubeVela-01.svg\";\nimport kubernetes from \"../../assets/kubernetes.svg\";\nimport pod from \"../../assets/resources/pod.svg\";\nimport i18n from \"../../i18n\";\nimport \"./index.less\";\nimport classNames from \"classnames\";\nimport { If } from \"../If\";\nimport { ComponentNode } from \"./component-node\";\nimport {\n describeNode,\n describeCluster,\n treeNodeKey,\n getGraphSize,\n getNodeSize,\n ResourceIcon,\n describeTarget\n} from \"./utils\";\nimport { Link } from \"dva/router\";\nimport { Dropdown, Menu, Tag, Balloon } from \"@alifd/next\";\nimport { FaEllipsisV } from \"react-icons/fa\";\nimport { HiOutlineNewspaper } from \"react-icons/hi\";\nfunction renderResourceNode(props, id, node) {\n const graphNode = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: id,\n className: classNames(\"graph-node\", \"graph-node-resource\", {\n \"error-status\": node.resource.healthStatus?.statusCode == \"UnHealthy\",\n \"warning-status\": node.resource.healthStatus?.statusCode == \"Progressing\"\n }),\n style: {\n left: node.x,\n top: node.y,\n width: node.width,\n height: node.height,\n transform: `translate(-80px, 0px)`\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"icon\") }, /* @__PURE__ */ React.createElement(ResourceIcon, { kind: node.resource.kind || \"\" })),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"name\") }, /* @__PURE__ */ React.createElement(\"div\", null, node.resource.name), /* @__PURE__ */ React.createElement(\"div\", { className: \"kind\" }, node.resource.kind)),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"actions\") }, /* @__PURE__ */ React.createElement(Dropdown, { trigger: /* @__PURE__ */ React.createElement(FaEllipsisV, null) }, /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(Menu.Item, { onClick: () => props.onResourceDetailClick(node.resource) }, \"Detail\")))),\n /* @__PURE__ */ React.createElement(If, { condition: node.resource.kind === \"Service\" && node.resource.additionalInfo?.EIP }, /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"additional\") }, /* @__PURE__ */ React.createElement(Tag, { size: \"small\", color: \"orange\" }, \"EIP: \", node.resource.additionalInfo?.EIP)))\n );\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: graphNode }, /* @__PURE__ */ React.createElement(\"div\", null, describeNode(node).map((line) => {\n return /* @__PURE__ */ React.createElement(\"p\", { className: \"line\" }, line);\n })));\n}\nfunction renderAppNode(props, id, node) {\n const graphNode = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: id,\n className: classNames(\"graph-node\", \"graph-node-app\"),\n style: {\n left: node.x,\n top: node.y,\n width: node.width,\n height: node.height,\n transform: `translate(-60px, 0px)`\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"icon\") }, /* @__PURE__ */ React.createElement(\"img\", { src: kubevela })),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"name\") }, /* @__PURE__ */ React.createElement(\"span\", null, node.resource.name)),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"actions\") }, /* @__PURE__ */ React.createElement(Dropdown, { trigger: /* @__PURE__ */ React.createElement(FaEllipsisV, null) }, /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(Menu.Item, { onClick: () => props.onResourceDetailClick(node.resource) }, \"Detail\"))))\n );\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: graphNode }, /* @__PURE__ */ React.createElement(\"div\", null, describeNode(node).map((line) => {\n return /* @__PURE__ */ React.createElement(\"p\", { className: \"line\" }, line);\n })));\n}\nfunction renderPodNode(props, id, node) {\n const { appName, envName } = props;\n const graphNode = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: id,\n className: classNames(\"graph-node\", \"graph-node-pod\", {\n \"error-status\": node.resource.healthStatus?.statusCode == \"UnHealthy\",\n \"warning-status\": node.resource.healthStatus?.statusCode == \"Progressing\"\n }),\n style: {\n left: node.x,\n top: node.y,\n width: node.width,\n height: node.height,\n transform: `translate(-80px, 0px)`\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"icon\") }, /* @__PURE__ */ React.createElement(\"img\", { src: pod }), /* @__PURE__ */ React.createElement(\"span\", null, \"Pod\")),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"name\") }, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${appName}/envbinding/${envName}/instances?pod=${node.resource.name}` }, node.resource.name), /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"actions\") }, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${appName}/envbinding/${envName}/logs?pod=${node.resource.name}` }, /* @__PURE__ */ React.createElement(HiOutlineNewspaper, { title: i18n.t(\"Logger\") })))),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"actions\") }, /* @__PURE__ */ React.createElement(Dropdown, { trigger: /* @__PURE__ */ React.createElement(FaEllipsisV, null) }, /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(Menu.Item, { onClick: () => props.onResourceDetailClick(node.resource) }, \"Detail\")))),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"additional\") }, /* @__PURE__ */ React.createElement(Tag, { size: \"small\", color: \"orange\" }, \"Ready: \", node.resource.additionalInfo?.Ready))\n );\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: graphNode }, /* @__PURE__ */ React.createElement(\"div\", null, describeNode(node).map((line) => {\n return /* @__PURE__ */ React.createElement(\"p\", { className: \"line\" }, line);\n })));\n}\nfunction renderClusterNode(props, id, node) {\n const graphNode = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\"graph-node\", \"graph-node-cluster\"),\n style: {\n left: node.x,\n top: node.y,\n width: node.width,\n height: node.height,\n transform: `translate(-40px, 0px)`\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"icon\" }, /* @__PURE__ */ React.createElement(\"img\", { src: kubernetes })),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"name\") }, /* @__PURE__ */ React.createElement(\"div\", null, node.resource.name), /* @__PURE__ */ React.createElement(\"div\", { className: \"kind\" }, \"Cluster\"))\n );\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: graphNode }, /* @__PURE__ */ React.createElement(\"div\", null, describeCluster(node).map((line) => {\n return /* @__PURE__ */ React.createElement(\"p\", { className: \"line\" }, line);\n })));\n}\nfunction renderTargetNode(props, id, node) {\n const graphNode = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\"graph-node\", \"graph-node-cluster\"),\n style: {\n left: node.x - 30,\n top: node.y,\n width: node.width,\n height: node.height,\n transform: `translate(-40px, 0px)`\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"icon\" }, /* @__PURE__ */ React.createElement(\"img\", { src: kubernetes })),\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"name\") }, /* @__PURE__ */ React.createElement(\"div\", null, node.resource.name), /* @__PURE__ */ React.createElement(\"div\", { className: \"kind\" }, \"Target\"))\n );\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: graphNode }, /* @__PURE__ */ React.createElement(\"div\", null, describeTarget(node).map((line) => {\n return /* @__PURE__ */ React.createElement(\"p\", { className: \"line\" }, line);\n })));\n}\nfunction setNode(graph, node) {\n const size = getNodeSize(node);\n graph.setNode(treeNodeKey(node), {\n ...node,\n width: size.width,\n height: size.height,\n x: 0,\n y: 0\n });\n node.leafNodes?.map((subNode) => {\n if (treeNodeKey(node) == treeNodeKey(subNode)) {\n return;\n }\n graph.setEdge(treeNodeKey(node), treeNodeKey(subNode), {});\n setNode(graph, subNode);\n });\n}\nexport const TreeGraph = (props) => {\n const graph = new dagre.graphlib.Graph();\n graph.setGraph({\n nodesep: props.nodesep,\n rankdir: \"LR\"\n });\n setNode(graph, props.node);\n dagre.layout(graph);\n const edges = [];\n graph.edges().forEach((edgeInfo) => {\n const edge = graph.edge(edgeInfo);\n const lines = [];\n if (edge.points && edge.points.length > 1) {\n for (let i = 1; i < edge.points.length; i++) {\n lines.push({\n x1: edge.points[i - 1].x,\n y1: edge.points[i - 1].y,\n x2: edge.points[i].x,\n y2: edge.points[i].y\n });\n }\n }\n edges.push({\n from: edgeInfo.v,\n to: edgeInfo.w,\n lines\n });\n });\n const graphNodes = graph.nodes();\n const size = getGraphSize(graphNodes.map((id) => graph.node(id)));\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"graph-tree\",\n style: {\n width: size.width + 500,\n height: size.height + 150,\n transformOrigin: \"0% 0%\",\n transform: `scale(${props.zoom})`\n }\n },\n graphNodes.map((key) => {\n const node = graph.node(key);\n const nodeType = node.nodeType;\n switch (nodeType) {\n case \"app\":\n return /* @__PURE__ */ React.createElement(React.Fragment, { key }, renderAppNode(props, key, node));\n case \"cluster\":\n return /* @__PURE__ */ React.createElement(React.Fragment, { key }, renderClusterNode(props, key, node));\n case \"target\":\n return /* @__PURE__ */ React.createElement(React.Fragment, { key }, renderTargetNode(props, key, node));\n case \"pod\":\n return /* @__PURE__ */ React.createElement(React.Fragment, { key }, renderPodNode(props, key, node));\n case \"component\":\n return /* @__PURE__ */ React.createElement(ComponentNode, { key, node, showTrait: true });\n default:\n return /* @__PURE__ */ React.createElement(React.Fragment, { key }, renderResourceNode(props, key, node));\n }\n }),\n edges.map((edge) => /* @__PURE__ */ React.createElement(\"div\", { key: `${edge.from}-${edge.to}`, className: \"graph-edge\" }, edge.lines.map((line) => {\n const distance = Math.sqrt(Math.pow(line.x1 - line.x2, 2) + Math.pow(line.y1 - line.y2, 2));\n const xMid = (line.x1 + line.x2) / 2;\n const yMid = (line.y1 + line.y2) / 2;\n const angle = Math.atan2(line.y1 - line.y2, line.x1 - line.x2) * 180 / Math.PI;\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"graph-edge-line\",\n key: \"line\" + line.x2 + line.y2,\n style: {\n width: distance,\n left: xMid - distance / 2,\n top: yMid,\n transform: `translate(40px, 30px) rotate(${angle}deg)`\n }\n }\n );\n })))\n );\n};\n","\"use strict\";\nimport * as yaml from \"js-yaml\";\nimport * as React from \"react\";\nimport { v4 as uuid } from \"uuid\";\nimport { detailResource } from \"../../../../api/observation\";\nimport DefinitionCode from \"../../../../components/DefinitionCode\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport Empty from \"../../../../components/Empty\";\nimport { If } from \"../../../../components/If\";\nfunction loadResource(resource, setResource) {\n if (resource.name && resource.kind && resource.apiVersion) {\n detailResource({\n name: resource.name,\n namespace: resource.namespace,\n kind: resource.kind,\n apiVersion: resource.apiVersion,\n cluster: resource.cluster || \"local\"\n }).then((res) => {\n if (res && res.resource) {\n delete res.resource.metadata.managedFields;\n setResource(res.resource);\n } else {\n setResource(null);\n }\n });\n }\n}\nexport function nodeKey(resource, sep = \"-\") {\n return [resource.cluster || \"\", resource.kind || \"\", resource.namespace, resource.name].join(sep);\n}\nexport const ShowResource = (props) => {\n const [resource, setResource] = React.useState();\n React.useEffect(() => {\n loadResource(props.resource, setResource);\n }, [props.resource]);\n const containerId = uuid();\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: nodeKey(props.resource, \"/\"),\n placement: \"right\",\n width: 600,\n onClose: props.onClose\n },\n /* @__PURE__ */ React.createElement(If, { condition: resource }, /* @__PURE__ */ React.createElement(\"div\", { id: containerId, style: { height: \"calc(100vh - 100px)\" } }, /* @__PURE__ */ React.createElement(\n DefinitionCode,\n {\n id: containerId + \"content\",\n containerId,\n language: \"yaml\",\n readOnly: true,\n value: yaml.dump(resource)\n }\n ))),\n /* @__PURE__ */ React.createElement(If, { condition: !resource }, /* @__PURE__ */ React.createElement(Empty, { message: \"Loading the resource\" }))\n ));\n};\n","\"use strict\";\nimport { Button } from \"@alifd/next\";\nimport React from \"react\";\nimport { TreeGraph } from \"../../../../components/TreeGraph\";\nimport { ShowResource } from \"./resource-show\";\nimport \"./index.less\";\nimport classNames from \"classnames\";\nimport { If } from \"../../../../components/If\";\nimport { IoMdAdd } from \"react-icons/io\";\nimport { AiOutlineMinus } from \"react-icons/ai\";\nclass ApplicationGraph extends React.Component {\n constructor(props) {\n super(props);\n this.onResourceDetailClick = (resource) => {\n this.setState({ showResource: true, resource });\n };\n this.state = {\n showResource: false,\n zoom: 1\n };\n }\n componentDidMount() {\n }\n convertNodeType(node) {\n switch (node.kind) {\n case \"Pod\":\n return \"pod\";\n case \"Component\":\n return \"component\";\n default:\n return \"resource\";\n }\n }\n convertNode(resources) {\n const tree = [];\n resources.map((res) => {\n const node = {\n resource: res,\n nodeType: this.convertNodeType(res)\n };\n if (res.leafNodes) {\n node.leafNodes = this.convertNode(res.leafNodes);\n }\n tree.push(node);\n });\n return tree;\n }\n convertComponentNode(service, component) {\n const node = {\n nodeType: \"component\",\n resource: {\n name: service.name,\n namespace: service.namespace,\n kind: \"Component\",\n component,\n cluster: service.cluster,\n service\n }\n };\n return node;\n }\n isLeafNode(componentName, component) {\n return component.dependsOn?.includes(componentName) || false;\n }\n // generate the component tree base the dependencies\n generateTree(tree, components) {\n tree.forEach((node) => {\n const nodeMap = /* @__PURE__ */ new Map();\n node.leafNodes?.map((ln) => {\n nodeMap.set(ln.resource.name, ln);\n });\n const deleteNode = [];\n node.leafNodes?.map((n) => {\n let isTop = true;\n components.map((c) => {\n if (this.isLeafNode(n.resource.name, c)) {\n const parentNode = nodeMap.get(c.name);\n if (parentNode && !parentNode.leafNodes) {\n parentNode.leafNodes = [n];\n } else if (parentNode && parentNode.leafNodes) {\n parentNode.leafNodes.push(n);\n }\n isTop = false;\n }\n });\n if (!isTop) {\n deleteNode.push(n.resource.name);\n }\n });\n node.leafNodes = node.leafNodes?.filter((n) => !deleteNode.includes(n.resource.name));\n });\n }\n buildClusterNode(resources, graphType) {\n const clusterTree = /* @__PURE__ */ new Map();\n if (graphType === \"resource-graph\") {\n resources.map((res) => {\n const cluster = res.cluster || \"local\";\n if (!clusterTree.get(cluster)) {\n clusterTree.set(cluster, { resource: { name: cluster }, nodeType: \"cluster\" });\n }\n const node = clusterTree.get(cluster);\n if (node) {\n if (res.resourceTree) {\n if (!node.leafNodes) {\n node.leafNodes = this.convertNode([res.resourceTree]);\n } else {\n node.leafNodes = node.leafNodes.concat(this.convertNode([res.resourceTree]));\n }\n }\n }\n });\n } else if (graphType === \"application-graph\") {\n const { applicationStatus, components } = this.props;\n const services = applicationStatus && applicationStatus.services || [];\n const componentMap = /* @__PURE__ */ new Map();\n components?.map((com) => {\n componentMap.set(com.name, com);\n });\n services.map((s) => {\n const cluster = s.cluster || \"local\";\n const namespace = s.namespace;\n const name = `${cluster}/${namespace}`;\n if (!clusterTree.get(name)) {\n clusterTree.set(name, { resource: { name }, nodeType: \"target\" });\n }\n const clusterNode = clusterTree.get(name);\n if (clusterNode) {\n const component = componentMap.get(s.name);\n if (!clusterNode.leafNodes) {\n clusterNode.leafNodes = [this.convertComponentNode(s, component)];\n } else {\n clusterNode.leafNodes = clusterNode.leafNodes.concat(this.convertComponentNode(s, component));\n }\n }\n });\n }\n const tree = [];\n clusterTree.forEach((value) => {\n tree.push(value);\n });\n return tree;\n }\n buildTree() {\n const { resources, env, application, graphType } = this.props;\n const root = {\n nodeType: \"app\",\n resource: {\n name: env?.appDeployName || application?.name || \"\",\n kind: \"Application\",\n apiVersion: \"core.oam.dev/v1beta1\",\n namespace: env?.appDeployNamespace || \"\"\n },\n leafNodes: this.buildClusterNode(resources, graphType)\n };\n return root;\n }\n render() {\n const { env, application, graphType } = this.props;\n const { showResource, resource, zoom } = this.state;\n const data = this.buildTree();\n return /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"graph-container\") }, /* @__PURE__ */ React.createElement(\"div\", { className: \"operation\" }, /* @__PURE__ */ React.createElement(Button.Group, null, /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.setState({ zoom: zoom - 0.1 });\n },\n type: \"secondary\",\n disabled: zoom <= 0.5\n },\n /* @__PURE__ */ React.createElement(AiOutlineMinus, null)\n ), /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.setState({ zoom: zoom + 0.1 });\n },\n disabled: zoom >= 2,\n type: \"secondary\"\n },\n /* @__PURE__ */ React.createElement(IoMdAdd, null)\n ))), /* @__PURE__ */ React.createElement(\n TreeGraph,\n {\n onResourceDetailClick: this.onResourceDetailClick,\n appName: application?.name || \"\",\n envName: env?.name || \"\",\n node: data,\n zoom,\n nodesep: graphType === \"resource-graph\" ? 50 : 80\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: showResource && resource }, resource && /* @__PURE__ */ React.createElement(\n ShowResource,\n {\n onClose: () => {\n this.setState({ showResource: false, resource: void 0 });\n },\n resource\n }\n )));\n }\n}\nexport default ApplicationGraph;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Table, Card, Loading, Balloon, Button, Message, Dialog, Tag, Tab } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link, routerRedux } from \"dva/router\";\nimport React from \"react\";\nimport { deployApplication } from \"../../api/application\";\nimport { listApplicationResourceTree, listApplicationServiceAppliedResources } from \"../../api/observation\";\nimport { If } from \"../../components/If\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport { handleError } from \"../../utils/errors\";\nimport { locale } from \"../../utils/locale\";\nimport { checkPermission } from \"../../utils/permission\";\nimport Header from \"../ApplicationInstanceList/components/Header\";\nimport \"./index.less\";\nimport ApplicationGraph from \"./components/ApplicationGraph\";\nimport { AiOutlineQuestionCircle } from \"react-icons/ai\";\nlet ApplicationStatusPage = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadApplicationStatus = async () => {\n const {\n params: { appName, envName }\n } = this.props.match;\n if (envName) {\n this.props.dispatch({\n type: \"application/getApplicationStatus\",\n payload: { appName, envName },\n callback: (res) => {\n if (res.status) {\n this.loadApplicationAppliedResources();\n }\n }\n });\n }\n };\n this.getTargets = () => {\n const { envbinding, match } = this.props;\n const env = envbinding.filter((item) => item.name == match.params.envName);\n if (env.length > 0) {\n return env[0].targets;\n }\n return [];\n };\n this.getEnvbindingByName = () => {\n const { envbinding } = this.props;\n const {\n params: { envName }\n } = this.props.match;\n return envbinding.find((env) => env.name === envName);\n };\n this.loadApplicationAppliedResources = async () => {\n const { mode } = this.state;\n if (mode === \"resource-graph\") {\n await this.loadResourceTree();\n return;\n }\n const { applicationDetail } = this.props;\n const {\n params: { appName }\n } = this.props.match;\n const { target, componentName } = this.state;\n const env = this.getEnvbindingByName();\n if (applicationDetail && applicationDetail.name && env) {\n const param = {\n appName: env.appDeployName || appName,\n appNs: env.appDeployNamespace,\n componentName,\n cluster: \"\",\n clusterNs: \"\"\n };\n if (target) {\n param.cluster = target.cluster?.clusterName || \"\";\n param.clusterNs = target.cluster?.namespace || \"\";\n }\n this.setState({ resourceLoading: true });\n listApplicationServiceAppliedResources(param).then((re) => {\n if (re && re.resources) {\n this.setState({ resources: re.resources });\n } else {\n this.setState({ resources: [] });\n }\n }).finally(() => {\n this.setState({ resourceLoading: false });\n });\n }\n };\n this.loadResourceTree = async () => {\n const { applicationDetail } = this.props;\n const env = this.getEnvbindingByName();\n const { target, componentName, resourceLoading } = this.state;\n const {\n params: { appName }\n } = this.props.match;\n if (applicationDetail && applicationDetail.name && env && !resourceLoading) {\n const param = {\n appName: env.appDeployName || appName,\n appNs: env.appDeployNamespace,\n componentName,\n cluster: \"\",\n clusterNs: \"\"\n };\n if (target) {\n param.cluster = target.cluster?.clusterName || \"\";\n param.clusterNs = target.cluster?.namespace || \"\";\n }\n this.setState({ resourceLoading: true });\n listApplicationResourceTree(param).then((re) => {\n if (re && re.resources) {\n this.setState({ resources: re.resources });\n } else {\n this.setState({ resources: [] });\n }\n }).finally(() => {\n this.setState({ resourceLoading: false });\n });\n }\n };\n this.updateQuery = (params) => {\n const targets = this.getTargets()?.filter((item) => item.name == params.target);\n let target = void 0;\n if (targets && targets.length > 0) {\n target = targets[0];\n }\n this.setState({ target, componentName: params.component }, () => {\n this.loadApplicationAppliedResources();\n });\n };\n this.onDeploy = (force) => {\n const { envbinding, dispatch } = this.props;\n const {\n params: { appName, envName }\n } = this.props.match;\n const envs = envbinding.filter((item) => item.name == envName);\n if (envs) {\n this.setState({ deployLoading: true });\n deployApplication(\n {\n appName,\n workflowName: \"workflow-\" + envs[0].name,\n triggerType: \"web\",\n force: force || false\n },\n true\n ).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Application deployed successfully\"));\n this.setState({ deployLoading: false });\n this.loadApplicationStatus();\n if (re.record && re.record.name && dispatch) {\n dispatch(\n routerRedux.push(`/applications/${appName}/envbinding/${re.envName}/workflow/records/${re.record.name}`)\n );\n }\n }\n }).catch((err) => {\n if (err.BusinessCode === 10004) {\n Dialog.confirm({\n content: i18n.t(\"Workflow is executing. Do you want to force a restart?\").toString(),\n onOk: () => {\n this.onDeploy(true);\n },\n onCancel: () => {\n this.setState({ deployLoading: false });\n },\n locale: locale().Dialog\n });\n } else {\n handleError(err);\n }\n });\n } else {\n Message.warning(i18n.t(\"Please wait\"));\n }\n };\n this.onChangeMode = (mode) => {\n this.setState({ mode }, () => {\n if (mode === \"overview\" || mode === \"resource-graph\") {\n this.loadApplicationAppliedResources();\n }\n });\n };\n this.state = {\n loading: true,\n deployLoading: false,\n resourceLoading: false,\n endpointLoading: false,\n envName: \"\",\n mode: \"resource-graph\",\n resources: []\n };\n }\n componentDidMount() {\n this.loadApplicationStatus();\n }\n componentWillReceiveProps(nextProps) {\n const { params } = nextProps.match;\n if (params.envName !== this.state.envName) {\n this.setState({ envName: params.envName }, () => {\n this.loadApplicationStatus();\n });\n return;\n }\n if (this.props.envbinding.length != nextProps.envbinding.length) {\n this.loadApplicationStatus();\n }\n }\n render() {\n const { applicationStatus, applicationDetail, components, userInfo } = this.props;\n const {\n params: { appName, envName }\n } = this.props.match;\n const { loading, endpointLoading, resourceLoading, resources, componentName, deployLoading, mode } = this.state;\n let componentStatus = applicationStatus?.services;\n if (componentName) {\n componentStatus = componentStatus?.filter((item) => item.name == componentName);\n }\n const env = this.getEnvbindingByName();\n const { Group: TagGroup } = Tag;\n const notDeploy = /* @__PURE__ */ React.createElement(\"div\", { className: \"deployNotice\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"noticeBox\" }, /* @__PURE__ */ React.createElement(\"h2\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Not Deploy\")), /* @__PURE__ */ React.createElement(\"div\", { className: \"desc\" }, /* @__PURE__ */ React.createElement(Translation, null, \"The current environment has not been deployed.\")), /* @__PURE__ */ React.createElement(\"div\", { className: \"noticeAction\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n loading: deployLoading,\n disabled: applicationDetail?.readOnly,\n onClick: () => this.onDeploy(),\n type: \"primary\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Deploy\")\n ))));\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"application-status-wrapper\" }, /* @__PURE__ */ React.createElement(Loading, { visible: loading && endpointLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\n Header,\n {\n userInfo,\n envbinding: this.getEnvbindingByName(),\n targets: this.getTargets(),\n envName,\n appName,\n disableStatusShow: true,\n applicationDetail,\n applicationStatus,\n components,\n updateQuery: (params) => {\n this.updateQuery(params);\n },\n refresh: () => {\n this.loadApplicationStatus();\n },\n dispatch: this.props.dispatch\n }\n )), /* @__PURE__ */ React.createElement(Tab, { onChange: this.onChangeMode, defaultActiveKey: mode, shape: \"capsule\" }, /* @__PURE__ */ React.createElement(Tab.Item, { title: i18n.t(\"Overview\").toString(), key: \"overview\" }, /* @__PURE__ */ React.createElement(Loading, { visible: loading && resourceLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(If, { condition: applicationStatus }, /* @__PURE__ */ React.createElement(If, { condition: componentStatus }, /* @__PURE__ */ React.createElement(\n Card,\n {\n locale: locale().Card,\n style: { marginTop: \"8px\", marginBottom: \"16px\" },\n contentHeight: \"auto\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Component Status\")\n },\n /* @__PURE__ */ React.createElement(\"div\", { style: { overflow: \"auto\" } }, /* @__PURE__ */ React.createElement(\n Table,\n {\n locale: locale().Table,\n className: \"customTable\",\n dataSource: componentStatus,\n style: { minWidth: \"1000px\" }\n },\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n align: \"left\",\n dataIndex: \"name\",\n style: { width: \"17%\" },\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\")\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"cluster\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Cluster\"),\n width: \"200px\",\n cell: (v) => {\n let clusterName = v;\n if (!clusterName) {\n clusterName = \"Local\";\n }\n if (checkPermission(\n { resource: \"cluster:*\", action: \"list\" },\n applicationDetail?.project?.name,\n userInfo\n )) {\n return /* @__PURE__ */ React.createElement(Link, { to: \"/clusters\" }, clusterName);\n }\n return /* @__PURE__ */ React.createElement(\"span\", null, clusterName);\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n align: \"left\",\n dataIndex: \"healthy\",\n width: \"100px\",\n cell: (v) => {\n if (v) {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-success\" }), /* @__PURE__ */ React.createElement(\"span\", null, \"Healthy\"));\n }\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-warning\" }), /* @__PURE__ */ React.createElement(\"span\", null, \"UnHealthy\"));\n },\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Healthy\")\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n align: \"left\",\n dataIndex: \"trait\",\n cell: (v, i, record) => {\n const { traits } = record;\n const Tags = (traits || []).map((item) => {\n if (item.healthy) {\n return /* @__PURE__ */ React.createElement(Tag, { type: \"normal\", size: \"small\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-success\" }), /* @__PURE__ */ React.createElement(\"span\", null, item.type)));\n } else {\n return /* @__PURE__ */ React.createElement(Tag, { type: \"normal\", size: \"small\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-failure\" }), /* @__PURE__ */ React.createElement(\"span\", null, item.type)));\n }\n });\n return /* @__PURE__ */ React.createElement(TagGroup, { className: \"tags-content\" }, Tags);\n },\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Traits\")\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n align: \"center\",\n dataIndex: \"message\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Message\"),\n cell: (v, i, record) => {\n const { message = \"\", traits } = record;\n const TraitMessages = (traits || []).map((item) => {\n if (item.message) {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", null, item.type, \": \"), /* @__PURE__ */ React.createElement(\"span\", null, item.message));\n }\n return;\n });\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"div\", null, message), TraitMessages);\n }\n }\n )\n ))\n )), /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"200px\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Applied Resources\") }, /* @__PURE__ */ React.createElement(\"div\", { style: { overflow: \"auto\" } }, /* @__PURE__ */ React.createElement(Table, { style: { minWidth: \"1000px\" }, locale: locale().Table, dataSource: resources }, /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"name\",\n width: \"240px\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Namespace/Name\"),\n cell: (v, i, row) => {\n return `${row.namespace || \"-\"}/${row.name}`;\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"cluster\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Cluster\"),\n width: \"200px\",\n cell: (v) => {\n let clusterName = v;\n if (!clusterName) {\n clusterName = \"Local\";\n }\n if (checkPermission(\n { resource: \"cluster:*\", action: \"list\" },\n applicationDetail?.project?.name,\n userInfo\n )) {\n return /* @__PURE__ */ React.createElement(Link, { to: \"/clusters\" }, clusterName);\n }\n return /* @__PURE__ */ React.createElement(\"span\", null, clusterName);\n }\n }\n ), /* @__PURE__ */ React.createElement(Table.Column, { width: \"200px\", dataIndex: \"kind\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Kind\") }), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"apiVersion\", title: /* @__PURE__ */ React.createElement(Translation, null, \"APIVersion\") }), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"component\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Component\") }), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"deployVersion\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Revision\"),\n cell: (v, i, row) => {\n if (row.latest) {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(\n \"span\",\n {\n style: {\n background: \"var(--success-color)\",\n padding: \"4px\",\n fontSize: \"12px\",\n color: \"#fff\",\n marginRight: \"4px\"\n }\n },\n \"NEW\"\n ), /* @__PURE__ */ React.createElement(Link, { to: `/applications/${applicationDetail?.name}/revisions` }, v));\n }\n return /* @__PURE__ */ React.createElement(Link, { to: `/applications/${applicationDetail?.name}/revisions` }, v);\n }\n }\n )))), /* @__PURE__ */ React.createElement(If, { condition: applicationStatus?.conditions }, /* @__PURE__ */ React.createElement(\n Card,\n {\n locale: locale().Card,\n style: { marginTop: \"8px\" },\n contentHeight: \"auto\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Conditions\")\n },\n /* @__PURE__ */ React.createElement(\"div\", { style: { overflow: \"auto\" } }, /* @__PURE__ */ React.createElement(\n Table,\n {\n style: { minWidth: \"1000px\" },\n locale: locale().Table,\n dataSource: applicationStatus?.conditions\n },\n /* @__PURE__ */ React.createElement(Table.Column, { width: \"150px\", dataIndex: \"type\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Type\") }),\n /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"status\", title: /* @__PURE__ */ React.createElement(Translation, null, \"Status\") }),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"lastTransitionTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"LastTransitionTime\")\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"reason\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Reason\"),\n cell: (v, index, row) => {\n if (row.message) {\n return /* @__PURE__ */ React.createElement(\n Balloon,\n {\n trigger: /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"red\", cursor: \"pointer\" } }, v, \" \", /* @__PURE__ */ React.createElement(AiOutlineQuestionCircle, { size: 14 }))\n },\n row.message\n );\n }\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n }\n )\n ))\n ))), /* @__PURE__ */ React.createElement(If, { condition: !applicationStatus }, notDeploy))), /* @__PURE__ */ React.createElement(Tab.Item, { title: i18n.t(\"Resource Graph\").toString(), key: \"resource-graph\" }, /* @__PURE__ */ React.createElement(Loading, { visible: loading && resourceLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(If, { condition: applicationStatus }, /* @__PURE__ */ React.createElement(\n ApplicationGraph,\n {\n applicationStatus,\n application: applicationDetail,\n env,\n resources,\n graphType: \"resource-graph\"\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: !applicationStatus }, notDeploy)), /* @__PURE__ */ React.createElement(Tab.Item, { title: i18n.t(\"Application Graph\").toString(), key: \"application-graph\" }, /* @__PURE__ */ React.createElement(Loading, { visible: loading && resourceLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(If, { condition: applicationStatus }, /* @__PURE__ */ React.createElement(\n ApplicationGraph,\n {\n applicationStatus,\n application: applicationDetail,\n env,\n resources,\n components,\n graphType: \"application-graph\"\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: !applicationStatus }, notDeploy))));\n }\n};\nApplicationStatusPage = __decorateClass([\n connect((store) => {\n return { ...store.application, ...store.user };\n })\n], ApplicationStatusPage);\nexport default ApplicationStatusPage;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Button, Dialog, Message, Table } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport React from \"react\";\nimport { AiFillDelete } from \"react-icons/ai\";\nimport { deleteWorkflow } from \"../../api/workflows\";\nimport { If } from \"../../components/If\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport { momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nlet ApplicationWorkflowList = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadApplicationWorkflows = async () => {\n const {\n params: { appName }\n } = this.props.match;\n this.props.dispatch({\n type: \"application/getApplicationWorkflows\",\n payload: { appName }\n });\n };\n this.onDeleteWorkflow = (name) => {\n const { applicationDetail } = this.props;\n if (applicationDetail) {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n deleteWorkflow({\n appName: applicationDetail.name,\n name\n }).then((res) => {\n if (res) {\n Message.success(i18n.t(\"Workflow removed successfully\"));\n this.loadApplicationWorkflows();\n }\n });\n },\n locale: locale().Dialog\n });\n }\n };\n this.state = {};\n }\n componentDidMount() {\n }\n render() {\n const { applicationDetail, workflows } = this.props;\n const projectName = applicationDetail?.project?.name;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Table, { dataSource: workflows }, /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"name\",\n title: i18n.t(\"Name\").toString(),\n cell: (v, i, w) => {\n return /* @__PURE__ */ React.createElement(Link, { to: `/applications/${applicationDetail?.name}/envbinding/${w.envName}/workflow/${v}/studio` }, v);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"envName\",\n title: i18n.t(\"Environment\").toString(),\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(Link, { to: `/applications/${applicationDetail?.name}/envbinding/${v}/workflow` }, v);\n }\n }\n ), /* @__PURE__ */ React.createElement(Table.Column, { dataIndex: \"mode\", title: i18n.t(\"Mode\").toString() }), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"steps\",\n title: i18n.t(\"Step Count\").toString(),\n cell: (steps) => {\n return steps ? steps.length : 0;\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"createTime\",\n title: i18n.t(\"Create Time\").toString(),\n cell: (v) => {\n return momentDate(v);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"updateTime\",\n title: i18n.t(\"Update Time\").toString(),\n cell: (v) => {\n return momentDate(v);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n dataIndex: \"name\",\n title: i18n.t(\"Action\").toString(),\n cell: (v, i, w) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(If, { condition: v != \"workflow-\" + w.envName }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: projectName,\n resource: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/workflow:${v}`,\n action: \"delete\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n className: \"danger-btn\",\n component: \"a\",\n onClick: () => {\n this.onDeleteWorkflow(v);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillDelete, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n )\n )));\n }\n }\n )));\n }\n};\nApplicationWorkflowList = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], ApplicationWorkflowList);\nexport default ApplicationWorkflowList;\n","\"use strict\";\nimport React from \"react\";\nexport function renderStepStatusIcon(status) {\n switch (status.phase) {\n case \"succeeded\":\n return /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: \"16\",\n height: \"16\",\n className: \"step-icon color-fg-success\",\n \"aria-label\": \"completed successfully\",\n viewBox: \"0 0 16 16\",\n version: \"1.1\",\n role: \"img\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n fillRule: \"evenodd\",\n d: \"M8 16A8 8 0 108 0a8 8 0 000 16zm3.78-9.72a.75.75 0 00-1.06-1.06L6.75 9.19 5.28 7.72a.75.75 0 00-1.06 1.06l2 2a.75.75 0 001.06 0l4.5-4.5z\"\n }\n )\n );\n case \"failed\":\n return /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: \"16\",\n height: \"16\",\n className: \"step-icon color-fg-danger\",\n \"aria-label\": \"failed\",\n viewBox: \"0 0 16 16\",\n version: \"1.1\",\n role: \"img\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n fillRule: \"evenodd\",\n d: \"M2.343 13.657A8 8 0 1113.657 2.343 8 8 0 012.343 13.657zM6.03 4.97a.75.75 0 00-1.06 1.06L6.94 8 4.97 9.97a.75.75 0 101.06 1.06L8 9.06l1.97 1.97a.75.75 0 101.06-1.06L9.06 8l1.97-1.97a.75.75 0 10-1.06-1.06L8 6.94 6.03 4.97z\"\n }\n )\n );\n case \"skipped\":\n return /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n width: \"16\",\n height: \"16\",\n className: \"step-icon neutral-check\",\n \"aria-label\": \"cancelled\",\n viewBox: \"0 0 16 16\",\n version: \"1.1\",\n role: \"img\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n fillRule: \"evenodd\",\n d: \"M4.47.22A.75.75 0 015 0h6a.75.75 0 01.53.22l4.25 4.25c.141.14.22.331.22.53v6a.75.75 0 01-.22.53l-4.25 4.25A.75.75 0 0111 16H5a.75.75 0 01-.53-.22L.22 11.53A.75.75 0 010 11V5a.75.75 0 01.22-.53L4.47.22zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5H5.31zM8 4a.75.75 0 01.75.75v3.5a.75.75 0 01-1.5 0v-3.5A.75.75 0 018 4zm0 8a1 1 0 100-2 1 1 0 000 2z\"\n }\n )\n );\n case \"running\":\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"step-icon running-icon\" }, /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n \"aria-label\": \"currently running\",\n fill: \"none\",\n viewBox: \"0 0 16 16\",\n className: \"icon-rotate\",\n xmlns: \"http://www.w3.org/2000/svg\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n opacity: \".5\",\n d: \"M8 15A7 7 0 108 1a7 7 0 000 14v0z\",\n stroke: \"#dbab0a\",\n strokeWidth: \"2\"\n }\n ),\n /* @__PURE__ */ React.createElement(\"path\", { d: \"M15 8a7 7 0 01-7 7\", stroke: \"#dbab0a\", strokeWidth: \"2\" }),\n /* @__PURE__ */ React.createElement(\"path\", { d: \"M8 12a4 4 0 100-8 4 4 0 000 8z\", fill: \"#dbab0a\" })\n ));\n case \"stopped\":\n return /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n \"aria-hidden\": \"true\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n version: \"1.1\",\n width: \"16\",\n \"data-view-component\": \"true\",\n className: \"step-icon stopped-icon\"\n },\n /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M8 4a4 4 0 100 8 4 4 0 000-8z\" })\n );\n default:\n return /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n \"aria-hidden\": \"true\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n version: \"1.1\",\n width: \"16\",\n \"data-view-component\": \"true\",\n className: \"step-icon pending-icon\"\n },\n /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", d: \"M8 4a4 4 0 100 8 4 4 0 000-8z\" })\n );\n }\n}\n","\"use strict\";\nimport classNames from \"classnames\";\nimport React, { useState } from \"react\";\nimport { timeDiff } from \"../../../utils/common\";\nimport { If } from \"../../If\";\nimport { renderStepStatusIcon } from \"./step-icon\";\nexport const Step = (props) => {\n const { step, output, input, onNodeClick, group } = props;\n const { stepWidth, stepInterval } = props.probeState;\n const [isActive, setActive] = useState(false);\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\"step\", { active: isActive }, { group }),\n onMouseEnter: () => setActive(true),\n onMouseLeave: () => setActive(false),\n style: { marginRight: stepInterval + \"px\" },\n onClick: (event) => {\n if (!group) {\n onNodeClick(props.step);\n event.stopPropagation();\n }\n }\n },\n /* @__PURE__ */ React.createElement(If, { condition: group }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-title\" }, step.name || step.id), /* @__PURE__ */ React.createElement(\"div\", { className: \"groups\", style: { width: stepWidth + \"px\", minHeight: \"70px\" } }, step.subSteps?.map((subStep, index) => {\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"step-status\",\n key: \"step-\" + (subStep.id || subStep.name) + index,\n onClick: (event) => {\n onNodeClick(subStep);\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", null, renderStepStatusIcon(subStep)),\n /* @__PURE__ */ React.createElement(\"div\", { className: \"step-name\" }, subStep.alias || subStep.name || subStep.id),\n /* @__PURE__ */ React.createElement(\"div\", null, timeDiff(subStep.firstExecuteTime, subStep.lastExecuteTime))\n );\n }))),\n /* @__PURE__ */ React.createElement(If, { condition: !group }, /* @__PURE__ */ React.createElement(\"div\", { className: \"groups\", style: { width: stepWidth + \"px\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-status\" }, /* @__PURE__ */ React.createElement(\"div\", null, renderStepStatusIcon(step)), /* @__PURE__ */ React.createElement(\"div\", { className: \"step-name\" }, step.alias || step.name || step.id), /* @__PURE__ */ React.createElement(\"div\", { className: \"\" }, timeDiff(step.firstExecuteTime, step.lastExecuteTime))))),\n /* @__PURE__ */ React.createElement(If, { condition: output }, /* @__PURE__ */ React.createElement(\"div\", { className: \"workflow-step-port workflow-step-port-output step-circle\" })),\n /* @__PURE__ */ React.createElement(If, { condition: input }, /* @__PURE__ */ React.createElement(\"div\", { className: \"workflow-step-port workflow-step-port-input step-circle\" }))\n );\n};\n","\"use strict\";\nimport React from \"react\";\nimport Draggable from \"react-draggable\";\nimport \"./index.less\";\nimport { Step } from \"./components/step\";\nclass PipelineGraph extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n stepWidth: 260,\n stepInterval: 56\n };\n }\n renderConnector(index, total, from, to) {\n const { stepInterval, stepWidth } = this.state;\n const startPoint = stepWidth + (index - 1) * (stepWidth + stepInterval);\n const endPoint = startPoint + stepInterval;\n const width = (stepInterval + stepWidth) * total;\n return /* @__PURE__ */ React.createElement(\"svg\", { key: from + to, className: \"workflow-connectors\", width, height: 300 }, /* @__PURE__ */ React.createElement(\n \"path\",\n {\n className: \"workflow-connector\",\n \"data-from\": \"step-\" + from,\n \"data-to\": \"step-\" + to,\n fill: \"none\",\n d: `M ${startPoint} 38 H ${endPoint}`\n }\n ));\n }\n render() {\n const { steps, zoom, name } = this.props;\n return /* @__PURE__ */ React.createElement(Draggable, null, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"workflow-graph\",\n style: {\n transform: `scale(${zoom})`\n }\n },\n steps && steps.length > 1 && steps.map((step, i) => {\n if (i < steps.length - 1) {\n return this.renderConnector(i + 1, steps.length, step.id, steps[i + 1].id);\n }\n return;\n }),\n steps && steps.map((step, i) => {\n return /* @__PURE__ */ React.createElement(\n Step,\n {\n key: name + step.name,\n probeState: this.state,\n step,\n group: step.type == \"step-group\",\n output: i < steps.length - 1,\n input: i !== 0,\n onNodeClick: this.props.onNodeClick\n }\n );\n })\n ));\n }\n}\nexport default PipelineGraph;\n","\"use strict\";\nimport { Icon } from \"@alifd/next\";\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { AiFillClockCircle } from \"react-icons/ai\";\nimport { BiError } from \"react-icons/bi\";\nimport { FaStopCircle } from \"react-icons/fa\";\nimport { If } from \"../../../../components/If\";\nconst RunStatusIcon = (props) => {\n const { status } = props;\n return /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"icon\", { warning: status == \"failed\" }, { success: status == \"succeeded\" }) }, /* @__PURE__ */ React.createElement(If, { condition: status == \"failed\" || status == \"terminated\" }, /* @__PURE__ */ React.createElement(BiError, null)), /* @__PURE__ */ React.createElement(If, { condition: status == \"executing\" }, /* @__PURE__ */ React.createElement(Icon, { type: \"loading\" })), /* @__PURE__ */ React.createElement(If, { condition: status == \"succeeded\" }, /* @__PURE__ */ React.createElement(Icon, { type: \"success-filling\" })), /* @__PURE__ */ React.createElement(If, { condition: status == \"initializing\" }, /* @__PURE__ */ React.createElement(FaStopCircle, null)), /* @__PURE__ */ React.createElement(If, { condition: status == \"suspending\" }, /* @__PURE__ */ React.createElement(AiFillClockCircle, null)), /* @__PURE__ */ React.createElement(\"span\", { className: \"status-text\" }, (status || \"pending\").toUpperCase()));\n};\nexport default RunStatusIcon;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport React from \"react\";\nimport { Card, Button, Tab, Loading, Grid, Message } from \"@alifd/next\";\nimport Ansi from \"ansi-to-react\";\nimport classNames from \"classnames\";\nimport { connect } from \"dva\";\nimport \"./index.less\";\nimport { Link, routerRedux } from \"dva/router\";\nimport {\n resumeApplicationWorkflowRecord,\n rollbackApplicationWorkflowRecord,\n terminateApplicationWorkflowRecord\n} from \"../../../../api/application\";\nimport {\n detailWorkflowRecord,\n getWorkflowRecordInputs,\n getWorkflowRecordLogs,\n getWorkflowRecordOutputs\n} from \"../../../../api/workflows\";\nimport Empty from \"../../../../components/Empty\";\nimport { If } from \"../../../../components/If\";\nimport PipelineGraph from \"../../../../components/PipelineGraph\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { convertAny, momentDate, timeDiff } from \"../../../../utils/common\";\nimport RunStatusIcon from \"../../../PipelineRunPage/components/RunStatusIcon\";\nimport { HiOutlineRefresh } from \"react-icons/hi\";\nconst { Row, Col } = Grid;\nlet ApplicationWorkflowRecord = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadWorkflowRecord = () => {\n const { recordName, workflow, applicationDetail } = this.props;\n this.setState({ statusLoading: true });\n detailWorkflowRecord({\n appName: applicationDetail.name,\n workflowName: workflow.name,\n record: recordName\n }).then((res) => {\n if (res) {\n this.setState({ showRecord: res });\n if (res.status && [\"terminated\", \"failed\", \"succeeded\"].indexOf(res.status) == -1 && !this.loop && !this.disableLoop) {\n this.loop = true;\n window.setTimeout(() => {\n this.loop = false;\n this.loadWorkflowRecord();\n }, 3e3);\n }\n }\n }).finally(() => {\n this.setState({ statusLoading: false });\n });\n };\n this.onStepClick = (step) => {\n this.setState({ showDetail: true, stepStatus: step }, () => {\n const { activeKey } = this.state;\n this.onTabChange(activeKey);\n });\n };\n this.onTabChange = (key) => {\n const { stepStatus } = this.state;\n this.setState({ activeKey: key });\n if (key == \"outputs\" && stepStatus) {\n this.onGetStepOutput();\n }\n if (key == \"detail\" && stepStatus) {\n this.onGetStepLog();\n }\n if (key == \"inputs\" && stepStatus) {\n this.onGetStepInput();\n }\n };\n this.onGetStepOutput = () => {\n const { applicationDetail, workflow, recordName } = this.props;\n const { stepStatus } = this.state;\n if (stepStatus) {\n this.setState({ outputLoading: true });\n getWorkflowRecordOutputs({\n appName: applicationDetail.name,\n workflowName: workflow.name,\n record: recordName,\n step: stepStatus?.name\n }).then((res) => {\n const outputs = res && Array.isArray(res.outputs) && res.outputs.length > 0 ? res.outputs[0] : void 0;\n this.setState({\n outputs\n });\n }).finally(() => {\n this.setState({ outputLoading: false });\n });\n }\n };\n this.onGetStepLog = () => {\n const { applicationDetail, workflow, recordName } = this.props;\n const { stepStatus } = this.state;\n if (stepStatus) {\n this.setState({ inputLoading: true });\n getWorkflowRecordLogs({\n appName: applicationDetail.name,\n workflowName: workflow.name,\n record: recordName,\n step: stepStatus?.name\n }).then((res) => {\n this.setState({ logs: res && res.log ? res.log.split(\"\\n\") : [], logSource: res.source });\n }).finally(() => {\n this.setState({ logLoading: false });\n });\n }\n };\n this.onGetStepInput = () => {\n const { applicationDetail, workflow, recordName } = this.props;\n const { stepStatus } = this.state;\n if (stepStatus) {\n this.setState({ inputLoading: true });\n getWorkflowRecordInputs({\n appName: applicationDetail.name,\n workflowName: workflow.name,\n record: recordName,\n step: stepStatus?.name\n }).then((res) => {\n const input = res && Array.isArray(res.inputs) && res.inputs.length > 0 ? res.inputs[0] : void 0;\n this.setState({\n inputs: input\n });\n }).finally(() => {\n this.setState({ inputLoading: false });\n });\n }\n };\n this.onResumeApplicationWorkflowRecord = () => {\n const { applicationDetail, workflow, recordName } = this.props;\n const params = {\n appName: applicationDetail.name,\n workflowName: workflow.name,\n recordName\n };\n this.setState({ resumeLoading: true });\n resumeApplicationWorkflowRecord(params).then((re) => {\n if (re) {\n Message.success(\"Workflow resumed successfully\");\n this.loadWorkflowRecord();\n }\n }).finally(() => {\n this.setState({ resumeLoading: false });\n });\n };\n this.onRollbackApplicationWorkflowRecord = () => {\n const { applicationDetail, workflow, recordName, dispatch, envName } = this.props;\n const params = {\n appName: applicationDetail.name,\n workflowName: workflow.name,\n recordName\n };\n this.setState({ rollbackLoading: true });\n rollbackApplicationWorkflowRecord(params).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Workflow rollback successfully\"));\n if (dispatch && re.name) {\n dispatch(\n routerRedux.push(\n `/applications/${applicationDetail.name}/envbinding/${envName}/workflow/records/${re.name}`\n )\n );\n }\n }\n }).finally(() => {\n this.setState({ rollbackLoading: false });\n });\n };\n this.onTerminateApplicationWorkflowRecord = () => {\n const { applicationDetail, workflow, recordName } = this.props;\n const params = {\n appName: applicationDetail.name,\n workflowName: workflow.name,\n recordName\n };\n this.setState({ terminateLoading: true });\n terminateApplicationWorkflowRecord(params).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Workflow terminated successfully\"));\n this.loadWorkflowRecord();\n }\n }).finally(() => {\n this.setState({ terminateLoading: false });\n });\n };\n this.state = {\n zoom: 1,\n showDetail: false,\n statusLoading: true,\n activeKey: \"detail\"\n };\n this.loop = false;\n this.disableLoop = false;\n }\n componentDidMount() {\n this.loadWorkflowRecord();\n }\n componentWillUnmount() {\n this.disableLoop = true;\n }\n componentDidUpdate(prevProps) {\n if (prevProps.recordName !== this.props.recordName) {\n this.loadWorkflowRecord();\n }\n }\n render() {\n const { workflow, applicationDetail } = this.props;\n const {\n statusLoading,\n zoom,\n showRecord,\n showDetail,\n stepStatus,\n logLoading,\n logSource,\n logs,\n inputs,\n inputLoading,\n outputs,\n outputLoading,\n rollbackLoading,\n resumeLoading,\n terminateLoading\n } = this.state;\n let stepSpec;\n workflow?.steps?.map((step) => {\n if (stepStatus && step.name == stepStatus.name) {\n stepSpec = step;\n }\n step.subSteps?.map((sub) => {\n if (stepStatus && sub.name == stepStatus.name) {\n stepSpec = sub;\n }\n });\n });\n let properties = stepSpec && stepSpec.properties;\n if (typeof properties === \"string\") {\n const newProperties = JSON.parse(properties);\n properties = newProperties;\n }\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, { className: \"description\", wrap: true }, /* @__PURE__ */ React.createElement(Col, { xl: 16, xs: 24 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"name_metadata\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"div\", { className: \"name\" }, showRecord?.name), /* @__PURE__ */ React.createElement(\"div\", { className: \"metadata\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"start_at\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Started at:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, momentDate(showRecord?.startTime))), /* @__PURE__ */ React.createElement(\"div\", { className: \"duration_time\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Duration:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, timeDiff(showRecord?.startTime, showRecord?.endTime))), /* @__PURE__ */ React.createElement(\"div\", { className: \"mode\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Mode:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, showRecord?.mode || \"StepByStep-DAG\")), /* @__PURE__ */ React.createElement(\"div\", { className: \"mode\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Revision:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${applicationDetail.name}/revisions` }, showRecord?.applicationRevision))))), /* @__PURE__ */ React.createElement(\"div\", { className: \"flexright\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n loading: statusLoading,\n onClick: () => {\n this.loadWorkflowRecord();\n }\n },\n /* @__PURE__ */ React.createElement(HiOutlineRefresh, null)\n )))), /* @__PURE__ */ React.createElement(Col, { xl: 8, xs: 24 }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\n \"status\",\n { warning: showRecord?.status == \"failed\" || showRecord?.status === \"terminated\" },\n { success: showRecord?.status == \"succeeded\" }\n )\n },\n /* @__PURE__ */ React.createElement(RunStatusIcon, { status: showRecord?.status }),\n /* @__PURE__ */ React.createElement(If, { condition: showRecord?.message }, /* @__PURE__ */ React.createElement(\"div\", { className: \"message\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"summary\" }, showRecord?.status == \"failed\" ? \"Error Summary\" : \"Summary\"), /* @__PURE__ */ React.createElement(\"p\", { className: \"text\" }, showRecord?.message))),\n /* @__PURE__ */ React.createElement(If, { condition: showRecord?.status === \"suspending\" }, /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"suspend-actions\") }, /* @__PURE__ */ React.createElement(\"div\", { className: \"desc\" }, /* @__PURE__ */ React.createElement(Translation, null, \"This workflow needs your approving\")), /* @__PURE__ */ React.createElement(Button.Group, null, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n size: \"small\",\n loading: rollbackLoading,\n className: \"margin-top-5 margin-left-8\",\n onClick: this.onRollbackApplicationWorkflowRecord,\n title: \"Rollback to last ready revision\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Rollback\")\n ), /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n size: \"small\",\n loading: terminateLoading,\n className: \"margin-top-5 margin-left-8\",\n title: \"Terminate this workflow\",\n onClick: this.onTerminateApplicationWorkflowRecord\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Terminate\")\n ), /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n size: \"small\",\n loading: resumeLoading,\n className: \"margin-top-5 margin-left-8\",\n title: \"Approve and continue this workflow\",\n onClick: this.onResumeApplicationWorkflowRecord\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Continue\")\n ))))\n ))), /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"run-studio\",\n style: {\n paddingLeft: \"2rem\",\n height: \"calc(100vh - 400px)\"\n },\n onClick: () => {\n this.setState({ showDetail: false });\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"studio\") }, showRecord && /* @__PURE__ */ React.createElement(\n PipelineGraph,\n {\n name: `${showRecord?.name}`,\n zoom,\n onNodeClick: this.onStepClick,\n steps: showRecord?.steps\n }\n )),\n /* @__PURE__ */ React.createElement(If, { condition: showDetail && stepStatus }, /* @__PURE__ */ React.createElement(\n Card,\n {\n title: stepStatus?.alias || stepStatus?.name || stepStatus?.id,\n className: classNames(\"detail\"),\n contentHeight: \"auto\",\n onClick: (event) => {\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(Tab, { animation: true, size: \"medium\", onChange: this.onTabChange }, /* @__PURE__ */ React.createElement(Tab.Item, { title: /* @__PURE__ */ React.createElement(Translation, null, \"Detail\"), key: \"detail\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"detail-page\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-info padding16\" }, stepStatus && /* @__PURE__ */ React.createElement(\"tbody\", null, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Step:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepStatus.name || stepStatus?.id)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Type:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepStatus.type)), /* @__PURE__ */ React.createElement(If, { condition: stepSpec?.if }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Condition:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepSpec?.if))), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"First Execute Time:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepStatus.firstExecuteTime)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Last Execute Time:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepStatus.lastExecuteTime)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Duration:\"), /* @__PURE__ */ React.createElement(\"td\", null, timeDiff(stepStatus.firstExecuteTime, stepStatus.lastExecuteTime))), /* @__PURE__ */ React.createElement(If, { condition: stepSpec?.timeout }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Timeout:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepSpec?.timeout))), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Phase:\"), /* @__PURE__ */ React.createElement(\"td\", { className: \"step-status-text-\" + stepStatus.phase }, stepStatus.phase)), /* @__PURE__ */ React.createElement(If, { condition: stepStatus.message || stepStatus.reason }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Message(Reason):\"), /* @__PURE__ */ React.createElement(\"td\", null, `${stepStatus.message || \"\"}`, stepStatus.reason && `(${stepStatus.reason})`))))), logSource && /* @__PURE__ */ React.createElement(\"div\", { className: \"step-log\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"header\" }, /* @__PURE__ */ React.createElement(\"div\", null, \"Step Logs\"), /* @__PURE__ */ React.createElement(\n Button,\n {\n loading: logLoading,\n onClick: () => {\n this.onGetStepLog();\n },\n style: { color: \"#fff\" },\n size: \"small\"\n },\n /* @__PURE__ */ React.createElement(HiOutlineRefresh, null)\n )), /* @__PURE__ */ React.createElement(\"div\", { className: \"log-content\" }, logs?.map((line, i) => {\n return /* @__PURE__ */ React.createElement(\"div\", { key: `log-${i}`, className: \"logLine\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"content\" }, /* @__PURE__ */ React.createElement(Ansi, { linkify: true }, line)));\n }))))), /* @__PURE__ */ React.createElement(Tab.Item, { title: i18n.t(\"Properties\").toString(), key: \"properties\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-info padding16\" }, /* @__PURE__ */ React.createElement(\"tbody\", null, properties && Object.keys(properties).map((key) => {\n return /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, key, \":\"), /* @__PURE__ */ React.createElement(\"td\", null, properties && convertAny(properties[key])));\n })))), /* @__PURE__ */ React.createElement(Tab.Item, { title: i18n.t(\"Outputs\"), key: \"outputs\" }, /* @__PURE__ */ React.createElement(If, { condition: !outputLoading && (!outputs || !outputs.values || outputs.values.length == 0) }, /* @__PURE__ */ React.createElement(Empty, { hideIcon: true, message: \"There are no outputs.\" })), /* @__PURE__ */ React.createElement(Loading, { visible: outputLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-info padding16\" }, outputs?.values?.map((value) => {\n return /* @__PURE__ */ React.createElement(\"tbody\", null, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Name: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.name)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Value: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.value)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Value From\"), /* @__PURE__ */ React.createElement(\"td\", null, value.valueFrom || \"-\")));\n })))), /* @__PURE__ */ React.createElement(Tab.Item, { title: i18n.t(\"Inputs\"), key: \"inputs\" }, /* @__PURE__ */ React.createElement(If, { condition: !inputLoading && (!inputs || !inputs?.values || inputs.values.length == 0) }, /* @__PURE__ */ React.createElement(Empty, { hideIcon: true, message: \"There are no inputs.\" })), /* @__PURE__ */ React.createElement(Loading, { visible: inputLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-info padding16\" }, /* @__PURE__ */ React.createElement(\"tbody\", null, inputs?.values?.map((value) => {\n return /* @__PURE__ */ React.createElement(\"tbody\", null, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"From Step: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.fromStep)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"From: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.from)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Value: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.value)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"ParameterKey\"), /* @__PURE__ */ React.createElement(\"td\", null, value.parameterKey || \"-\")));\n }))))))\n ))\n ));\n }\n};\nApplicationWorkflowRecord = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], ApplicationWorkflowRecord);\nexport default ApplicationWorkflowRecord;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Select, Grid, Card, Loading, Button, MenuButton } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { routerRedux, Link } from \"dva/router\";\nimport React from \"react\";\nimport { detailWorkflow } from \"../../api/workflows\";\nimport { getApplicationEnvRecords } from \"../../api/application\";\nimport Empty from \"../../components/Empty\";\nimport { If } from \"../../components/If\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport Header from \"../ApplicationInstanceList/components/Header\";\nimport i18n from \"../../i18n\";\nimport { beautifyTime } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport ApplicationWorkflowRecord from \"./components/WorkflowRecord\";\nconst { Row, Col } = Grid;\nlet ApplicationWorkflow = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadApplicationStatus = async () => {\n const {\n params: { appName, envName }\n } = this.props.match;\n if (envName) {\n this.props.dispatch({\n type: \"application/getApplicationStatus\",\n payload: { appName, envName }\n });\n }\n };\n this.loadWorkflow = () => {\n const {\n params: { appName }\n } = this.props.match;\n const { currentRecord } = this.state;\n if (currentRecord) {\n detailWorkflow({ appName, name: currentRecord.workflowName }).then((res) => {\n this.setState({ workflow: res });\n });\n }\n };\n this.loadWorkflowRecord = () => {\n const {\n params: { appName, record, envName }\n } = this.props.match;\n const { dispatch } = this.props;\n const env = this.getEnvbindingByName();\n if (env) {\n getApplicationEnvRecords({ appName, envName }).then((res) => {\n if (res) {\n const records = res.records;\n this.setState({ records: records || [], showRecordName: \"\" });\n const currentRecord = res.records.find((re) => re.name === record);\n if (currentRecord) {\n this.setState({ showRecordName: record, currentRecord }, this.loadWorkflow);\n } else if (Array.isArray(records) && records.length > 0) {\n this.setState({ showRecordName: records[0].name });\n dispatch(\n routerRedux.push(`/applications/${appName}/envbinding/${env.name}/workflow/records/${records[0].name}`)\n );\n return;\n }\n }\n return;\n });\n }\n };\n this.getEnvbindingByName = () => {\n const { envbinding } = this.props;\n const {\n params: { envName }\n } = this.props.match;\n return envbinding.find((env) => env.name === envName);\n };\n this.runApplicationWorkflow = () => {\n };\n this.state = {\n zoom: 1,\n showDetail: false,\n activeKey: \"detail\"\n };\n }\n componentDidMount() {\n this.loadApplicationStatus();\n this.loadWorkflowRecord();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.match !== this.props.match || prevProps.envbinding !== this.props.envbinding) {\n this.setState({ records: [], showRecordName: \"\" }, () => {\n this.loadWorkflowRecord();\n });\n }\n }\n render() {\n const { applicationDetail, dispatch, applicationStatus, workflows, userInfo } = this.props;\n const {\n params: { record, appName, envName }\n } = this.props.match;\n const { records, showRecordName, stepStatus, workflow } = this.state;\n const envWorkflows = workflows.filter((w) => w.envName === envName);\n if (!applicationDetail || !workflow) {\n return /* @__PURE__ */ React.createElement(Loading, { visible: true });\n }\n const recordOptions = records?.map((re) => {\n return {\n label: `${re.name}${beautifyTime(re.endTime) ? \"(\" + beautifyTime(re.endTime) + \")\" : \"\"}`,\n value: re.name\n };\n });\n const showRecord = record && recordOptions?.find((re) => re.value === record);\n let stepSpec;\n workflow?.steps?.map((step) => {\n if (stepStatus && step.name == stepStatus.name) {\n stepSpec = step;\n }\n step.subSteps?.map((sub) => {\n if (stepStatus && sub.name == stepStatus.name) {\n stepSpec = sub;\n }\n });\n });\n let properties = stepSpec && stepSpec.properties;\n if (typeof properties === \"string\") {\n const newProperties = JSON.parse(properties);\n properties = newProperties;\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"run-layout\" }, /* @__PURE__ */ React.createElement(\n Header,\n {\n userInfo,\n envbinding: this.getEnvbindingByName(),\n envName,\n appName,\n disableStatusShow: true,\n applicationDetail,\n applicationStatus,\n refresh: () => {\n this.loadApplicationStatus();\n },\n dispatch: this.props.dispatch\n }\n ), /* @__PURE__ */ React.createElement(Card, { contentHeight: \"auto\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 6 }, /* @__PURE__ */ React.createElement(\n Select,\n {\n value: showRecordName,\n locale: locale().Select,\n autoWidth: false,\n placeholder: i18n.t(\"Switch the workflow record\"),\n onChange: (selectRecord) => {\n this.setState({ showRecordName: selectRecord }, () => {\n dispatch(\n routerRedux.push(\n `/applications/${appName}/envbinding/${envName}/workflow/records/${selectRecord}`\n )\n );\n });\n },\n dataSource: recordOptions\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: 12 }), /* @__PURE__ */ React.createElement(\n Col,\n {\n span: 6,\n style: {\n display: \"flex\",\n justifyContent: \"end\"\n }\n },\n /* @__PURE__ */ React.createElement(If, { condition: !applicationDetail?.readOnly }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: applicationDetail.project?.name,\n request: {\n resource: `project:${applicationDetail.project?.name}/application:${applicationDetail.name}/workflow:*`,\n action: \"update\"\n }\n },\n envWorkflows.length == 1 && /* @__PURE__ */ React.createElement(Link, { to: `/applications/${appName}/envbinding/${envName}/workflow/${envWorkflows[0].name}/studio` }, /* @__PURE__ */ React.createElement(Button, { type: \"primary\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Launch Workflow Studio\"))),\n envWorkflows.length > 1 && /* @__PURE__ */ React.createElement(\n MenuButton,\n {\n autoWidth: false,\n type: \"primary\",\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Launch Workflow Studio\")\n },\n envWorkflows.map((w) => {\n return /* @__PURE__ */ React.createElement(MenuButton.Item, { key: w.name }, /* @__PURE__ */ React.createElement(Link, { to: `/applications/${appName}/envbinding/${envName}/workflow/${w.name}/studio` }, w.alias));\n })\n )\n ))\n ))), showRecord && /* @__PURE__ */ React.createElement(\n ApplicationWorkflowRecord,\n {\n workflow,\n applicationDetail,\n recordName: record,\n envName\n }\n ), recordOptions?.length == 0 && /* @__PURE__ */ React.createElement(Empty, { message: \"Workflow never ran\" }));\n }\n};\nApplicationWorkflow = __decorateClass([\n connect((store) => {\n return { ...store.application, ...store.user };\n })\n], ApplicationWorkflow);\nexport default ApplicationWorkflow;\n","\"use strict\";\nimport { Dialog } from \"@alifd/next\";\nimport { Prompt, routerRedux } from \"dva/router\";\nimport React, { useEffect } from \"react\";\nimport { locale } from \"../../utils/locale\";\nexport const WorkflowPrompt = React.memo(({ changed, content, onSave, dispatch, onClearChanged }) => {\n useEffect(() => {\n const handleUnload = (event) => {\n if (changed) {\n event.preventDefault();\n event.returnValue = \"\";\n }\n };\n window.addEventListener(\"beforeunload\", handleUnload);\n return () => window.removeEventListener(\"beforeunload\", handleUnload);\n }, [changed]);\n const onHistoryBlock = (location) => {\n if (changed) {\n Dialog.confirm({\n content: /* @__PURE__ */ React.createElement(\"div\", null, content),\n locale: locale().Dialog,\n onOk: () => {\n onSave();\n onClearChanged();\n moveToBlockedLocationAfterReactStateUpdate(dispatch, location);\n },\n onCancel: () => {\n onClearChanged();\n moveToBlockedLocationAfterReactStateUpdate(dispatch, location);\n }\n });\n return false;\n }\n return false;\n };\n return /* @__PURE__ */ React.createElement(Prompt, { when: true, message: onHistoryBlock });\n});\nWorkflowPrompt.displayName = \"WorkflowPrompt\";\nfunction moveToBlockedLocationAfterReactStateUpdate(dispatch, location) {\n if (location) {\n setTimeout(() => {\n if (dispatch) {\n dispatch(routerRedux.push(location));\n }\n }, 10);\n }\n}\n","\"use strict\";\nimport React from \"react\";\nconst renderConnector = (startPoint, endPoint, from, to) => {\n return /* @__PURE__ */ React.createElement(\n \"path\",\n {\n key: from + to,\n className: \"workflow-connector\",\n \"data-from\": \"step-\" + from,\n \"data-to\": \"step-\" + to,\n fill: \"none\",\n d: `M ${startPoint} 38 H ${endPoint}`\n }\n );\n};\nexport const Edge = (props) => {\n const { stepInterval, steps } = props;\n const total = steps?.length || 0;\n if (total == 0) {\n return /* @__PURE__ */ React.createElement(React.Fragment, null);\n }\n let width = (total - 1) * stepInterval;\n steps.map((step) => width += step.width);\n let firstPoint = -stepInterval;\n return /* @__PURE__ */ React.createElement(\"svg\", { width, height: 300, className: \"workflow-connectors\" }, props.steps && props.steps.map((step, index) => {\n if (index == total - 1) {\n return;\n }\n firstPoint = firstPoint + stepInterval + step.width;\n const endPoint = firstPoint + stepInterval;\n return renderConnector(firstPoint, endPoint, step.name, props.steps[index + 1].name);\n }));\n};\n","\"use strict\";\nimport * as React from \"react\";\nconst SvgApi = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", xmlSpace: \"preserve\", ...props }, /* @__PURE__ */ React.createElement(\n \"circle\",\n {\n style: {\n fill: \"#fad24d\"\n },\n cx: 256,\n cy: 256,\n r: 256\n }\n), /* @__PURE__ */ React.createElement(\n \"ellipse\",\n {\n style: {\n fill: \"#edb937\"\n },\n cx: 256,\n cy: 421.64,\n rx: 182.28,\n ry: 14.369\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#666\"\n },\n d: \"M65.982 67.222h380.036c12.486 0 22.7 10.217 22.7 22.703V324.03H43.282V89.925c0-12.486 10.214-22.703 22.7-22.703z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#15bdb2\"\n },\n d: \"M58.695 308.614h394.607V89.922c0-3.979-3.308-7.287-7.287-7.287H65.979c-3.976 0-7.287 3.308-7.287 7.287v218.693l.003-.001z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#fff\"\n },\n d: \"M468.718 324.03v24.826c0 12.489-11.261 22.703-25.026 22.703H68.305c-13.765 0-25.026-10.214-25.026-22.703V324.03H468.718zM144.153 234.3H131.29l-2.201-14.717h-15.643l-2.201 14.717H99.54l12.979-81.119h18.657l12.979 81.119h-.002zm-29.089-25.727h12.284l-6.14-41.024-6.144 41.024zM168.837 153.181c6.413 0 11.182 1.7 14.314 5.099 3.129 3.399 4.693 8.384 4.693 14.951v10.544c0 6.568-1.563 11.549-4.693 14.949-3.129 3.399-7.901 5.099-14.314 5.099h-6.025v30.476h-12.748V153.18h18.773v.001zm-6.025 11.588v27.465h6.025c2.009 0 3.554-.54 4.635-1.624 1.081-1.081 1.621-3.09 1.621-6.025v-12.168c0-2.935-.54-4.944-1.621-6.025-1.083-1.081-2.628-1.621-4.635-1.621h-6.025v-.002zM193.75 153.181h12.748V234.3H193.75v-81.119zM367.541 206.507l4.024-15.339-9.107-3.575a54.953 54.953 0 0 0-.055-10.34l9.073-3.67-4.184-15.295-9.663 1.458a54.259 54.259 0 0 0-5.228-8.932l6.02-7.709-11.274-11.155-7.646 6.101a54.222 54.222 0 0 0-8.983-5.136l1.358-9.679-15.339-4.024-3.575 9.107a54.7 54.7 0 0 0-10.34.055l-3.667-9.073-15.297 4.184 1.458 9.663.005-.002a54.241 54.241 0 0 0-8.932 5.228l-7.709-6.022-11.155 11.274 6.101 7.646a54.14 54.14 0 0 0-5.136 8.983l-9.679-1.358-4.024 15.339 9.107 3.575a54.953 54.953 0 0 0 .055 10.34l-9.073 3.667 4.184 15.297 9.66-1.458a54.383 54.383 0 0 0 5.228 8.932l-6.02 7.709L269 233.453l7.646-6.101a54.02 54.02 0 0 0 8.983 5.136l-1.358 9.676 15.339 4.026 3.575-9.107c3.438.307 6.901.288 10.34-.055l3.67 9.073 15.295-4.184-1.458-9.66a54.259 54.259 0 0 0 8.932-5.228l7.709 6.02 11.155-11.271-6.101-7.646a54.02 54.02 0 0 0 5.136-8.983l9.678 1.358zm-41.701-6.225c-9.713 9.813-25.538 9.894-35.35.184-9.813-9.713-9.895-25.537-.184-35.35 9.713-9.813 25.538-9.894 35.35-.184 9.813 9.713 9.894 25.538.184 35.35z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ecf0f1\"\n },\n d: \"M308.071 150.421c-17.826 0-32.279 14.45-32.279 32.279 0 17.826 14.451 32.279 32.279 32.279 17.826 0 32.279-14.451 32.279-32.279 0-17.826-14.45-32.279-32.279-32.279zm17.769 49.863c-9.713 9.813-25.538 9.894-35.35.184-9.813-9.712-9.895-25.537-.184-35.35 9.713-9.813 25.538-9.894 35.35-.184 9.813 9.713 9.894 25.538.184 35.35z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#fff\"\n },\n d: \"M417.06 242.49a25.926 25.926 0 0 0-.285-5.477l5.244-2.987-5.957-12.386-5.65 2.028a25.697 25.697 0 0 0-4.076-3.67l1.598-5.821-12.971-4.546-2.563 5.429a25.926 25.926 0 0 0-5.477.285l-2.986-5.241-12.386 5.959 2.028 5.647a25.843 25.843 0 0 0-3.67 4.076l-5.821-1.598-4.546 12.971 5.429 2.565a25.963 25.963 0 0 0 .283 5.474l-5.244 2.987 5.957 12.386 5.65-2.028a26.021 26.021 0 0 0 4.076 3.67l-1.595 5.821 12.971 4.546 2.563-5.432c1.812.1 3.649.008 5.477-.283l2.985 5.244 12.386-5.957-2.028-5.647a25.848 25.848 0 0 0 3.67-4.079l5.821 1.598 4.546-12.971-5.429-2.563zm-16.328 8.23c-5.309 5.367-13.963 5.408-19.329.1-5.363-5.31-5.408-13.963-.1-19.329 5.309-5.365 13.963-5.408 19.329-.1 5.365 5.311 5.409 13.962.1 19.329z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ecf0f1\"\n },\n d: \"M391.016 221.639c-10.752 0-19.468 8.716-19.468 19.468s8.716 19.468 19.468 19.468 19.468-8.716 19.468-19.468-8.716-19.468-19.468-19.468zm9.714 29.081c-5.309 5.365-13.963 5.408-19.326.1-5.366-5.309-5.411-13.963-.103-19.326v-.003c5.312-5.367 13.963-5.411 19.329-.1 5.365 5.308 5.409 13.962.1 19.329z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"circle\",\n {\n style: {\n fill: \"#b6b6b8\"\n },\n cx: 256,\n cy: 346.8,\n r: 7.814\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#c2c2c4\"\n },\n d: \"m305.065 407.271 36.095 11.564H170.836l29.123-11.564v-35.712h105.104v35.712h.002z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#b6b6b8\"\n },\n d: \"m305.065 407.271-105.104-35.712h105.104v35.712z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ecf0f1\"\n },\n d: \"M199.959 407.271h105.104l36.095 11.564v4.981H170.834v-4.981l29.123-11.564h.002z\"\n }\n));\nexport default SvgApi;\n","\"use strict\";\nimport * as React from \"react\";\nconst SvgEp = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 18.035 17.5\", ...props }, /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M-6.85 4.272a1.12 1.11 0 0 0-.428.109l-5.852 2.796a1.12 1.11 0 0 0-.606.753l-1.444 6.282a1.12 1.11 0 0 0 .152.85 1.12 1.11 0 0 0 .064.089l4.05 5.037a1.12 1.11 0 0 0 .876.417l6.496-.001a1.12 1.11 0 0 0 .875-.417l4.049-5.038a1.12 1.11 0 0 0 .216-.939L.152 7.93a1.12 1.11 0 0 0-.605-.753L-6.307 4.38a1.12 1.11 0 0 0-.542-.109Z\",\n style: {\n fill: \"currentColor\",\n fillOpacity: 1,\n stroke: \"none\",\n strokeWidth: 0,\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(1.01489 0 0 1.01489 15.91 -3.873)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M-6.852 3.818a1.181 1.172 0 0 0-.452.115l-6.18 2.951a1.181 1.172 0 0 0-.638.795l-1.524 6.63a1.181 1.172 0 0 0 .16.9 1.181 1.172 0 0 0 .067.093l4.276 5.317a1.181 1.172 0 0 0 .924.44h6.858a1.181 1.172 0 0 0 .923-.44L1.837 15.3a1.181 1.172 0 0 0 .228-.99L.54 7.677a1.181 1.172 0 0 0-.64-.795l-6.178-2.95a1.181 1.172 0 0 0-.573-.115Zm.003.455a1.12 1.11 0 0 1 .542.108l5.853 2.795a1.12 1.11 0 0 1 .606.753l1.446 6.281a1.12 1.11 0 0 1-.216.94l-4.05 5.037a1.12 1.11 0 0 1-.875.417l-6.496.001a1.12 1.11 0 0 1-.875-.417l-4.05-5.037a1.12 1.11 0 0 1-.064-.088 1.12 1.11 0 0 1-.152-.851l1.444-6.281a1.12 1.11 0 0 1 .605-.753l5.853-2.797a1.12 1.11 0 0 1 .429-.108z\",\n style: {\n color: \"#000\",\n fontStyle: \"normal\",\n fontVariant: \"normal\",\n fontWeight: 400,\n fontStretch: \"normal\",\n fontSize: \"medium\",\n lineHeight: \"normal\",\n fontFamily: \"Sans\",\n textIndent: 0,\n textAlign: \"start\",\n textDecoration: \"none\",\n textDecorationLine: \"none\",\n letterSpacing: \"normal\",\n wordSpacing: \"normal\",\n textTransform: \"none\",\n direction: \"ltr\",\n baselineShift: \"baseline\",\n textAnchor: \"start\",\n display: \"inline\",\n overflow: \"visible\",\n visibility: \"visible\",\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0,\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n marker: \"none\"\n },\n transform: \"matrix(1.01489 0 0 1.01489 15.91 -3.873)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"text\",\n {\n y: 16.812,\n x: 10.019,\n style: {\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"10.58333302px\",\n lineHeight: \"6.61458349px\",\n fontFamily: \"Sans\",\n letterSpacing: 0,\n wordSpacing: 0,\n fill: \"#fff\",\n fillOpacity: 1,\n stroke: \"none\",\n strokeWidth: \".26458332px\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeOpacity: 1\n },\n xmlSpace: \"preserve\",\n transform: \"translate(-.993 -1.174)\"\n },\n /* @__PURE__ */ React.createElement(\n \"tspan\",\n {\n style: {\n fontStyle: \"normal\",\n fontVariant: \"normal\",\n fontWeight: 400,\n fontStretch: \"normal\",\n fontSize: \"2.82222223px\",\n fontFamily: \"Arial\",\n textAlign: \"center\",\n textAnchor: \"middle\",\n fill: \"#fff\",\n fillOpacity: 1,\n strokeWidth: \".26458332px\"\n },\n y: 16.812,\n x: 10.019\n },\n \"ep\"\n )\n), /* @__PURE__ */ React.createElement(\"g\", { transform: \"translate(-.9 -1.174)\" }, /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M4.495 11.296h2.908v2.042H4.495zM8.464 11.296h2.908v2.042H8.464zM12.432 11.296h2.909v2.042h-2.909zM7.614 5.244h4.608v2.041H7.614z\",\n style: {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n stroke: \"none\",\n strokeWidth: 0.26458332,\n strokeLinecap: \"square\",\n strokeMiterlimit: 10\n }\n }\n), /* @__PURE__ */ React.createElement(\"g\", { transform: \"rotate(45.017 -226.81 242.718)\" }, /* @__PURE__ */ React.createElement(\n \"rect\",\n {\n style: {\n opacity: 1,\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0.36763045,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \"none\",\n strokeDashoffset: 13.00157547,\n strokeOpacity: 1\n },\n width: 0.652,\n height: 2.909,\n x: -226.886,\n y: -89.589,\n ry: 0\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n opacity: 1,\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0.57499999,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \"none\",\n strokeDashoffset: 13.00157547,\n strokeOpacity: 1\n },\n d: \"m-224.426-89.87-1.522-1.222-1.522-1.221 1.818-.708 1.82-.707-.297 1.929z\",\n transform: \"matrix(.4887 .18768 -.18768 .4887 -133.742 .214)\"\n }\n)), /* @__PURE__ */ React.createElement(\"g\", { transform: \"scale(-1 1) rotate(45.017 -236.51 219.312)\" }, /* @__PURE__ */ React.createElement(\n \"rect\",\n {\n ry: 0,\n y: -89.589,\n x: -226.886,\n height: 2.909,\n width: 0.652,\n style: {\n opacity: 1,\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0.36763045,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \"none\",\n strokeDashoffset: 13.00157547,\n strokeOpacity: 1\n }\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n transform: \"matrix(.4887 .18768 -.18768 .4887 -133.742 .214)\",\n d: \"m-224.426-89.87-1.522-1.222-1.522-1.221 1.818-.708 1.82-.707-.297 1.929z\",\n style: {\n opacity: 1,\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0.57499999,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \"none\",\n strokeDashoffset: 13.00157547,\n strokeOpacity: 1\n }\n }\n)), /* @__PURE__ */ React.createElement(\n \"rect\",\n {\n transform: \"matrix(-.99999 -.0048 -.00804 .99997 0 0)\",\n ry: 0,\n y: 7.883,\n x: -10.223,\n height: 2.249,\n width: 0.652,\n style: {\n opacity: 1,\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0.32321024,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \"none\",\n strokeDashoffset: 13.00157547,\n strokeOpacity: 1\n }\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n transform: \"scale(-.5235 .5235) rotate(20.653 -426.025 530.08)\",\n d: \"m-224.426-89.87-1.522-1.222-1.522-1.221 1.818-.708 1.82-.707-.297 1.929z\",\n style: {\n opacity: 1,\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0.57499999,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \"none\",\n strokeDashoffset: 13.00157547,\n strokeOpacity: 1\n }\n }\n)));\nexport default SvgEp;\n","\"use strict\";\nimport * as React from \"react\";\nconst SvgKubernetes = (props) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n className: \"kubernetes_svg__icon\",\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ...props\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"m435.36 612.256.288.416-42.624 102.944a221.792 221.792 0 0 1-88.032-109.28l-.48-1.536 109.984-18.656.16.224a18.784 18.784 0 0 1 20.608 25.984l.032-.128zm-35.52-90.816a18.816 18.816 0 0 0 7.424-32.256l-.032-.032.096-.48-83.68-74.848a217.088 217.088 0 0 0-32.48 114.848c0 8.448.48 16.8 1.408 25.024l-.096-.992 107.264-30.944.096-.384zm48.832-84.48a18.784 18.784 0 0 0 29.824-14.336v-.032l.416-.224 6.4-111.776a219.296 219.296 0 0 0-128.448 61.568l.032-.032 91.616 64.992.16-.096zm32.448 117.312 30.848 14.88 30.816-14.816 7.68-33.28-21.344-26.592h-34.304l-21.344 26.592 7.648 33.248zm64-132.032a18.784 18.784 0 0 0 29.92 14.304l-.064.032.352.128 91.04-64.544a220.672 220.672 0 0 0-126.56-61.408l-1.088-.128 6.304 111.584.096.032zm464.032 254.72-246.304 306.4a68.16 68.16 0 0 1-53.088 25.344h-.16l-395.136.128h-.064a68.096 68.096 0 0 1-53.056-25.312l-.096-.128L14.816 677.056a67.104 67.104 0 0 1-12.992-57.632l-.096.448 87.904-382.08A67.52 67.52 0 0 1 126.464 192L482.4 21.888c8.64-4.224 18.816-6.688 29.536-6.688s20.896 2.464 29.952 6.88l-.416-.192 356.064 170.016a67.552 67.552 0 0 1 36.832 45.792l87.968 382.08a67.2 67.2 0 0 1-13.152 57.184zm-140.32-87.776c-1.792-.416-4.384-1.12-6.176-1.44-7.424-1.408-13.44-1.056-20.448-1.632-14.944-1.568-27.232-2.848-38.176-6.304-4.48-1.696-7.68-7.04-9.216-9.216l-8.576-2.528a275.936 275.936 0 0 0-4.832-101.376l.384 1.856a276.384 276.384 0 0 0-40.544-93.248l.608.96c2.208-2.016 6.4-5.664 7.552-6.784.352-3.84.032-7.808 4-12.032 8.416-7.904 18.944-14.432 31.712-22.272 6.048-3.584 11.648-5.856 17.696-10.336 1.376-1.024 3.232-2.656 4.704-3.808 10.24-8.16 12.576-22.176 5.248-31.392s-21.6-10.08-31.776-1.92c-1.44 1.152-3.424 2.656-4.736 3.744-5.728 4.96-9.248 9.824-14.08 14.944-10.496 10.656-19.2 19.552-28.704 25.984-4.128 2.4-10.208 1.568-12.928 1.408l-8.096 5.76a278.72 278.72 0 0 0-175.776-85.376l-1.12-.096-.512-9.504c-2.784-2.656-6.112-4.896-6.944-10.656-.928-11.424.64-23.776 2.432-38.624.992-6.944 2.592-12.704 2.912-20.256.032-1.696-.032-4.224-.032-6.048 0-13.056-9.568-23.68-21.344-23.68-11.744 0-21.28 10.624-21.28 23.68l.032.608c0 1.76-.096 3.936 0 5.472.256 7.552 1.888 13.312 2.848 20.256 1.792 14.848 3.328 27.168 2.4 38.656a23.36 23.36 0 0 1-6.88 10.976l-.032.032-.512 8.992a274.08 274.08 0 0 0-177.632 85.312l-.128.128a338.976 338.976 0 0 1-8.672-6.144l.992.704c-3.84.512-7.68 1.696-12.672-1.248-9.504-6.4-18.208-15.264-28.704-25.952-4.832-5.12-8.32-9.984-14.048-14.88a97.728 97.728 0 0 0-4.736-3.744 25.184 25.184 0 0 0-14.784-5.632h-.064l-1.088-.032a20.48 20.48 0 0 0-15.872 7.488l-.032.032c-7.328 9.216-4.992 23.296 5.248 31.456l.288.224 4.448 3.552c6.048 4.48 11.616 6.784 17.664 10.336 12.768 7.904 23.296 14.432 31.712 22.272 3.232 3.488 3.84 9.632 4.256 12.288l6.816 6.112a273.28 273.28 0 0 0-46.336 152.992c0 13.856 1.024 27.488 3.008 40.8l-.192-1.504-8.864 2.56c-2.336 3.072-5.664 7.84-9.184 9.248-10.976 3.456-23.296 4.704-38.176 6.272-7.008.608-13.024.256-20.48 1.664-1.568.288-3.84.864-5.664 1.28l-.16.096-.288.096c-12.576 3.04-20.64 14.592-18.048 25.952 2.592 11.392 14.88 18.304 27.52 15.584l.288-.032.416-.128 5.504-1.248c7.264-1.952 12.544-4.832 19.104-7.328 14.08-5.024 25.76-9.248 37.12-10.912 4.768-.384 9.824 2.944 12.288 4.32l9.248-1.568a278.912 278.912 0 0 0 121.632 152.736l1.248.704-3.84 9.312c1.408 3.584 2.944 8.48 1.888 12.032-4.128 10.752-11.232 22.048-19.296 34.688-3.872 5.792-7.904 10.336-11.424 17.024-.864 1.568-1.92 4.064-2.72 5.728-5.472 11.744-1.44 25.216 9.088 30.304 10.592 5.12 23.712-.288 29.44-12.032v-.096c.864-1.664 1.952-3.84 2.656-5.408 2.976-6.912 4-12.832 6.144-19.552 5.632-14.176 8.736-29.024 16.512-38.272 2.144-2.56 5.536-3.488 9.184-4.48l4.832-8.736a270.592 270.592 0 0 0 99.008 18.4 274.56 274.56 0 0 0 99.52-18.528l-1.888.64 4.512 8.192c3.68 1.184 7.68 1.792 10.912 6.624 5.792 9.888 9.76 21.632 14.592 35.84 2.144 6.656 3.168 12.576 6.176 19.488.672 1.568 1.824 3.84 2.656 5.504 5.664 11.776 18.848 17.152 29.44 12.032 10.528-5.024 14.56-18.56 9.088-30.304-.864-1.664-1.92-4.096-2.784-5.728-3.552-6.656-7.552-11.136-11.424-16.992-8.096-12.64-14.752-23.072-18.912-33.824-1.696-5.536.288-8.96 1.632-12.544-.768-.928-2.528-6.144-3.552-8.608a278.88 278.88 0 0 0 122.336-152.576l.544-1.952c2.72.416 7.52 1.28 9.088 1.632 3.2-2.144 6.144-4.864 11.936-4.448 11.36 1.664 23.04 5.888 37.12 10.912 6.56 2.56 11.808 5.472 19.104 7.392 1.536.416 3.744.8 5.536 1.184l.384.128.288.032c12.672 2.72 24.928-4.192 27.52-15.584 2.56-11.36-5.472-22.912-18.048-25.952zM699.744 413.92l-83.2 74.496v.224a18.784 18.784 0 0 0 7.264 32.256l.128.032.128.416 107.776 31.072a222.4 222.4 0 0 0-4.896-72.96l.288 1.504a222.336 222.336 0 0 0-28.032-68.064l.544.928zm-171.232 227.2a18.656 18.656 0 0 0-16.48-9.92l-.8.032h.032a18.72 18.72 0 0 0-15.808 9.856l-.064.096h-.096l-54.112 97.792a215.712 215.712 0 0 0 71.136 11.808c25.344 0 49.664-4.288 72.32-12.128l-1.536.48-54.176-97.952h-.416zm80.544-55.168a18.784 18.784 0 0 0-11.616 1.568l.096-.064a18.816 18.816 0 0 0-9.088 24.512l-.032-.128-.128.16 43.104 104.032a220.8 220.8 0 0 0 88.288-110.048l.48-1.536-110.944-18.784-.16.224z\",\n fill: \"#326CE5\"\n }\n )\n);\nexport default SvgKubernetes;\n","\"use strict\";\nimport * as React from \"react\";\nconst SvgNotification = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 512 512\", xmlSpace: \"preserve\", ...props }, /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ff8a1e\"\n },\n d: \"M174.74 430.93c0 44.878 36.382 81.07 81.26 81.07l22.261-103.331L174.74 430.93z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ff562b\"\n },\n d: \"M256 512c44.878 0 81.26-36.192 81.26-81.07L256 408.669V512z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ffa418\"\n },\n d: \"M34.846 364.142v66.788H256l22.261-89.049z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ffbe11\"\n },\n d: \"M256 0C176.159 0 111.837 59.674 99.965 136.479c-5.683 36.763-25.84 146.535-25.84 146.535l204.137 22.261L256 0z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ff8a1e\"\n },\n d: \"M437.877 283.016s-20.158-109.774-25.842-146.537C400.162 59.674 335.841 0 256 0v305.277l181.877-22.261zM256 341.881v89.049h221.154v-66.788z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ffd460\"\n },\n d: \"M256 283.016H74.123c-23.905 18.925-39.277 48.417-39.277 81.126H256l22.261-40.563L256 283.016z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#ffa418\"\n },\n d: \"M437.877 283.016H256v81.126h221.154c0-32.709-15.373-62.201-39.277-81.126z\"\n }\n));\nexport default SvgNotification;\n","\"use strict\";\nimport * as React from \"react\";\nconst SvgSecret = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 18.035 17.5\", ...props }, /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M-6.85 4.272a1.12 1.11 0 0 0-.428.109l-5.852 2.796a1.12 1.11 0 0 0-.606.753l-1.444 6.282a1.12 1.11 0 0 0 .152.85 1.12 1.11 0 0 0 .064.089l4.05 5.037a1.12 1.11 0 0 0 .876.417l6.496-.001a1.12 1.11 0 0 0 .875-.417l4.049-5.038a1.12 1.11 0 0 0 .216-.939L.152 7.93a1.12 1.11 0 0 0-.605-.753L-6.307 4.38a1.12 1.11 0 0 0-.542-.109Z\",\n style: {\n fill: \"currentColor\",\n fillOpacity: 1,\n stroke: \"none\",\n strokeWidth: 0,\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(1.01489 0 0 1.01489 15.91 -3.873)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M-6.852 3.818a1.181 1.172 0 0 0-.452.115l-6.18 2.951a1.181 1.172 0 0 0-.638.795l-1.524 6.63a1.181 1.172 0 0 0 .16.9 1.181 1.172 0 0 0 .067.093l4.276 5.317a1.181 1.172 0 0 0 .924.44h6.858a1.181 1.172 0 0 0 .923-.44L1.837 15.3a1.181 1.172 0 0 0 .228-.99L.54 7.677a1.181 1.172 0 0 0-.64-.795l-6.178-2.95a1.181 1.172 0 0 0-.573-.115Zm.003.455a1.12 1.11 0 0 1 .542.108l5.853 2.795a1.12 1.11 0 0 1 .606.753l1.446 6.281a1.12 1.11 0 0 1-.216.94l-4.05 5.037a1.12 1.11 0 0 1-.875.417l-6.496.001a1.12 1.11 0 0 1-.875-.417l-4.05-5.037a1.12 1.11 0 0 1-.064-.088 1.12 1.11 0 0 1-.152-.851l1.444-6.281a1.12 1.11 0 0 1 .605-.753l5.853-2.797a1.12 1.11 0 0 1 .429-.108z\",\n style: {\n color: \"#000\",\n fontStyle: \"normal\",\n fontVariant: \"normal\",\n fontWeight: 400,\n fontStretch: \"normal\",\n fontSize: \"medium\",\n lineHeight: \"normal\",\n fontFamily: \"Sans\",\n textIndent: 0,\n textAlign: \"start\",\n textDecoration: \"none\",\n textDecorationLine: \"none\",\n letterSpacing: \"normal\",\n wordSpacing: \"normal\",\n textTransform: \"none\",\n direction: \"ltr\",\n baselineShift: \"baseline\",\n textAnchor: \"start\",\n display: \"inline\",\n overflow: \"visible\",\n visibility: \"visible\",\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0,\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n marker: \"none\"\n },\n transform: \"matrix(1.01489 0 0 1.01489 15.91 -3.873)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"text\",\n {\n y: 16.882,\n x: 9.977,\n style: {\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"10.58333302px\",\n lineHeight: \"6.61458349px\",\n fontFamily: \"Sans\",\n letterSpacing: 0,\n wordSpacing: 0,\n fill: \"#fff\",\n fillOpacity: 1,\n stroke: \"none\",\n strokeWidth: \".26458332px\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeOpacity: 1\n },\n xmlSpace: \"preserve\",\n transform: \"translate(-.993 -1.174)\"\n },\n /* @__PURE__ */ React.createElement(\n \"tspan\",\n {\n style: {\n fontStyle: \"normal\",\n fontVariant: \"normal\",\n fontWeight: 400,\n fontStretch: \"normal\",\n fontSize: \"2.82222223px\",\n fontFamily: \"Arial\",\n textAlign: \"center\",\n textAnchor: \"middle\",\n fill: \"#fff\",\n fillOpacity: 1,\n strokeWidth: \".26458332px\"\n },\n y: 16.882,\n x: 9.977\n },\n \"secret\"\n )\n), /* @__PURE__ */ React.createElement(\"g\", { transform: \"translate(-.936 -1.174)\" }, /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"#fff\",\n strokeWidth: 0.79374999,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeOpacity: 1\n },\n d: \"M10.414 8.091h3.709\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"#fff\",\n strokeWidth: 0.79400003,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n d: \"M8.298 5.975h5.825\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"#fff\",\n strokeWidth: 0.79374999,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeOpacity: 1\n },\n d: \"M5.784 5.975h1.458\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n stroke: \"currentColor\",\n strokeWidth: 0.26458332,\n strokeLinecap: \"square\",\n strokeMiterlimit: 10,\n strokeOpacity: 1\n },\n d: \"M7.718 8.432h0c0-1.167 1.011-2.112 2.259-2.112 1.247 0 2.258.945 2.258 2.112h-1.056 0c0-.583-.538-1.056-1.202-1.056-.664 0-1.202.473-1.202 1.056z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"#fff\",\n strokeWidth: 0.79374999,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeOpacity: 1\n },\n d: \"M10.414 10.208h3.709M8.298 12.325h5.825M5.784 12.325h1.458\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n stroke: \"currentColor\",\n strokeWidth: 0.26458332,\n strokeLinecap: \"square\",\n strokeMiterlimit: 10,\n strokeOpacity: 1\n },\n d: \"M7.162 8.37h5.617v3.657H7.162z\"\n }\n), /* @__PURE__ */ React.createElement(\n \"circle\",\n {\n r: 0.555,\n cy: 10.198,\n cx: 9.971,\n style: {\n opacity: 1,\n fill: \"currentColor\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0.26478875,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \".52957746,.26478873\",\n strokeDashoffset: 5.01860619,\n strokeOpacity: 1\n }\n }\n)));\nexport default SvgSecret;\n","\"use strict\";\nimport * as React from \"react\";\nconst SvgSvc = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 18.035 17.5\", ...props }, /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M-6.85 4.272a1.12 1.11 0 0 0-.428.109l-5.852 2.796a1.12 1.11 0 0 0-.606.753l-1.444 6.282a1.12 1.11 0 0 0 .152.85 1.12 1.11 0 0 0 .064.089l4.05 5.037a1.12 1.11 0 0 0 .876.417l6.496-.001a1.12 1.11 0 0 0 .875-.417l4.049-5.038a1.12 1.11 0 0 0 .216-.939L.152 7.93a1.12 1.11 0 0 0-.605-.753L-6.307 4.38a1.12 1.11 0 0 0-.542-.109Z\",\n style: {\n fill: \"currentColor\",\n fillOpacity: 1,\n stroke: \"none\",\n strokeWidth: 0,\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n transform: \"matrix(1.01489 0 0 1.01489 15.91 -3.873)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M-6.852 3.818a1.181 1.172 0 0 0-.452.115l-6.18 2.951a1.181 1.172 0 0 0-.638.795l-1.524 6.63a1.181 1.172 0 0 0 .16.9 1.181 1.172 0 0 0 .067.093l4.276 5.317a1.181 1.172 0 0 0 .924.44h6.858a1.181 1.172 0 0 0 .923-.44L1.837 15.3a1.181 1.172 0 0 0 .228-.99L.54 7.677a1.181 1.172 0 0 0-.64-.795l-6.178-2.95a1.181 1.172 0 0 0-.573-.115Zm.003.455a1.12 1.11 0 0 1 .542.108l5.853 2.795a1.12 1.11 0 0 1 .606.753l1.446 6.281a1.12 1.11 0 0 1-.216.94l-4.05 5.037a1.12 1.11 0 0 1-.875.417l-6.496.001a1.12 1.11 0 0 1-.875-.417l-4.05-5.037a1.12 1.11 0 0 1-.064-.088 1.12 1.11 0 0 1-.152-.851l1.444-6.281a1.12 1.11 0 0 1 .605-.753l5.853-2.797a1.12 1.11 0 0 1 .429-.108z\",\n style: {\n color: \"#000\",\n fontStyle: \"normal\",\n fontVariant: \"normal\",\n fontWeight: 400,\n fontStretch: \"normal\",\n fontSize: \"medium\",\n lineHeight: \"normal\",\n fontFamily: \"Sans\",\n textIndent: 0,\n textAlign: \"start\",\n textDecoration: \"none\",\n textDecorationLine: \"none\",\n letterSpacing: \"normal\",\n wordSpacing: \"normal\",\n textTransform: \"none\",\n direction: \"ltr\",\n baselineShift: \"baseline\",\n textAnchor: \"start\",\n display: \"inline\",\n overflow: \"visible\",\n visibility: \"visible\",\n fill: \"#fff\",\n fillOpacity: 1,\n fillRule: \"nonzero\",\n stroke: \"none\",\n strokeWidth: 0,\n strokeMiterlimit: 4,\n strokeDasharray: \"none\",\n marker: \"none\"\n },\n transform: \"matrix(1.01489 0 0 1.01489 15.91 -3.873)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"text\",\n {\n y: 16.812,\n x: 9.98,\n style: {\n fontStyle: \"normal\",\n fontWeight: 400,\n fontSize: \"10.58333302px\",\n lineHeight: \"6.61458349px\",\n fontFamily: \"Sans\",\n letterSpacing: 0,\n wordSpacing: 0,\n fill: \"#fff\",\n fillOpacity: 1,\n stroke: \"none\",\n strokeWidth: \".26458332px\",\n strokeLinecap: \"butt\",\n strokeLinejoin: \"miter\",\n strokeOpacity: 1\n },\n xmlSpace: \"preserve\",\n transform: \"translate(-.993 -1.174)\"\n },\n /* @__PURE__ */ React.createElement(\n \"tspan\",\n {\n style: {\n fontStyle: \"normal\",\n fontVariant: \"normal\",\n fontWeight: 400,\n fontStretch: \"normal\",\n fontSize: \"2.82222223px\",\n fontFamily: \"Arial\",\n textAlign: \"center\",\n textAnchor: \"middle\",\n fill: \"#fff\",\n fillOpacity: 1,\n strokeWidth: \".26458332px\"\n },\n y: 16.812,\n x: 9.98\n },\n \"svc\"\n )\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"#fff\",\n fillRule: \"evenodd\",\n stroke: \"none\",\n strokeWidth: 0.26458332,\n strokeLinecap: \"square\",\n strokeMiterlimit: 10\n },\n d: \"M4.495 11.26h2.908v2.042H4.495zM8.464 11.26h2.908v2.042H8.464zM12.432 11.26h2.909v2.042h-2.909zM7.614 5.208h4.608V7.25H7.614z\",\n transform: \"translate(-.9 -1.174)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"#fff\",\n strokeWidth: 0.52916664,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeOpacity: 1\n },\n d: \"M9.918 7.25v2.005H5.95v2.003\",\n transform: \"translate(-.9 -1.174)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"#fff\",\n strokeWidth: 0.52899998,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeDasharray: \"none\",\n strokeOpacity: 1\n },\n d: \"M9.918 7.25v2.005h3.967v2.003\",\n transform: \"translate(-.9 -1.174)\"\n }\n), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n style: {\n fill: \"none\",\n fillRule: \"evenodd\",\n stroke: \"#fff\",\n strokeWidth: 0.52916664,\n strokeLinecap: \"butt\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeOpacity: 1\n },\n d: \"M9.91 7.251v2.006h.016v2.003\",\n transform: \"translate(-.9 -1.174)\"\n }\n));\nexport default SvgSvc;\n","\"use strict\";\nimport * as React from \"react\";\nconst SvgTerraform = (props) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n className: \"terraform_svg__icon\",\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 32,\n height: 32,\n ...props\n },\n /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"style\", null, '@font-face{font-family:feedback-iconfont;src:url(//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944) format(\"woff2\"),url(//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944) format(\"woff\"),url(//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944) format(\"truetype\")}')),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"m353.118 180.428 318.245 161.676v323.287L353.118 503.716zm353.117 161.643V665.36l318.374-161.675V180.396zM0 0v323.287l318.242 161.675V161.675zm353.118 862.324L671.363 1024V700.84L353.118 539.166z\",\n fill: \"#623CE4\"\n }\n )\n);\nexport default SvgTerraform;\n","\"use strict\";\nimport * as React from \"react\";\nconst SvgWorkflow = (props) => /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n height: 800,\n width: 800,\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 394.953 394.953\",\n xmlSpace: \"preserve\",\n ...props\n },\n /* @__PURE__ */ React.createElement(\"path\", { d: \"M394.953 325.334v-49.869a5.504 5.504 0 0 0-5.503-5.504h-44.375v-67.34a5.502 5.502 0 0 0-5.503-5.502H202.974v-55.496h61.002a5.502 5.502 0 0 0 5.503-5.502V69.619a5.504 5.504 0 0 0-5.503-5.504H130.974a5.504 5.504 0 0 0-5.503 5.504v66.502a5.502 5.502 0 0 0 5.503 5.502h60.994v55.496H55.373a5.502 5.502 0 0 0-5.503 5.502v67.34H5.503A5.504 5.504 0 0 0 0 275.465v49.869a5.504 5.504 0 0 0 5.503 5.504h99.747a5.504 5.504 0 0 0 5.503-5.504v-49.869a5.504 5.504 0 0 0-5.503-5.504H60.875v-61.836h131.092v61.836h-44.371a5.503 5.503 0 0 0-5.503 5.504v49.869a5.503 5.503 0 0 0 5.503 5.504h99.751a5.503 5.503 0 0 0 5.503-5.504v-49.869a5.503 5.503 0 0 0-5.503-5.504h-44.374v-61.836h131.096v61.836h-44.371a5.503 5.503 0 0 0-5.503 5.504v49.869a5.503 5.503 0 0 0 5.503 5.504h99.751a5.504 5.504 0 0 0 5.504-5.504zM136.477 130.617V75.121h121.996v55.496H136.477zm-36.729 150.35v38.865H11.006v-38.865H99.748zm142.097 0v38.865H153.1v-38.865h88.745zm142.102 38.865h-88.746v-38.865H383.947v38.865z\" })\n);\nexport default SvgWorkflow;\n","\"use strict\";\nimport { DeployModes } from \"@velaux/data\";\nimport React from \"react\";\nimport { AiOutlineSafetyCertificate } from \"react-icons/ai\";\nimport SvgApi from \"../Icons/SvgAPI\";\nimport SvgEp from \"../Icons/SvgEp\";\nimport SvgKubernetes from \"../Icons/SvgKubernetes\";\nimport SvgNotification from \"../Icons/SvgNotification\";\nimport SvgSecret from \"../Icons/SvgSecret\";\nimport SvgSvc from \"../Icons/SvgSvc\";\nimport SvgTerraform from \"../Icons/SvgTerraform\";\nimport SvgWorkflow from \"../Icons/SvgWorkflow\";\nexport const StepTypeIcon = (props) => {\n switch (props.type) {\n case DeployModes.Deploy:\n case DeployModes.CanaryDeploy:\n return /* @__PURE__ */ React.createElement(SvgKubernetes, { width: \"24px\", height: \"24px\" });\n case \"deploy-cloud-resource\":\n return /* @__PURE__ */ React.createElement(SvgTerraform, { width: \"24px\", height: \"24px\" });\n case \"export-service\":\n case \"share-cloud-resource\":\n return /* @__PURE__ */ React.createElement(\n SvgSvc,\n {\n width: \"24px\",\n height: \"24px\",\n style: {\n color: \"var(--primary-color)\"\n }\n }\n );\n case \"read-config\":\n case \"list-config\":\n case \"create-config\":\n case \"delete-config\":\n case \"export-data\":\n return /* @__PURE__ */ React.createElement(\n SvgSecret,\n {\n width: \"24px\",\n height: \"24px\",\n style: {\n color: \"var(--primary-color)\"\n }\n }\n );\n case \"notification\":\n return /* @__PURE__ */ React.createElement(SvgNotification, { width: \"24px\", height: \"24px\" });\n case \"webhook\":\n return /* @__PURE__ */ React.createElement(SvgApi, { width: \"24px\", height: \"24px\" });\n case \"suspend\":\n return /* @__PURE__ */ React.createElement(AiOutlineSafetyCertificate, { size: \"24\" });\n case \"collect-service-endpoints\":\n return /* @__PURE__ */ React.createElement(\n SvgEp,\n {\n width: \"24px\",\n height: \"24px\",\n style: {\n color: \"var(--primary-color)\"\n }\n }\n );\n default:\n return /* @__PURE__ */ React.createElement(SvgWorkflow, { width: \"24px\", height: \"24px\" });\n }\n};\n","\"use strict\";\nimport classNames from \"classnames\";\nimport React, { useState } from \"react\";\nimport { StepTypeIcon } from \"./step-icon\";\nimport \"./index.less\";\nimport { showAlias } from \"../../utils/common\";\nimport { If } from \"../If\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nimport { IoMdAdd } from \"react-icons/io\";\nimport { Translation } from \"../../components/Translation\";\nexport const Step = (props) => {\n const { step, output, input, onNodeClick, group, onDelete, onAddSubStep, subMode } = props;\n const { stepWidth, stepInterval } = props.probeState;\n const [isActive, setActive] = useState(false);\n const mode = step.mode || subMode || \"DAG\";\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\"step\", { active: isActive }, { group }),\n onMouseEnter: () => setActive(true),\n onMouseLeave: () => setActive(false),\n style: { marginRight: stepInterval + \"px\" },\n onClick: (event) => {\n if (!group) {\n onNodeClick(props.step, false);\n event.stopPropagation();\n }\n }\n },\n /* @__PURE__ */ React.createElement(If, { condition: group }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"step-title\",\n onClick: (event) => {\n onNodeClick(step, false);\n event.stopPropagation();\n }\n },\n showAlias(step.name, step.alias),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"step-delete\" }, /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n size: 14,\n onClick: (event) => {\n onDelete(step.name);\n event.stopPropagation();\n },\n title: \"Delete this step group.\"\n }\n ))\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"groups\", style: { width: stepWidth + \"px\" } }, mode && /* @__PURE__ */ React.createElement(\"div\", { className: \"mode\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Mode\"), \":\", /* @__PURE__ */ React.createElement(Translation, null, mode)), step.subSteps?.map((subStep, index) => {\n return /* @__PURE__ */ React.createElement(\"div\", { key: subStep.name + \"-step\" }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key: subStep.name + \"-status\",\n className: \"step-status\",\n onClick: (event) => {\n onNodeClick(subStep, true);\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(StepTypeIcon, { type: subStep.type }),\n /* @__PURE__ */ React.createElement(\"div\", { className: \"step-name\" }, subStep.alias || subStep.name),\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"step-delete\",\n onClick: (event) => {\n onDelete(subStep.name);\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(AiOutlineDelete, { size: 14 })\n )\n ), mode == \"StepByStep\" && /* @__PURE__ */ React.createElement(\"div\", { className: \"sub-step-add\", onClick: () => onAddSubStep(index + 1) }, /* @__PURE__ */ React.createElement(IoMdAdd, { size: 14 })));\n }), (mode === \"DAG\" || !step.subSteps) && /* @__PURE__ */ React.createElement(\"div\", { className: \"step-status sub-step-add\", onClick: () => onAddSubStep(step.subSteps?.length || 0) }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-name\" }, /* @__PURE__ */ React.createElement(IoMdAdd, { size: 14 }))))),\n /* @__PURE__ */ React.createElement(If, { condition: !group }, /* @__PURE__ */ React.createElement(\"div\", { className: \"groups\", style: { width: stepWidth + \"px\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-status\" }, /* @__PURE__ */ React.createElement(StepTypeIcon, { type: step.type }), /* @__PURE__ */ React.createElement(\"div\", { className: \"step-name\" }, step.alias || step.name), /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"step-delete\",\n onClick: (event) => {\n onDelete(step.name);\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(AiOutlineDelete, { size: 14 })\n )))),\n /* @__PURE__ */ React.createElement(If, { condition: output }, /* @__PURE__ */ React.createElement(\"div\", { className: \"workflow-step-port workflow-step-port-output step-circle\" })),\n /* @__PURE__ */ React.createElement(If, { condition: input }, /* @__PURE__ */ React.createElement(\"div\", { className: \"workflow-step-port workflow-step-port-input step-circle\" }))\n );\n};\n","\"use strict\";\nimport { Select } from \"@alifd/next\";\nimport React, { useContext } from \"react\";\nimport { WorkflowContext, WorkflowEditContext } from \"../../context\";\nimport i18n from \"../../i18n\";\nimport { showAlias } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nexport const StepSelect = (props) => {\n const { value, id, disabled } = props;\n const { stepName, steps } = useContext(WorkflowEditContext);\n const { workflow } = useContext(WorkflowContext);\n const stepOptions = [];\n let inGroup = false;\n let groupStep;\n steps?.map((step) => {\n step.subSteps?.map((subStep) => {\n if (subStep.name === stepName) {\n inGroup = true;\n groupStep = step;\n }\n });\n });\n if (workflow?.mode === \"DAG\" && (workflow.subMode === \"DAG\" || workflow.subMode === \"StepByStep\" && !inGroup)) {\n steps?.filter((s) => s.name !== stepName).map((step) => {\n stepOptions.push({\n label: showAlias(step.name, step.alias),\n value: step.name\n });\n step.subSteps?.filter((s) => s.name !== stepName).map((b) => {\n stepOptions.push({\n label: `${showAlias(step.name, step.alias)}/${showAlias(b.name, b.alias)}`,\n value: b.name\n });\n });\n });\n }\n if (workflow?.mode === \"StepByStep\" && workflow.subMode === \"DAG\" && inGroup && groupStep) {\n groupStep.subSteps?.filter((s) => s.name !== stepName).map((step) => {\n stepOptions.push({\n label: showAlias(step.name, step.alias),\n value: step.name\n });\n });\n }\n return /* @__PURE__ */ React.createElement(\n Select,\n {\n placeholder: i18n.t(\"Please select the steps\"),\n onChange: props.onChange,\n id,\n disabled,\n defaultValue: value || [],\n value: value || [],\n dataSource: stepOptions,\n mode: \"multiple\",\n locale: locale().Select\n }\n );\n};\n","\"use strict\";\nimport { Grid, Input, Form, Select, Button } from \"@alifd/next\";\nimport _ from \"lodash\";\nimport React, { useContext, useState } from \"react\";\nimport { IoMdAdd, IoMdRemove } from \"react-icons/io\";\nimport { WorkflowEditContext } from \"../../context\";\nimport { locale } from \"../../utils/locale\";\nconst { Row, Col } = Grid;\nexport const InputItemForm = (props) => {\n const [from, setFrom] = useState(props.value ? props.value.from : \"\");\n const [parameterKey, setParameterKey] = useState(props.value?.parameterKey || \"\");\n const fromChange = (value) => {\n setFrom(value);\n if (value != \"\" && parameterKey != \"\") {\n props.onChange({ from: value, parameterKey });\n }\n };\n const parameterKeyChange = (value) => {\n setParameterKey(value);\n if (value != \"\" && from != \"\") {\n props.onChange({ from, parameterKey: value });\n }\n };\n const { steps, stepName } = useContext(WorkflowEditContext);\n const fromItemOptions = [];\n const convertOutputs = (outputs) => {\n if (!outputs) {\n return;\n }\n outputs.map((out) => {\n fromItemOptions.push({ value: out.name });\n });\n };\n steps?.map((step) => {\n if (step.name != stepName) {\n convertOutputs(step.outputs);\n }\n step.subSteps?.map((subStep) => {\n if (subStep.name != stepName) {\n convertOutputs(subStep.outputs);\n }\n });\n });\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"item-form\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { className: \"from\", span: 12, style: { paddingLeft: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"From\", labelAlign: \"inset\" }, /* @__PURE__ */ React.createElement(Select, { dataSource: fromItemOptions, locale: locale().Select, value: from, onChange: fromChange }))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { paddingRight: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"ParameterKey\", labelAlign: \"inset\" }, /* @__PURE__ */ React.createElement(Input, { value: parameterKey, onChange: parameterKeyChange })))));\n};\nexport const InputItems = (props) => {\n const [items, setItems] = useState(props.value || [{ from: \"\", parameterKey: \"\" }]);\n const onChange = (update) => {\n props.onChange(update.filter((item) => item.from != \"\" && item.parameterKey != \"\"));\n };\n return /* @__PURE__ */ React.createElement(\"div\", { id: props.id, className: \"input-items\" }, items?.map((item, index) => {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"item\", key: \"input\" + index }, /* @__PURE__ */ React.createElement(\n InputItemForm,\n {\n key: item.from,\n value: item,\n onChange: (input) => {\n items[index].from = input.from;\n items[index].parameterKey = input.parameterKey;\n onChange(items);\n }\n }\n ), index != 0 && /* @__PURE__ */ React.createElement(\"div\", { className: \"item-delete\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n const newItems = _.cloneDeep(items);\n newItems.splice(index, 1);\n setItems(newItems);\n onChange(newItems);\n },\n size: \"small\",\n type: \"secondary\",\n style: { justifyContent: \"center\", marginLeft: \"8px\" }\n },\n /* @__PURE__ */ React.createElement(IoMdRemove, null)\n )));\n }), /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n const newItems = _.cloneDeep(items);\n newItems.push({ from: \"\", parameterKey: \"\" });\n setItems(newItems);\n },\n size: \"small\",\n type: \"secondary\",\n style: { justifyContent: \"center\", marginLeft: \"8px\" }\n },\n /* @__PURE__ */ React.createElement(IoMdAdd, null)\n ));\n};\n","\"use strict\";\nimport { Grid, Input, Form, Button } from \"@alifd/next\";\nimport _ from \"lodash\";\nimport React, { useState } from \"react\";\nimport { IoMdAdd, IoMdRemove } from \"react-icons/io\";\nimport { locale } from \"../../utils/locale\";\nconst { Row, Col } = Grid;\nexport const OutputItemForm = (props) => {\n const [name, setName] = useState(props.value ? props.value.name : \"\");\n const [valueFrom, setValueFrom] = useState(props.value?.valueFrom || \"\");\n const nameChange = (value) => {\n setName(value);\n if (value != \"\" && valueFrom != \"\") {\n props.onChange({ name: value, valueFrom });\n }\n };\n const valueFromChange = (value) => {\n setValueFrom(value);\n if (name != \"\" && value != \"\") {\n props.onChange({ name, valueFrom: value });\n }\n };\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"item-form\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { className: \"from\", span: 12, style: { paddingLeft: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"Name\", labelAlign: \"inset\" }, /* @__PURE__ */ React.createElement(Input, { locale: locale().Select, value: name, onChange: nameChange }))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { paddingRight: \"8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"ValueFrom\", labelAlign: \"inset\" }, /* @__PURE__ */ React.createElement(Input, { value: valueFrom, onChange: valueFromChange })))));\n};\nexport const OutputItems = (props) => {\n const [items, setItems] = useState(props.value || [{ name: \"\", valueFrom: \"\" }]);\n const onChange = (update) => {\n props.onChange(update.filter((item) => item.name != \"\" && item.valueFrom != \"\"));\n };\n return /* @__PURE__ */ React.createElement(\"div\", { id: props.id, className: \"input-items\" }, items?.map((item, index) => {\n const key = `index${index}`;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"item\", key }, /* @__PURE__ */ React.createElement(\n OutputItemForm,\n {\n key: item.name,\n value: item,\n onChange: (output) => {\n items[index].name = output.name;\n items[index].valueFrom = output.valueFrom;\n onChange(items);\n }\n }\n ), index != 0 && /* @__PURE__ */ React.createElement(\"div\", { className: \"item-delete\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n const newItems = _.cloneDeep(items);\n newItems.splice(index, 1);\n setItems(newItems);\n onChange(newItems);\n },\n size: \"small\",\n type: \"secondary\",\n style: { justifyContent: \"center\", marginLeft: \"8px\" }\n },\n /* @__PURE__ */ React.createElement(IoMdRemove, null)\n )));\n }), /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n const newItems = _.cloneDeep(items);\n newItems.push({ name: \"\", valueFrom: \"\" });\n setItems(newItems);\n },\n size: \"small\",\n type: \"secondary\",\n style: { justifyContent: \"center\", marginLeft: \"8px\" }\n },\n /* @__PURE__ */ React.createElement(IoMdAdd, null)\n ));\n};\n","\"use strict\";\nimport { Grid, Field, Form, Input, Button } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport { detailWorkflowDefinition } from \"../../api/workflows\";\nimport { UISchemaContext, WorkflowContext } from \"../../context\";\nimport Group from \"../../extends/Group\";\nimport \"./index.less\";\nimport { StepSelect } from \"../../extends/StepSelect\";\nimport i18n from \"../../i18n\";\nimport { replaceUrl } from \"../../utils/common\";\nimport DrawerWithFooter from \"../Drawer\";\nimport { If } from \"../If\";\nimport { Translation } from \"../Translation\";\nimport UISchema from \"../UISchema\";\nimport { InputItems } from \"./input-item\";\nimport { OutputItems } from \"./output-item\";\nimport { BiCodeBlock, BiLaptop } from \"react-icons/bi\";\nclass StepForm extends Component {\n constructor(props) {\n super(props);\n this.componentDidMount = () => {\n const { properties, type } = this.props.step;\n this.field.setValues(this.props.step);\n if (properties && typeof properties === \"string\") {\n this.field.setValues({ properties: JSON.parse(properties) });\n }\n this.onDetailDefinition(type);\n };\n this.setValues = (values) => {\n if (values) {\n const { consumerData } = values;\n this.field.setValues(consumerData);\n }\n };\n this.onSubmit = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { step } = this.props;\n this.props.onUpdate({ ...step, ...values });\n });\n };\n this.onDetailDefinition = (value, callback) => {\n this.setState({ definitionLoading: true });\n detailWorkflowDefinition({ name: value }).then((re) => {\n if (re) {\n this.setState({ definitionDetail: re, definitionLoading: false });\n if (callback) {\n callback();\n }\n }\n }).catch(() => this.setState({ definitionLoading: false }));\n };\n this.handleChang = (value) => {\n this.removeProperties();\n this.field.setValues({ type: value });\n this.onDetailDefinition(value);\n };\n this.removeProperties = () => {\n this.field.remove(\"properties\");\n this.setState({ definitionDetail: void 0 });\n };\n this.state = {\n definitionLoading: false,\n propertiesMode: \"native\"\n };\n this.field = new Field(this, {\n onChange: (name, value) => {\n if (name == \"type\") {\n this.field.setValue(\"name\", value);\n }\n }\n });\n this.uiSchemaRef = React.createRef();\n }\n render() {\n const { init } = this.field;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const { onClose, isSubStep } = this.props;\n const { definitionDetail, propertiesMode } = this.state;\n const validator = (rule, value, callback) => {\n this.uiSchemaRef.current?.validate(callback);\n };\n const { workflow } = this.context;\n const mode = isSubStep ? workflow.subMode : workflow.mode;\n const groupStep = this.field.getValue(\"type\") == \"step-group\";\n return /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Edit Step\"),\n placement: \"right\",\n width: 800,\n onClose,\n onOk: this.onSubmit,\n extButtons: [\n /* @__PURE__ */ React.createElement(Button, { key: \"cancel\", style: { marginRight: \"16px\" }, onClick: onClose }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\"))\n ]\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.field }, !groupStep && /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Group,\n {\n title: \"Properties\",\n description: \"Set the configuration parameters for the Workflow or Pipeline step.\",\n closed: false,\n required: true,\n hasToggleIcon: true\n },\n /* @__PURE__ */ React.createElement(If, { condition: definitionDetail }, /* @__PURE__ */ React.createElement(FormItem, { required: true }, /* @__PURE__ */ React.createElement(If, { condition: definitionDetail && definitionDetail.uiSchema }, /* @__PURE__ */ React.createElement(\"div\", { className: \"flexright\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n style: { marginTop: \"-12px\", alignItems: \"center\", display: \"flex\" },\n onClick: () => {\n if (propertiesMode === \"native\") {\n this.setState({ propertiesMode: \"code\" });\n } else {\n this.setState({ propertiesMode: \"native\" });\n }\n }\n },\n propertiesMode === \"native\" && /* @__PURE__ */ React.createElement(BiCodeBlock, { size: 14, title: i18n.t(\"Switch to the coding mode\") }),\n propertiesMode === \"code\" && /* @__PURE__ */ React.createElement(BiLaptop, { size: 14, title: i18n.t(\"Switch to the native mode\") })\n ))), /* @__PURE__ */ React.createElement(UISchemaContext.Provider, { value: this.context }, /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...init(`properties`, {\n rules: [\n {\n validator,\n message: i18n.t(\"Please check the properties of the workflow step\")\n }\n ]\n }),\n enableCodeEdit: propertiesMode === \"code\",\n uiSchema: definitionDetail && definitionDetail.uiSchema,\n definition: {\n type: \"workflowstep\",\n name: definitionDetail?.name || \"\",\n description: definitionDetail?.description || \"\"\n },\n ref: this.uiSchemaRef,\n mode: \"edit\"\n }\n ))))\n ))), /* @__PURE__ */ React.createElement(\n Group,\n {\n title: i18n.t(\"Advanced Configs\"),\n description: i18n.t(\"Configure the inputs, outputs, timeout, and dependsOn, etc fields for the step.\"),\n initClose: true,\n hasToggleIcon: true,\n required: true\n },\n mode === \"DAG\" && /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"DependsOn\") }, /* @__PURE__ */ React.createElement(StepSelect, { disabled: false, ...init(\"dependsOn\") })))),\n /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"If\"),\n help: /* @__PURE__ */ React.createElement(\n \"div\",\n {\n dangerouslySetInnerHTML: {\n __html: replaceUrl(\"Reference: http://kubevela.net/docs/end-user/workflow/if-condition\")\n }\n }\n )\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"if\",\n ...init(\"if\", {\n rules: []\n })\n }\n )\n )), !groupStep && /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Inputs\"),\n help: /* @__PURE__ */ React.createElement(\n \"div\",\n {\n dangerouslySetInnerHTML: {\n __html: replaceUrl(\"Reference: http://kubevela.net/docs/end-user/workflow/inputs-outputs\")\n }\n }\n )\n },\n /* @__PURE__ */ React.createElement(InputItems, { ...init(\"inputs\") })\n )), !groupStep && /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Outputs\"),\n help: /* @__PURE__ */ React.createElement(\n \"div\",\n {\n dangerouslySetInnerHTML: {\n __html: replaceUrl(\"Reference: http://kubevela.net/docs/end-user/workflow/inputs-outputs\")\n }\n }\n )\n },\n /* @__PURE__ */ React.createElement(OutputItems, { ...init(\"outputs\") })\n ))),\n /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Timeout\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"timeout\",\n ...init(\"timeout\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))),\n /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n ...init(\"description\", {\n rules: [\n {\n maxLength: 256,\n message: \"Enter a description that contains less than 256 characters.\"\n }\n ]\n })\n }\n ))))\n ))\n );\n }\n}\nStepForm.contextType = WorkflowContext;\nStepForm.contextType = WorkflowContext;\nexport default StepForm;\n","\"use strict\";\nimport { Balloon, Card, Dialog, Field, Form, Grid, Input } from \"@alifd/next\";\nimport _ from \"lodash\";\nimport React from \"react\";\nimport i18n from \"../../i18n\";\nimport { checkName, showAlias } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport Item from \"../Item\";\nimport { Translation } from \"../Translation\";\nimport { StepTypeIcon } from \"./step-icon\";\nimport \"./index.less\";\nconst { Row, Col } = Grid;\nconst defaultCategory = {\n \"Application Delivery\": {\n title: \"Application Delivery\",\n description: \"Delivery the Application or workloads to the Targets.\",\n definitions: [],\n sort: 2\n },\n \"Resource Management\": {\n title: \"Resource Management\",\n description: \"Steps for Resource Management\",\n definitions: [],\n sort: 3\n },\n Terraform: {\n title: \"Terraform\",\n description: \"Terraform workflow steps\",\n definitions: [],\n sort: 4\n },\n \"Config Management\": {\n title: \"Config Management\",\n description: \"Create or read the config.\",\n definitions: [],\n sort: 5\n },\n \"CI Integration\": {\n title: \"CI Integration\",\n description: \"CI integration steps\",\n definitions: [],\n sort: 6\n },\n \"External Integration\": {\n title: \"External Integration\",\n description: \"External Integration steps\",\n definitions: [],\n sort: 7\n },\n \"Process Control\": {\n title: \"Process Control\",\n description: \"Process Control steps\",\n definitions: [],\n sort: 1\n },\n \"Scripts & Commands\": {\n title: \"Scripts & Commands\",\n description: \"Steps for executing Scripts & Commands\",\n definitions: [],\n sort: 8\n },\n Custom: {\n title: \"Custom\",\n description: \"Custom Workflow or Pipeline steps\",\n definitions: [],\n sort: 1e3\n }\n};\nconst initDefinitionCategory = (defs) => {\n return defs.map((def) => {\n if (!def.category || def.category == \"\") {\n def.category = \"Custom\";\n }\n return def;\n });\n};\nconst buildDefinitionCategory = (defs) => {\n const customDefs = initDefinitionCategory(defs);\n const categoryMap = _.cloneDeep(defaultCategory);\n customDefs.map((def) => {\n const category = def.category;\n if (!category) {\n return;\n }\n if (categoryMap[category]) {\n categoryMap[category].definitions.push(def);\n } else {\n categoryMap[category] = { title: category, definitions: [def], sort: 100 };\n }\n });\n return Object.values(categoryMap).sort((a, b) => {\n return a.sort - b.sort;\n });\n};\nclass TypeSelect extends React.Component {\n constructor(props) {\n super(props);\n this.field = new Field(this);\n this.onSubmit = () => {\n const { selectType } = this.state;\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n if (!selectType) {\n return;\n }\n const { name, alias, description } = values;\n this.props.addStep({\n type: selectType.name,\n name,\n alias,\n description\n });\n });\n };\n this.state = {};\n }\n render() {\n const { definitions, onClose, checkStepName, addSub } = this.props;\n const { selectType } = this.state;\n const categories = buildDefinitionCategory(definitions?.filter((def) => !addSub || def.name != \"step-group\") || []);\n const { init } = this.field;\n const checkStepNameRule = (rule, value, callback) => {\n if (checkStepName(value)) {\n callback(\"Name is used.\");\n return;\n }\n callback();\n };\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n locale: locale().Dialog,\n autoFocus: true,\n overflowScroll: true,\n onClose,\n onCancel: onClose,\n width: 800,\n onOk: this.onSubmit,\n title: selectType ? i18n.t(\"Set Step Basic Info\").toString() : i18n.t(\"Select Step Type\").toString(),\n visible: true,\n v2: true\n },\n /* @__PURE__ */ React.createElement(\"div\", null, !selectType && categories.filter((c) => c.definitions.length > 0).map((category) => {\n return /* @__PURE__ */ React.createElement(\n Card,\n {\n title: category.title,\n contentHeight: \"auto\",\n key: category.title,\n subTitle: category.description\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"def-items\" }, category.definitions?.map((def) => {\n const item = /* @__PURE__ */ React.createElement(\"div\", { key: def.name, className: \"def-item\" }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"icon\",\n onClick: () => {\n this.setState({ selectType: def });\n }\n },\n /* @__PURE__ */ React.createElement(StepTypeIcon, { type: def.name })\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"name\" }, showAlias(def.name, def.alias)));\n if (def.description) {\n return /* @__PURE__ */ React.createElement(Balloon, { key: def.name + \"balloon\", trigger: item }, def.description);\n }\n return item;\n }))\n );\n }), selectType && /* @__PURE__ */ React.createElement(Form, { field: this.field }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Item, { label: i18n.t(\"Select Type\"), value: showAlias(selectType.name, selectType.alias) })), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Item, { label: i18n.t(\"Type Description\"), value: selectType.description }))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), labelTextAlign: \"left\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n htmlType: \"name\",\n name: \"name\",\n maxLength: 32,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: \"Please enter a valid workflow step name\"\n },\n {\n validator: checkStepNameRule\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n ...init(\"description\", {\n rules: [\n {\n maxLength: 256,\n message: \"Enter a description that contains less than 256 characters.\"\n }\n ]\n })\n }\n ))))))\n );\n }\n}\nexport default TypeSelect;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport classNames from \"classnames\";\nimport { connect } from \"dva\";\nimport _ from \"lodash\";\nimport React from \"react\";\nimport Draggable from \"react-draggable\";\nimport { AiOutlinePlayCircle } from \"react-icons/ai\";\nimport { FiStopCircle } from \"react-icons/fi\";\nimport { WorkflowEditContext } from \"../../context\";\nimport { Edge } from \"./edge\";\nimport { Step } from \"./step\";\nimport StepForm from \"./step-form\";\nimport TypeSelect from \"./type-select\";\nlet WorkflowStudio = class extends React.Component {\n constructor(props) {\n super(props);\n this.renderSteps = (props) => {\n const steps = props.steps?.map((step) => {\n const se = Object.assign({ nodeType: \"step\", width: 260 }, step);\n if (step.subSteps) {\n se.subSteps = _.cloneDeep(step.subSteps);\n }\n return se;\n }) || [];\n steps.unshift({ nodeType: \"start\", width: 100, name: \"start\", type: \"\" });\n steps.push({ nodeType: \"end\", width: 100, name: \"end\", type: \"\" });\n return steps;\n };\n this.onChange = () => {\n const { steps } = this.state;\n const ws = steps.filter((step) => step.nodeType === \"step\").map((step) => {\n return _.omit(step, [\"width\", \"incomplete\", \"nodeType\"]);\n });\n this.props.onChange(ws);\n };\n this.checkStepName = (name) => {\n const { steps } = this.state;\n let found = false;\n steps.map((step) => {\n if (step.name === name) {\n found = true;\n }\n step.subSteps?.map((subStep) => {\n if (subStep.name === name) {\n found = true;\n }\n });\n });\n return found;\n };\n this.addStep = (step) => {\n const { addIndex, subIndex, steps, subStep } = this.state;\n if (!subStep) {\n steps.splice(addIndex, 0, { ...step, nodeType: \"step\", width: 260, incomplete: true });\n } else {\n if (steps[addIndex].subSteps) {\n steps[addIndex].subSteps?.splice(subIndex, 0, step);\n } else {\n steps[addIndex].subSteps = [step];\n }\n }\n this.setState(\n {\n steps,\n changed: true,\n addIndex: 0,\n subIndex: 0,\n subStep: false\n },\n this.onChange\n );\n if (step.type != \"step-group\") {\n this.setState({ showStep: step, subStep });\n }\n };\n this.onUpdateStep = (step) => {\n const { steps } = this.state;\n steps.map((s, index) => {\n if (s.name === step.name) {\n steps[index] = { ...s, ...step, incomplete: false };\n }\n s.subSteps?.map((subStep, j) => {\n if (subStep.name === step.name && s.subSteps) {\n s.subSteps[j] = { ...step };\n }\n });\n });\n this.setState({ steps, showStep: void 0, subStep: false }, this.onChange);\n };\n this.onDeleteStep = (stepName) => {\n const { steps } = this.state;\n const newSteps = _.cloneDeep(steps);\n newSteps.map((s, index) => {\n s.subSteps?.map((subStep, j) => {\n if (subStep.name === stepName && s.subSteps) {\n s.subSteps.splice(j, 1);\n }\n });\n if (s.name === stepName && s.nodeType === \"step\") {\n newSteps.splice(index, 1);\n }\n });\n this.setState({ steps: newSteps }, this.onChange);\n };\n const steps = this.renderSteps(props);\n this.state = { steps, stepInterval: 100, addIndex: 0, subIndex: 0, changed: false };\n }\n componentDidUpdate(prevProps) {\n if (prevProps.steps != this.props.steps) {\n this.setState({ steps: this.renderSteps(this.props) });\n }\n }\n render() {\n const { steps, stepInterval, addIndex, showStep, subStep } = this.state;\n const { definitions, subMode } = this.props;\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\"run-studio\"),\n style: {\n paddingLeft: \"2rem\"\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"studio\" }, /* @__PURE__ */ React.createElement(Draggable, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"workflow-graph\" }, /* @__PURE__ */ React.createElement(Edge, { steps: steps || [], stepInterval }), steps?.map((step, index) => {\n const addAction = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"line-action\",\n onClick: () => {\n this.setState({ addIndex: index });\n }\n },\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line-icon\" }, /* @__PURE__ */ React.createElement(\"svg\", { \"data-icon\": \"plus\", width: \"16\", height: \"16\", viewBox: \"0 0 16 16\", fill: \"currentColor\" }, /* @__PURE__ */ React.createElement(\"desc\", null, \"plus\"), /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M13 7H9V3c0-.55-.45-1-1-1s-1 .45-1 1v4H3c-.55 0-1 .45-1 1s.45 1 1 1h4v4c0 .55.45 1 1 1s1-.45 1-1V9h4c.55 0 1-.45 1-1s-.45-1-1-1z\",\n fillRule: \"evenodd\"\n }\n )))\n );\n switch (step.nodeType) {\n case \"start\":\n return /* @__PURE__ */ React.createElement(\"div\", { key: step.nodeType + step.name, className: classNames(\"step\", \"step-start\") }, /* @__PURE__ */ React.createElement(AiOutlinePlayCircle, { size: 24 }), /* @__PURE__ */ React.createElement(\"div\", { className: \"workflow-step-port workflow-step-port-output step-circle\" }));\n case \"step\":\n return /* @__PURE__ */ React.createElement(\"div\", { key: step.nodeType + step.name, style: { position: \"relative\" } }, /* @__PURE__ */ React.createElement(\n Step,\n {\n subMode,\n probeState: { stepWidth: step.width, stepInterval },\n step,\n group: step.type == \"step-group\",\n output: true,\n input: true,\n onNodeClick: (s, sub) => {\n this.setState({ showStep: s, subStep: sub });\n },\n onAddSubStep: (subIndex) => {\n this.setState({ addIndex: index, subIndex, subStep: true });\n },\n onDelete: this.onDeleteStep\n }\n ), addAction);\n case \"end\":\n return /* @__PURE__ */ React.createElement(\"div\", { key: step.nodeType + step.name, style: { position: \"relative\" } }, /* @__PURE__ */ React.createElement(\"div\", { key: step.nodeType + step.name, className: classNames(\"step\", \"step-end\") }, /* @__PURE__ */ React.createElement(FiStopCircle, { size: 24 }), /* @__PURE__ */ React.createElement(\"div\", { className: \"workflow-step-port workflow-step-port-input step-circle\" })), addAction);\n }\n return;\n })))),\n addIndex > 0 && /* @__PURE__ */ React.createElement(\n TypeSelect,\n {\n checkStepName: this.checkStepName,\n onClose: () => {\n this.setState({ addIndex: 0, subIndex: 0, subStep: false });\n },\n addSub: subStep,\n addStep: this.addStep,\n definitions\n }\n ),\n showStep && /* @__PURE__ */ React.createElement(\n WorkflowEditContext.Provider,\n {\n value: {\n stepName: showStep.name,\n steps: steps.filter((step) => step.nodeType === \"step\")\n }\n },\n /* @__PURE__ */ React.createElement(\n StepForm,\n {\n onClose: () => {\n this.setState({ showStep: void 0 });\n },\n isSubStep: subStep,\n onUpdate: this.onUpdateStep,\n step: showStep\n }\n )\n )\n );\n }\n};\nWorkflowStudio = __decorateClass([\n connect()\n], WorkflowStudio);\nexport default WorkflowStudio;\n","\"use strict\";\nimport { Message } from \"@alifd/next\";\nimport * as yaml from \"js-yaml\";\nimport React, { useEffect, useState } from \"react\";\nimport DefinitionCode from \"../DefinitionCode\";\nimport { Translation } from \"../Translation\";\nexport const WorkflowYAML = (props) => {\n const id = \"workflow:\" + props.name;\n const [content, setContent] = useState();\n useEffect(() => {\n try {\n const c = yaml.dump(props.steps);\n setContent(c);\n } catch {\n }\n }, [props.steps]);\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Message, { type: \"help\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Translation, null, \"The workflow step spec reference document\"), \":\", /* @__PURE__ */ React.createElement(\n \"a\",\n {\n href: \"http://kubevela.net/docs/end-user/workflow/built-in-workflow-defs\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n style: { marginLeft: \"16px\" }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Click here\")\n ))), /* @__PURE__ */ React.createElement(\"div\", { id, style: { height: \"calc(100vh - 340px)\" } }, /* @__PURE__ */ React.createElement(\n DefinitionCode,\n {\n onChange: (value) => {\n try {\n const newSteps = yaml.load(value);\n props.onChange(newSteps);\n } catch (err) {\n console.log(err);\n }\n },\n value: content,\n language: \"yaml\",\n theme: \"hc-black\",\n containerId: id\n }\n )));\n};\n","\"use strict\";\nimport * as H from \"history\";\nfunction renderUrl(path, query) {\n if (query && Object.keys(query).length > 0) {\n path += \"?\" + toUrlParams(query);\n }\n return path;\n}\nfunction encodeURIComponent2(val, pctEncodeSpaces) {\n return encodeURIComponent(val).replace(/%40/gi, \"@\").replace(/%3A/gi, \":\").replace(/%24/g, \"$\").replace(/%2C/gi, \",\").replace(/%3B/gi, \";\").replace(/%20/g, pctEncodeSpaces ? \"%20\" : \"+\").replace(/[!'()*]/g, function(c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\nfunction toUrlParams(a) {\n const s = [];\n const rbracket = /\\[\\]$/;\n const isArray = (obj) => {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n };\n const add = (k, v) => {\n v = typeof v === \"function\" ? v() : v === null ? \"\" : v === void 0 ? \"\" : v;\n if (typeof v !== \"boolean\") {\n s[s.length] = encodeURIComponent2(k, true) + \"=\" + encodeURIComponent2(v, true);\n } else {\n const valueQueryPart = v ? \"\" : \"=\" + encodeURIComponent2(\"false\", true);\n s[s.length] = encodeURIComponent2(k, true) + valueQueryPart;\n }\n };\n const buildParams = (prefix, obj) => {\n let i, len, key;\n if (prefix) {\n if (isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n if (rbracket.test(prefix)) {\n add(prefix, obj[i]);\n } else {\n buildParams(prefix, obj[i]);\n }\n }\n } else if (obj && String(obj) === \"[object Object]\") {\n for (key in obj) {\n buildParams(prefix + \"[\" + key + \"]\", obj[key]);\n }\n } else {\n add(prefix, obj);\n }\n } else if (isArray(obj)) {\n for (i = 0, len = obj.length; i < len; i++) {\n add(obj[i].name, obj[i].value);\n }\n } else {\n for (key in obj) {\n buildParams(key, obj[key]);\n }\n }\n return s;\n };\n return buildParams(\"\", a).join(\"&\");\n}\nexport function parseKeyValue(keyValue) {\n const obj = {};\n const parts = (keyValue || \"\").split(\"&\");\n for (let keyValue2 of parts) {\n let splitPoint;\n let key;\n let val;\n if (keyValue2) {\n key = keyValue2 = keyValue2.replace(/\\+/g, \"%20\");\n splitPoint = keyValue2.indexOf(\"=\");\n if (splitPoint !== -1) {\n key = keyValue2.substring(0, splitPoint);\n val = keyValue2.substring(splitPoint + 1);\n }\n key = tryDecodeURIComponent(key);\n if (key !== void 0) {\n val = val !== void 0 ? tryDecodeURIComponent(val) : true;\n let parsedVal;\n if (typeof val === \"string\" && val !== \"\") {\n parsedVal = val === \"true\" || val === \"false\" ? val === \"true\" : val;\n } else {\n parsedVal = val;\n }\n if (!obj.hasOwnProperty(key)) {\n obj[key] = isNaN(parsedVal) ? val : parsedVal;\n } else if (Array.isArray(obj[key])) {\n obj[key].push(val);\n } else {\n obj[key] = [obj[key], isNaN(parsedVal) ? val : parsedVal];\n }\n }\n }\n }\n return obj;\n}\nfunction tryDecodeURIComponent(value) {\n try {\n return decodeURIComponent(value);\n } catch (e) {\n return void 0;\n }\n}\nexport class HistoryWrapper {\n constructor(history) {\n this.history = history || (process.env.NODE_ENV === \"test\" ? H.createMemoryHistory({ initialEntries: [\"/\"] }) : H.createBrowserHistory({ basename: \"/\" }));\n this.partial = this.partial.bind(this);\n this.push = this.push.bind(this);\n this.replace = this.replace.bind(this);\n this.getSearch = this.getSearch.bind(this);\n this.getHistory = this.getHistory.bind(this);\n this.getLocation = this.getLocation.bind(this);\n }\n getHistory() {\n return this.history;\n }\n getSearch() {\n return new URLSearchParams(this.history.location.search);\n }\n partial(query, replace) {\n const currentLocation = this.history.location;\n const newQuery = this.getSearchObject();\n for (const key of Object.keys(query)) {\n if (query[key] === null || query[key] === void 0) {\n delete newQuery[key];\n } else {\n newQuery[key] = query[key];\n }\n }\n const updatedUrl = renderUrl(currentLocation.pathname, newQuery);\n if (replace) {\n this.history.replace(updatedUrl, this.history.location.state);\n } else {\n this.history.push(updatedUrl, this.history.location.state);\n }\n }\n push(location) {\n this.history.push(location);\n }\n replace(location) {\n this.history.replace(location);\n }\n reload() {\n const prevState = this.history.location.state?.routeReloadCounter;\n this.history.replace({\n ...this.history.location,\n state: { routeReloadCounter: prevState ? prevState + 1 : 1 }\n });\n }\n getLocation() {\n return this.history.location;\n }\n // The param key include a prefix $\n getSearchObject() {\n return locationSearchToObject(this.history.location.search);\n }\n getPathName() {\n return this.history.location.pathname;\n }\n}\nexport function locationSearchToObject(search) {\n let queryString = typeof search === \"number\" ? String(search) : search;\n if (queryString.length > 0) {\n if (queryString.startsWith(\"?\")) {\n return parseKeyValue(queryString.substring(1));\n }\n return parseKeyValue(queryString);\n }\n return {};\n}\nexport let locationService = new HistoryWrapper();\n","\"use strict\";\nimport * as React from \"react\";\nimport { Dialog, Form, Grid, Message, NumberPicker } from \"@alifd/next\";\nimport { DeployModes } from \"@velaux/data\";\nimport _ from \"lodash\";\nimport i18n from \"../../../../i18n\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"./index.less\";\nimport Item from \"../../../../components/Item\";\nimport { If } from \"../../../../components/If\";\nimport { locationService } from \"../../../../services/LocationService\";\nconst { Row, Col } = Grid;\nconst generateCanaryDeployGroup = (step, batch) => {\n const interval = Math.round(100 / batch);\n const policies = step.properties ? step.properties[\"policies\"] : null;\n const steps = [\n {\n name: \"prepare-canary\",\n alias: \"Prepare Canary\",\n type: DeployModes.CanaryDeploy,\n properties: {\n weight: 0,\n policies: _.cloneDeep(policies)\n }\n }\n ];\n for (let i = 1; i <= batch; i++) {\n const batchStep = {\n name: step.name + \"-batch-\" + i,\n alias: \"Batch \" + i,\n type: DeployModes.CanaryDeploy,\n properties: {\n weight: i == batch ? 100 : interval * i,\n policies: []\n }\n };\n if (policies && batchStep.properties) {\n batchStep.properties[\"policies\"] = _.cloneDeep(policies);\n }\n const approveStep = { name: step.name + \"-approve-\" + i, alias: \"Approve \" + i, type: \"suspend\" };\n if (i > 0) {\n steps.push(approveStep);\n }\n steps.push(batchStep);\n }\n return {\n type: \"step-group\",\n name: step.name + \"-canary\",\n mode: \"StepByStep\",\n subSteps: steps\n };\n};\nexport const CanarySetting = (props) => {\n const [deployBatchConfig, setDeployBatchConfig] = React.useState({});\n const initBatch = 2;\n const getStepBatch = (stepName) => {\n if (deployBatchConfig[stepName]) {\n return deployBatchConfig[stepName];\n }\n return initBatch;\n };\n const canaryDeployDefinition = props.definitions?.find((d) => d.name === DeployModes.CanaryDeploy);\n const onSubmit = () => {\n if (!canaryDeployDefinition) {\n locationService.push(\"/addons/kruise-rollout\");\n return;\n }\n const newSteps = props.workflow?.steps?.map((step) => {\n if (step.type === DeployModes.Deploy) {\n const batch = getStepBatch(step.name);\n return generateCanaryDeployGroup(step, batch);\n }\n return step;\n });\n if (newSteps) {\n props.onChange(newSteps);\n }\n props.onCancel();\n };\n const deploySteps = props.workflow?.steps?.filter((step) => step.type === DeployModes.Deploy);\n const canSetting = deploySteps && deploySteps.length > 0;\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n locale: locale().Dialog,\n onCancel: props.onCancel,\n onClose: props.onCancel,\n onOk: onSubmit,\n footerActions: canSetting ? [\"ok\", \"cancel\"] : [\"cancel\"],\n title: i18n.t(\"Canary Rollout Setting\").toString(),\n visible: true,\n width: \"600px\"\n },\n /* @__PURE__ */ React.createElement(If, { condition: !canaryDeployDefinition }, /* @__PURE__ */ React.createElement(Message, { type: \"warning\" }, i18n.t(\"The default canary rollout is powered by kruise-rollout addon, let's enable it first.\"))),\n /* @__PURE__ */ React.createElement(If, { condition: canaryDeployDefinition }, canSetting && /* @__PURE__ */ React.createElement(\"div\", { className: \"canary-step-setting\" }, /* @__PURE__ */ React.createElement(Message, { type: \"help\", style: { marginBottom: \"var(--spacing-4)\" } }, i18n.t(\"You can also edit the workflow directly to switch to canary deploy mode.\")), /* @__PURE__ */ React.createElement(Form, null, deploySteps.map((step) => {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"canary-step\", key: step.name }, /* @__PURE__ */ React.createElement(\"div\", { className: \"source\" }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Item, { labelWidth: 70, label: \"Name\", value: step.name })), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Item, { labelWidth: 70, label: \"Alias\", value: step.alias })), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n labelWidth: 70,\n label: \"Policies\",\n value: step.properties && step.properties[\"policies\"] || []\n }\n )))), /* @__PURE__ */ React.createElement(\"div\", { className: \"target\" }, /* @__PURE__ */ React.createElement(Form.Item, { required: true, label: i18n.t(\"Batch Setting\").toString(), style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n NumberPicker,\n {\n onChange: (v) => {\n deployBatchConfig[step.name] = v;\n setDeployBatchConfig(deployBatchConfig);\n },\n defaultValue: initBatch,\n max: 4,\n min: 1\n }\n ))))));\n }))), !canSetting && /* @__PURE__ */ React.createElement(Message, { type: \"warning\" }, i18n.t(\"There is no deploy steps exist.\")))\n );\n};\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Balloon, Button, Card, Form, Grid, Loading, Message, Select, Tag, MenuButton } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport _ from \"lodash\";\nimport React from \"react\";\nimport { detailWorkflow, getWorkflowDefinitions, updateWorkflow } from \"../../api/workflows\";\nimport Item from \"../../components/Item\";\nimport { Translation } from \"../../components/Translation\";\nimport { WorkflowPrompt } from \"../../components/WorkflowPrompt\";\nimport WorkflowStudio from \"../../components/WorkflowStudio\";\nimport { WorkflowContext } from \"../../context\";\nimport { showAlias } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport \"./index.less\";\nimport classNames from \"classnames\";\nimport { WorkflowYAML } from \"../../components/WorkflowYAML\";\nimport i18n from \"../../i18n\";\nimport { CanarySetting } from \"./components/CanarySetting\";\nimport { locationService } from \"../../services/LocationService\";\nconst { Row, Col } = Grid;\nconst ButtonGroup = Button.Group;\nexport const WorkflowModeOptions = [\n {\n value: \"DAG\",\n label: i18n.t(\"DAG\"),\n description: \"Workflows will be executed in parallel in DAG mode based on dependencies.\"\n },\n {\n value: \"StepByStep\",\n label: i18n.t(\"StepByStep\"),\n description: \"The workflow will be executed serially step by step .\"\n }\n];\nlet ApplicationWorkflowStudio = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadWorkflow = () => {\n const {\n params: { appName, workflowName }\n } = this.props.match;\n detailWorkflow({ appName, name: workflowName }).then((res) => {\n this.setState({ workflow: res, mode: res.mode, subMode: res.subMode, steps: res.steps });\n });\n };\n this.loadApplicationWorkflows = async () => {\n const { applicationDetail } = this.props;\n if (applicationDetail) {\n this.props.dispatch({\n type: \"application/getApplicationWorkflows\",\n payload: { appName: applicationDetail.name }\n });\n }\n };\n this.loadWorkflowDefinitions = () => {\n getWorkflowDefinitions(\"Application\").then((res) => {\n if (res) {\n this.setState({\n definitions: res && res.definitions\n });\n }\n });\n };\n this.getEnvbindingByName = () => {\n const { envbinding } = this.props;\n const {\n params: { envName }\n } = this.props.match;\n return envbinding.find((env) => env.name === envName);\n };\n this.onChange = (steps) => {\n const { workflow } = this.state;\n this.setState({ steps, changed: !_.isEqual(steps, workflow?.steps) });\n };\n this.onSave = () => {\n const { workflow, steps, mode, subMode } = this.state;\n const { applicationDetail } = this.props;\n if (workflow && applicationDetail) {\n this.setState({ saveLoading: true });\n updateWorkflow(\n { appName: applicationDetail.name, workflowName: workflow.name },\n {\n alias: workflow.alias,\n description: workflow.description,\n default: workflow.default,\n mode,\n subMode,\n steps: steps || []\n }\n ).then((res) => {\n if (res) {\n Message.success(i18n.t(\"Workflow updated successfully\"));\n this.loadWorkflow();\n this.loadApplicationWorkflows();\n this.setState({ changed: false });\n }\n }).finally(() => {\n this.setState({ saveLoading: false });\n });\n }\n };\n this.state = {\n changed: false,\n mode: \"StepByStep\",\n subMode: \"DAG\",\n editMode: \"visual\"\n };\n }\n componentDidMount() {\n this.loadWorkflow();\n this.loadWorkflowDefinitions();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.match !== this.props.match || prevProps.envbinding !== this.props.envbinding) {\n this.loadWorkflow();\n }\n const search = locationService.getSearchObject();\n const setCanary = search && search[\"setCanary\"] == true ? true : false;\n if (this.state.setCanary != setCanary) {\n this.setState({ setCanary });\n }\n }\n render() {\n const { workflow, definitions, changed, saveLoading, mode, subMode, editMode, setCanary, steps } = this.state;\n const { applicationDetail, dispatch } = this.props;\n const envbinding = this.getEnvbindingByName();\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"run-layout\" }, changed && /* @__PURE__ */ React.createElement(\n WorkflowPrompt,\n {\n changed,\n content: \"Do you want to save your changes?\",\n title: i18n.t(\"Unsaved changes\"),\n onSave: this.onSave,\n dispatch,\n onClearChanged: () => {\n this.setState({ changed: false });\n }\n }\n ), /* @__PURE__ */ React.createElement(Card, { contentHeight: \"auto\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 10 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n label: i18n.t(\"Available Targets\"),\n value: /* @__PURE__ */ React.createElement(\"div\", null, envbinding?.targets?.map((tar) => {\n return /* @__PURE__ */ React.createElement(\n Balloon,\n {\n key: tar.name,\n trigger: /* @__PURE__ */ React.createElement(Tag, { style: { marginBottom: \"4px\" }, color: \"#85d4ff\", type: \"primary\" }, showAlias(tar.name, tar.alias))\n },\n /* @__PURE__ */ React.createElement(\"p\", null, \"Cluster: \", showAlias(tar.cluster?.clusterName || \"\", tar.clusterAlias)),\n /* @__PURE__ */ React.createElement(\"p\", null, \"Namespace: \", tar.cluster?.namespace)\n );\n }))\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: 4 }, /* @__PURE__ */ React.createElement(ButtonGroup, null, /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.setState({ editMode: \"visual\" });\n },\n className: classNames(\"edit-mode\", { active: editMode === \"visual\" })\n },\n \"VISUAL\"\n ), /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.setState({ editMode: \"yaml\" });\n },\n className: classNames(\"edit-mode\", \"two\", { active: editMode === \"yaml\" })\n },\n \"YAML\"\n ))), /* @__PURE__ */ React.createElement(\n Col,\n {\n span: 10,\n style: {\n display: \"flex\",\n justifyContent: \"end\",\n flexWrap: \"wrap\"\n }\n },\n /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n display: \"flex\",\n width: \"100%\",\n justifyContent: \"end\"\n }\n },\n /* @__PURE__ */ React.createElement(\n MenuButton,\n {\n style: { marginRight: \"var(--spacing-4)\" },\n autoWidth: false,\n label: i18n.t(\"More\").toString()\n },\n /* @__PURE__ */ React.createElement(\n MenuButton.Item,\n {\n onClick: () => {\n locationService.partial({ setCanary: true });\n this.setState({ setCanary: true });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Canary Rollout Setting\")\n )\n ),\n /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Mode\").toString(), labelAlign: \"inset\", style: { marginRight: \"8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n defaultValue: \"StepByStep\",\n value: mode,\n dataSource: WorkflowModeOptions,\n onChange: (value) => {\n this.setState({ mode: value, changed: this.state.mode !== value });\n }\n }\n )),\n /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Sub Mode\").toString(), labelAlign: \"inset\", style: { marginRight: \"8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n defaultValue: \"DAG\",\n value: subMode,\n onChange: (value) => {\n this.setState({ subMode: value, changed: this.state.subMode !== value });\n },\n dataSource: WorkflowModeOptions\n }\n )),\n /* @__PURE__ */ React.createElement(Button, { disabled: !changed, loading: saveLoading, type: \"primary\", onClick: this.onSave }, /* @__PURE__ */ React.createElement(Translation, null, \"Save\"))\n ),\n changed && /* @__PURE__ */ React.createElement(\"div\", { className: \"notice-changes\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Unsaved changes\"))\n ))), !workflow && /* @__PURE__ */ React.createElement(Loading, { visible: true }), workflow && editMode === \"visual\" && /* @__PURE__ */ React.createElement(\n WorkflowContext.Provider,\n {\n value: {\n appName: applicationDetail?.name,\n projectName: applicationDetail?.project?.name,\n workflow\n }\n },\n /* @__PURE__ */ React.createElement(\n WorkflowStudio,\n {\n subMode: workflow.subMode,\n definitions,\n steps,\n onChange: this.onChange\n }\n )\n ), workflow && editMode === \"yaml\" && /* @__PURE__ */ React.createElement(WorkflowYAML, { steps, name: workflow.name, onChange: this.onChange }), setCanary && /* @__PURE__ */ React.createElement(\n CanarySetting,\n {\n definitions,\n onCancel: () => {\n locationService.partial({ setCanary: false });\n this.setState({ setCanary: false });\n },\n workflow,\n onChange: this.onChange\n }\n ));\n }\n};\nApplicationWorkflowStudio = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], ApplicationWorkflowStudio);\nexport default ApplicationWorkflowStudio;\n","\"use strict\";\nimport { Button, Message, Grid, Dialog, Form, Input, Upload, Field, Loading } from \"@alifd/next\";\nimport React from \"react\";\nimport { AiOutlineCloudUpload } from \"react-icons/ai\";\nimport { getClusterDetails, updateCluster } from \"../../../../api/cluster\";\nimport DefinitionCode from \"../../../../components/DefinitionCode\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nconst { Col, Row } = Grid;\nclass AddClusterDialog extends React.Component {\n constructor(props) {\n super(props);\n this.loadClusterDetail = () => {\n const { editClusterName } = this.props;\n if (editClusterName) {\n getClusterDetails({ clusterName: editClusterName }).then((re) => {\n this.setState({ cluster: re, editMode: true });\n this.field.setValues(re);\n });\n }\n };\n this.onClose = () => {\n this.props.onClose();\n this.resetField();\n };\n this.onOk = () => {\n const { editMode, cluster } = this.state;\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n if (editMode) {\n updateCluster({\n name: cluster.name,\n alias: values.alias,\n icon: cluster.icon,\n description: values.description,\n dashboardURL: values.dashboardURL,\n kubeConfig: values.kubeConfig,\n labels: cluster.labels\n }).then((re) => {\n if (re) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"cluster update success\"));\n this.resetField();\n this.props.onOK();\n }\n });\n } else {\n this.props.dispatch({\n type: \"clusters/createCluster\",\n payload: values,\n callback: (re) => {\n if (re) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"cluster add success\"));\n this.resetField();\n this.props.onOK();\n }\n }\n });\n }\n });\n };\n this.onError = () => {\n };\n this.customRequest = (option) => {\n const reader = new FileReader();\n const fileselect = option.file;\n reader.readAsText(fileselect);\n reader.onload = () => {\n this.field.setValues({\n kubeConfig: reader.result?.toString() || \"\"\n });\n };\n return {\n file: File,\n onError: this.onError,\n abort() {\n }\n };\n };\n this.field = new Field(this);\n this.DefinitionCodeRef = React.createRef();\n this.state = {\n editMode: false,\n cluster: {\n name: \"\",\n kubeConfig: \"\"\n }\n };\n }\n componentDidMount() {\n this.loadClusterDetail();\n }\n resetField() {\n this.field.setValues({\n name: \"\",\n description: \"\",\n dashboardURL: \"\",\n kubeConfig: \"\"\n });\n }\n render() {\n const { visible, editClusterName } = this.props;\n const { editMode, cluster } = this.state;\n const FormItem = Form.Item;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 18\n }\n };\n const init = this.field.init;\n const values = this.field.getValues();\n const valueInfo = cluster.kubeConfig || values.kubeConfig || \"\";\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n locale: locale().Dialog,\n title: editMode ? /* @__PURE__ */ React.createElement(Translation, null, \"Edit Cluster Config\") : /* @__PURE__ */ React.createElement(Translation, null, \"Connect Existing Cluster\"),\n overflowScroll: true,\n autoFocus: true,\n width: 800,\n visible,\n onOk: this.onOk,\n onCancel: this.onClose,\n onClose: this.onClose,\n footerActions: [\"cancel\", \"ok\"],\n v2: true\n },\n /* @__PURE__ */ React.createElement(Loading, { visible: editClusterName && !editMode ? true : false, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n disabled: editMode,\n ...init(\"name\", {\n initValue: cluster.name,\n rules: [\n {\n required: true,\n pattern: checkName,\n message: \"Please enter a valid name contains only alphabetical words\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n ...init(\"alias\", {\n initValue: cluster.alias,\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n defaultValue: cluster.description,\n name: \"description\",\n ...init(\"description\", {\n initValue: cluster.description,\n rules: [\n {\n maxLength: 256,\n message: \"Enter a description that contains less than 256 characters.\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Dashboard URL\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"dashboardURL\",\n ...init(\"dashboardURL\", {\n initValue: cluster.dashboardURL,\n rules: [\n {\n required: false,\n format: \"url\",\n message: \"Input according to URL specification\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"KubeConfig\"), labelAlign: \"top\", required: true }, /* @__PURE__ */ React.createElement(Upload, { request: this.customRequest }, /* @__PURE__ */ React.createElement(Button, { text: true, type: \"normal\", className: \"padding-left-0\" }, /* @__PURE__ */ React.createElement(AiOutlineCloudUpload, null), /* @__PURE__ */ React.createElement(Translation, null, \"Upload Config File\"))), /* @__PURE__ */ React.createElement(\"div\", { id: \"guide-code\", className: \"guide-code\" }, /* @__PURE__ */ React.createElement(\n DefinitionCode,\n {\n containerId: \"guide-code\",\n language: \"yaml\",\n readOnly: false,\n ...init(\"kubeConfig\", {\n initValue: cluster.kubeConfig,\n rules: [\n {\n required: true,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please upload or edit kube config\")\n }\n ]\n }),\n value: valueInfo,\n ref: this.DefinitionCodeRef\n }\n )))))))\n );\n }\n}\nexport default AddClusterDialog;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport React from \"react\";\nimport \"./index.less\";\nimport { Dropdown, Menu, Grid, Card, Dialog } from \"@alifd/next\";\nimport kubernetesSvg from \"../../../../assets/kubernetes.svg\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { locale } from \"../../../../utils/locale\";\nimport { checkPermission } from \"../../../../utils/permission\";\nimport { connect } from \"dva\";\nlet CardContent = class extends React.Component {\n constructor(props) {\n super(props);\n this.editCluster = (name) => {\n this.props.editCluster(name);\n };\n this.onDeleteCluster = (name) => {\n this.props.deleteCluster(name);\n };\n this.isEditPermission = (item) => {\n const { userInfo } = this.props;\n const project = \"\";\n const request = { resource: `cluster:${item.name}`, action: \"update\" };\n if (checkPermission(request, project, userInfo)) {\n return /* @__PURE__ */ React.createElement(\n Menu.Item,\n {\n onClick: () => {\n this.editCluster(item.name);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n );\n } else {\n return null;\n }\n };\n this.isDeletePermission = (item) => {\n const { userInfo } = this.props;\n const project = \"\";\n const request = { resource: `cluster:${item.name}`, action: \"delete\" };\n if (checkPermission(request, project, userInfo)) {\n return /* @__PURE__ */ React.createElement(\n Menu.Item,\n {\n onClick: () => {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Are you sure you want the detach cluster?\"),\n onOk: () => {\n this.onDeleteCluster(item.name);\n },\n locale: locale().Dialog\n });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Detach\")\n );\n } else {\n return null;\n }\n };\n this.state = {\n extendDotVisible: false,\n choseIndex: 0\n };\n }\n render() {\n const { Row, Col } = Grid;\n const { clusters } = this.props;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, { wrap: true }, clusters.map((item) => {\n const { name, alias, status, icon, description, createTime, dashboardURL = \"#\" } = item;\n const showName = alias ? alias : name;\n const card = /* @__PURE__ */ React.createElement(Card, { locale, contentHeight: \"auto\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"cluster-card-top flexcenter\" }, /* @__PURE__ */ React.createElement(If, { condition: icon && icon != \"none\" }, /* @__PURE__ */ React.createElement(\"img\", { src: icon })), /* @__PURE__ */ React.createElement(If, { condition: !icon || icon === \"none\" }, /* @__PURE__ */ React.createElement(\"img\", { src: kubernetesSvg }))), /* @__PURE__ */ React.createElement(\"div\", { className: \"content-wrapper background-F9F8FF\" }, /* @__PURE__ */ React.createElement(Row, { className: \"content-title\" }, /* @__PURE__ */ React.createElement(Col, { span: 16, className: \"font-size-16 color1A1A1A\" }, /* @__PURE__ */ React.createElement(If, { condition: dashboardURL }, /* @__PURE__ */ React.createElement(\"a\", { title: name, target: \"_blank\", href: dashboardURL, rel: \"noopener noreferrer\" }, showName)), /* @__PURE__ */ React.createElement(If, { condition: !dashboardURL }, showName)), /* @__PURE__ */ React.createElement(If, { condition: name != \"local\" }, /* @__PURE__ */ React.createElement(Col, { span: 8, className: \"dot-wrapper\" }, /* @__PURE__ */ React.createElement(\n Dropdown,\n {\n trigger: /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n className: \"action\",\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"3448\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M365.066 197.39c0 0 0 0 0 0 0 58.569 47.479 106.048 106.048 106.048 58.569 0 106.048-47.479 106.048-106.048 0 0 0 0 0 0 0-58.569-47.479-106.048-106.048-106.048-58.569 0-106.048 47.479-106.048 106.048 0 0 0 0 0 0z\",\n fill: \"#a6a6a6\",\n \"p-id\": \"3449\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M365.066 512c0 0 0 0 0 0 0 58.569 47.479 106.048 106.048 106.048 58.569 0 106.048-47.479 106.048-106.048 0 0 0 0 0 0 0-58.569-47.479-106.048-106.048-106.048-58.569 0-106.048 47.479-106.048 106.048 0 0 0 0 0 0z\",\n fill: \"#a6a6a6\",\n \"p-id\": \"3450\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M365.066 826.61c0 0 0 0 0 0 0 58.569 47.479 106.048 106.048 106.048 58.569 0 106.048-47.479 106.048-106.048 0 0 0 0 0 0 0-58.569-47.479-106.048-106.048-106.048-58.569 0-106.048 47.479-106.048 106.048 0 0 0 0 0 0z\",\n fill: \"#a6a6a6\",\n \"p-id\": \"3451\"\n }\n )\n )\n },\n /* @__PURE__ */ React.createElement(Menu, null, this.isEditPermission(item), this.isDeletePermission(item))\n ))), /* @__PURE__ */ React.createElement(If, { condition: name === \"local\" }, /* @__PURE__ */ React.createElement(Col, { span: 8 }, /* @__PURE__ */ React.createElement(\n \"span\",\n {\n style: {\n color: \"#a6a6a6\",\n fontSize: \"12px\",\n textAlign: \"right\",\n display: \"block\",\n width: \"100%\",\n lineHeight: \"24px\"\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Local\")\n )))), /* @__PURE__ */ React.createElement(Row, { className: \"content-main\" }, /* @__PURE__ */ React.createElement(\"h4\", { className: \"color595959 font-size-14\", title: description }, description)), /* @__PURE__ */ React.createElement(Row, { className: \"content-foot colorA6A6A6\" }, /* @__PURE__ */ React.createElement(Col, { span: \"16\" }, /* @__PURE__ */ React.createElement(\"span\", null, createTime)), /* @__PURE__ */ React.createElement(Col, { span: \"8\", className: \"text-align-right padding-right-10\" }, /* @__PURE__ */ React.createElement(If, { condition: status == \"Healthy\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-success\" }), /* @__PURE__ */ React.createElement(Translation, null, \"Healthy\")), /* @__PURE__ */ React.createElement(If, { condition: status == \"Unhealthy\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"circle circle-warning\" }), /* @__PURE__ */ React.createElement(Translation, null, \"UnHealthy\"))))));\n return /* @__PURE__ */ React.createElement(Col, { xl: 6, m: 8, s: 12, xxs: 24, className: `card-content-wrapper`, key: item.name }, card);\n })));\n }\n};\nCardContent = __decorateClass([\n connect((store) => {\n return { ...store.user };\n })\n], CardContent);\nexport default CardContent;\n","\"use strict\";\nimport { Button, Dialog, Form, Input, Select, Field, Table, Message, Pagination } from \"@alifd/next\";\nimport React from \"react\";\nimport { getCloudClustersList } from \"../../../../api/cluster\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { ACKClusterStatus } from \"../../../../utils/common\";\nimport { handleError } from \"../../../../utils/errors\";\nimport { locale } from \"../../../../utils/locale\";\nclass CloudServiceDialog extends React.Component {\n constructor(props) {\n super(props);\n this.onClose = () => {\n this.props.setVisible(false);\n this.props.setCloudService(false);\n this.resetField();\n };\n this.onOk = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n this.setState({ btnLoading: true });\n const { provider, accessKeyID, accessKeySecret } = values;\n const { page, pageSize } = this.state;\n const params = {\n provider,\n accessKeyID,\n accessKeySecret,\n page,\n pageSize,\n customError: true\n };\n getCloudClustersList(params).then((re) => {\n if (re) {\n this.setState({\n choseInput: false,\n cloudClusters: re.clusters,\n btnLoading: false,\n total: re.total\n });\n this.props.onPropsOK();\n }\n }).catch((err) => {\n this.setState({ btnLoading: false });\n handleError(err);\n });\n });\n };\n this.connectCloudCluster = (record) => {\n const { id = \"\", description = \"\", icon = \"\", name = \"\" } = record;\n const { accessKeyID, accessKeySecret, provider } = this.field.getValues();\n const params = {\n provider,\n accessKeyID,\n accessKeySecret,\n alias: name,\n name: id.substring(0, 16),\n description,\n clusterID: id,\n icon\n };\n new Promise((resolve) => {\n this.props.dispatch({\n type: \"clusters/connectcloudCluster\",\n payload: {\n params,\n resolve\n }\n });\n }).then((res) => {\n if (res) {\n Message.success({\n title: \"success,connect success\",\n duration: 3e3\n });\n }\n }).then(() => {\n });\n };\n this.handleChange = (pageIdx) => {\n this.setState(\n {\n page: pageIdx\n },\n () => {\n const { provider, accessKeyID, accessKeySecret } = this.field.getValues();\n const { page, pageSize } = this.state;\n const params = {\n provider,\n accessKeyID,\n accessKeySecret,\n page,\n pageSize,\n customError: true\n };\n this.setState({ tableLoading: true });\n getCloudClustersList(params).then((res) => {\n if (res) {\n this.setState({\n choseInput: false,\n cloudClusters: res.clusters,\n tableLoading: false,\n total: res.total\n });\n }\n }).catch((err) => {\n this.setState({ tableLoading: false });\n handleError(err);\n });\n }\n );\n };\n this.field = new Field(this);\n this.state = {\n page: 1,\n pageSize: 10,\n choseInput: true,\n cloudClusters: [],\n btnLoading: false,\n tableLoading: false,\n total: 0\n };\n }\n resetField() {\n this.setState({\n choseInput: true\n });\n }\n render() {\n const init = this.field.init;\n const { visible } = this.props;\n const { choseInput, cloudClusters, btnLoading, total, tableLoading } = this.state;\n const { Column } = Table;\n const FormItem = Form.Item;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 8\n },\n wrapperCol: {\n span: 16\n }\n };\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Cluster Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"status\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Cluster Status\"),\n dataIndex: \"status\",\n cell: (v) => {\n const findArr = ACKClusterStatus.filter((item) => {\n return item.key == v;\n });\n return /* @__PURE__ */ React.createElement(\"span\", { style: { color: findArr[0].color || \"\" } }, \" \", v, \" \");\n }\n },\n {\n key: \"apiServerURL\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"API Address\"),\n dataIndex: \"apiServerURL\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"type\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Type\"),\n dataIndex: \"type\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"zone\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Zone\"),\n dataIndex: \"zone\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"cluster:*\", action: \"create\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n component: \"a\",\n onClick: () => {\n this.connectCloudCluster(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Connect\")\n ));\n }\n }\n ];\n const providerList = [{ value: \"aliyun\", label: \"Aliyun ACK\" }];\n const notice = \"DataNature won't save your AK/SK and we strongly recommend allocating the smallest available permission set\";\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n Dialog,\n {\n locale: locale().Dialog,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Connect Kubernetes Cluster From Cloud\"),\n autoFocus: true,\n visible,\n onOk: this.onOk,\n onCancel: this.onClose,\n onClose: this.onClose,\n footer: choseInput && /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onOk, loading: btnLoading }, /* @__PURE__ */ React.createElement(Translation, null, \"Next Step\")),\n v2: true\n },\n /* @__PURE__ */ React.createElement(If, { condition: choseInput }, /* @__PURE__ */ React.createElement(Message, { style: { marginBottom: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, notice)), /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field, className: \"cloud-server-wrapper\" }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Provider\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n size: \"large\",\n dataSource: providerList,\n className: \"item\",\n ...init(\"provider\", {\n rules: [\n {\n required: true,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"content cannot be empty\")\n }\n ]\n })\n }\n )), /* @__PURE__ */ React.createElement(FormItem, { label: \"AccessKey\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n htmlType: \"password\",\n name: \"accessKeyID\",\n ...init(\"accessKeyID\", {\n rules: [\n {\n required: true,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"content cannot be empty\")\n }\n ]\n })\n }\n )), /* @__PURE__ */ React.createElement(FormItem, { label: \"AccessKeySecret\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n htmlType: \"password\",\n name: \"accessKeySecret\",\n ...init(\"accessKeySecret\", {\n rules: [\n {\n required: true,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"content cannot be empty\")\n }\n ]\n })\n }\n )))),\n /* @__PURE__ */ React.createElement(If, { condition: !choseInput }, /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: cloudClusters, loading: tableLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))), /* @__PURE__ */ React.createElement(\n Pagination,\n {\n locale: locale().Pagination,\n hideOnlyOnePage: true,\n total,\n size: \"small\",\n className: \"cluster-cloud-pagination-wrapper\",\n pageSize: this.state.pageSize,\n current: this.state.page,\n onChange: this.handleChange\n }\n ))\n ));\n }\n}\nexport default CloudServiceDialog;\n","\"use strict\";\nimport { Grid, Input } from \"@alifd/next\";\nimport React from \"react\";\nimport \"./index.less\";\nimport i18n from \"../../../../i18n\";\nimport { AiOutlineSearch } from \"react-icons/ai\";\nclass InputSearch extends React.Component {\n constructor(props) {\n super(props);\n this.handleChangName = (value) => {\n this.setState({\n inputValue: value\n });\n };\n this.handleClickSearch = () => {\n const { inputValue } = this.state;\n this.props.query(inputValue);\n };\n this.state = {\n inputValue: \"\"\n };\n }\n render() {\n const { Row, Col } = Grid;\n const { inputValue } = this.state;\n return /* @__PURE__ */ React.createElement(Row, { className: \"cluster-input-wrapper\" }, /* @__PURE__ */ React.createElement(Col, { span: \"24\" }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(AiOutlineSearch, { onClick: this.handleClickSearch, style: { margin: 4 } }),\n placeholder: i18n.t(\"Search by Name and Description etc\").toString(),\n onChange: this.handleChangName,\n onPressEnter: this.handleClickSearch,\n value: inputValue,\n size: \"large\",\n className: \"item\"\n }\n )));\n }\n}\nexport default InputSearch;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Button, Message } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Fragment } from \"react\";\nimport { getEnabledAddons, getAddonsList } from \"../../api/addons\";\nimport { deleteCluster } from \"../../api/cluster\";\nimport { If } from \"../../components/If\";\nimport { ListTitle } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport AddClusterDialog from \"./components/AddClusterDialog/index\";\nimport CardContend from \"./components/CardContent/index\";\nimport CloudServiceDialog from \"./components/CloudServiceDialog/index\";\nimport SelectSearch from \"./components/ClusterSelectSearch\";\nlet Cluster = class extends React.Component {\n constructor(props) {\n super(props);\n this.getClusterList = async () => {\n const { page, pageSize, query } = this.state;\n this.props.dispatch({\n type: \"clusters/getClusterList\",\n payload: {\n query,\n page,\n pageSize\n }\n });\n };\n this.query = (query) => {\n this.setState(\n {\n query\n },\n () => {\n this.getClusterList();\n }\n );\n };\n this.onDeleteCluster = (name) => {\n deleteCluster({ clusterName: name }).then((re) => {\n if (re) {\n Message.success(\"cluster delete success\");\n this.getClusterList();\n }\n });\n };\n this.onGetEnabledAddon = async () => {\n getEnabledAddons({}).then((res) => {\n this.onGetAddonsList(res.enabledAddons);\n });\n };\n this.onGetAddonsList = async (enableAddon) => {\n getAddonsList({}).then((res) => {\n const addonMessage = [];\n const addonList = res.addons;\n (enableAddon || []).forEach((ele) => {\n addonList.forEach((item) => {\n const isMatchName = ele.name === item.name;\n const deploy = item.deployTo || { runtimeCluster: false };\n if (isMatchName && deploy.runtimeCluster) {\n addonMessage.push({ name: item.name, path: item.url || \"\" });\n }\n });\n });\n if (addonMessage && addonMessage.length !== 0) {\n this.setState({\n isShowAddonMessage: true,\n addonMessage\n });\n }\n });\n };\n this.handleHiddenAddonMessage = () => {\n this.setState({ isShowAddonMessage: false });\n };\n this.state = {\n query: \"\",\n page: 0,\n pageSize: 10,\n showAddCluster: false,\n showAddCloudCluster: false,\n editClusterName: \"\",\n addonMessage: [],\n isShowAddonMessage: false\n };\n }\n componentDidMount() {\n this.getClusterList();\n }\n showAddonMessage() {\n const { addonMessage } = this.state;\n return (addonMessage || []).map((item, index, arr) => {\n const lastIndex = arr.length - 1;\n const showSymbol = index === lastIndex ? \"\" : \"\\u3001\";\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(\"a\", { href: item.path }, item.name, showSymbol));\n });\n }\n render() {\n const { clusterList = [], dispatch } = this.props;\n const {\n page,\n pageSize,\n query,\n showAddCluster,\n showAddCloudCluster,\n editClusterName,\n isShowAddonMessage,\n addonMessage\n } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: \"Clusters\",\n subTitle: \"Setup Kubernetes clusters by adding an existing one or creating a new one via cloud provider\",\n extButtons: [\n /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"cluster:*\", action: \"create\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n style: { marginRight: \"16px\" },\n onClick: () => {\n this.setState({ showAddCloudCluster: true });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Connect From Cloud\")\n ), /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n style: { marginRight: \"16px\" },\n onClick: () => {\n this.setState({ showAddCluster: true });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Connect Existing Cluster\")\n )))\n ]\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: isShowAddonMessage && addonMessage.length != 0 }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\", closeable: true, onClose: this.handleHiddenAddonMessage }, \"Connect Cluster Success! Please upgrade \", this.showAddonMessage(), \" addons, make them take effect in the new cluster.\")), /* @__PURE__ */ React.createElement(\n SelectSearch,\n {\n query: (q) => {\n this.query(q);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n CardContend,\n {\n editCluster: (name) => {\n this.setState({ showAddCluster: true, editClusterName: name });\n },\n deleteCluster: this.onDeleteCluster,\n clusters: clusterList\n }\n ), /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(If, { condition: showAddCloudCluster }, /* @__PURE__ */ React.createElement(\n CloudServiceDialog,\n {\n visible: showAddCloudCluster,\n setVisible: (visible) => {\n this.getClusterList();\n this.setState({ showAddCloudCluster: visible });\n },\n setCloudService: (visible) => {\n this.setState({ showAddCloudCluster: visible });\n },\n onPropsOK: () => {\n this.onGetEnabledAddon();\n },\n dispatch\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showAddCluster }, /* @__PURE__ */ React.createElement(\n AddClusterDialog,\n {\n page,\n pageSize,\n query,\n visible: showAddCluster,\n editClusterName,\n onClose: () => {\n this.getClusterList();\n this.setState({ showAddCluster: false, editClusterName: \"\" });\n },\n onOK: () => {\n this.getClusterList();\n this.onGetEnabledAddon();\n this.setState({ showAddCluster: false, editClusterName: \"\" });\n },\n dispatch\n }\n ))));\n }\n};\nCluster = __decorateClass([\n connect((store) => {\n return { ...store.clusters };\n })\n], Cluster);\nexport default Cluster;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid, Form, Input, Field, Button, Message, Card, Loading, Select, Dialog } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport { BiCodeBlock, BiLaptop } from \"react-icons/bi\";\nimport { createConfig, detailConfig, detailTemplate, listTemplates, updateConfig } from \"../../../../api/config\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport UISchema from \"../../../../components/UISchema\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nlet CreateConfigDialog = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadProjectTemplates = () => {\n const { project } = this.props;\n if (project) {\n listTemplates(project).then((res) => {\n if (res && Array.isArray(res.templates)) {\n this.setState({ templates: res.templates });\n } else {\n this.setState({ templates: [] });\n }\n });\n }\n };\n this.onDetailConfig = (callback) => {\n const { configName, project } = this.props;\n if (configName) {\n detailConfig(configName, project).then((res) => {\n if (res) {\n this.field.setValues({\n name: res.name,\n alias: res.alias,\n description: res.description,\n properties: res.properties\n });\n if (callback) {\n callback();\n }\n }\n });\n }\n };\n this.onDetailTemplate = (template) => {\n this.setState({ templateLoading: true });\n const { project } = this.props;\n detailTemplate(template, project).then((re) => {\n if (re) {\n this.setState({ templateDetail: re });\n }\n }).finally(() => {\n this.setState({ templateLoading: false });\n });\n };\n this.onClose = () => {\n this.props.onClose();\n };\n this.onCreate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { template } = this.props;\n let templateName = template?.name;\n let namespace = template?.namespace;\n if (values.template) {\n if (values.template.includes(\"/\")) {\n namespace = values.template.split(\"/\")[0];\n templateName = values.template.split(\"/\")[1];\n } else {\n templateName = values.template;\n namespace = \"\";\n }\n }\n if (!templateName) {\n return;\n }\n const { name, alias, description, properties } = values;\n const params = {\n alias,\n name,\n description,\n template: {\n name: templateName,\n namespace\n },\n properties: JSON.stringify(properties)\n };\n this.setState({ createLoading: true });\n createConfig(params, this.props.project).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Config created successfully\"));\n if (templateName && [\"image-registry\", \"helm-repository\", \"tls-certificate\"].includes(templateName)) {\n Dialog.confirm({\n content: i18n.t(\n \"This config needs to be distributed, you should go to the project summary page to do it before you want to use it.\"\n ).toString(),\n locale: locale().Dialog,\n onOk: () => {\n this.props.onSuccess();\n },\n onCancel: () => {\n this.props.onSuccess();\n }\n });\n } else {\n this.props.onSuccess();\n }\n }\n }).finally(() => {\n this.setState({ createLoading: false });\n });\n });\n };\n this.onUpdate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { name, alias, description, properties } = values;\n const params = {\n alias,\n description,\n properties: JSON.stringify(properties)\n };\n this.setState({ createLoading: true });\n updateConfig(name, params, this.props.project).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Config updated successfully\"));\n this.props.onSuccess();\n }\n }).finally(() => {\n this.setState({ createLoading: false });\n });\n });\n };\n this.field = new Field(this);\n this.state = {\n templateLoading: false,\n createLoading: false,\n propertiesMode: \"native\"\n };\n this.field = new Field(this);\n this.uiSchemaRef = React.createRef();\n }\n componentDidMount() {\n const { configName, template } = this.props;\n if (configName) {\n this.onDetailConfig(() => {\n if (template) {\n this.onDetailTemplate(template);\n }\n });\n } else {\n if (template) {\n this.onDetailTemplate(template);\n }\n }\n this.loadProjectTemplates();\n }\n render() {\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const init = this.field.init;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const { configName, project, template } = this.props;\n const { createLoading, templateDetail, templateLoading, propertiesMode, templates } = this.state;\n const edit = configName != \"\" && configName != void 0;\n const buttons = [\n /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.onClose, style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\"))\n ];\n if (!edit) {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: project ? `project:${project}/config:${configName}` : `config:${configName}`,\n action: \"create\"\n },\n project\n },\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onCreate, loading: createLoading }, /* @__PURE__ */ React.createElement(Translation, null, \"Create\"))\n )\n );\n } else {\n buttons.push(\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: project ? `project:${project}/config:${configName}` : `config:${configName}`,\n action: \"update\"\n },\n project\n },\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onUpdate, loading: createLoading }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\"))\n )\n );\n }\n const validator = (rule, value, callback) => {\n this.uiSchemaRef.current?.validate(callback);\n };\n const templateOptions = templates?.map((tem) => {\n return {\n label: tem.namespace + \"/\" + (tem.alias || tem.name),\n value: tem.namespace + \"/\" + tem.name\n };\n });\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: edit ? i18n.t(\"Edit a config\") : i18n.t(\"New a config\"),\n placement: \"right\",\n width: 800,\n onClose: this.onClose,\n extButtons: buttons\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), labelTextAlign: \"left\", required: true, disabled: edit }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n placeholder: i18n.t(\"Please enter\").toString(),\n maxLength: 32,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a valid name\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n locale: locale().Input,\n name: \"description\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"description\")\n }\n )))), project && !template && /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { required: true, label: /* @__PURE__ */ React.createElement(Translation, null, \"Template\") }, /* @__PURE__ */ React.createElement(\n Select,\n {\n dataSource: templateOptions,\n locale: locale().Select,\n name: \"template\",\n placeholder: i18n.t(\"Please select a template\").toString(),\n ...init(\"template\", {\n rules: [\n {\n required: true,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please select a template\")\n }\n ]\n }),\n onChange: (value) => {\n let namespace;\n let name = value;\n if (value.includes(\"/\")) {\n namespace = value.split(\"/\")[0];\n name = value.split(\"/\")[1];\n }\n this.field.remove(\"properties\");\n this.setState({ templateDetail: void 0 });\n this.onDetailTemplate({ name, namespace });\n this.field.setValue(\"template\", value);\n }\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(Loading, { visible: templateLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\n Card,\n {\n contentHeight: \"auto\",\n style: { marginTop: \"8px\" },\n title: i18n.t(\"Properties\").toString(),\n className: \"withActions\",\n subTitle: /* @__PURE__ */ React.createElement(\n Button,\n {\n style: { alignItems: \"center\", display: \"flex\" },\n onClick: () => {\n if (propertiesMode === \"native\") {\n this.setState({ propertiesMode: \"code\" });\n } else {\n this.setState({ propertiesMode: \"native\" });\n }\n }\n },\n propertiesMode === \"native\" && /* @__PURE__ */ React.createElement(BiCodeBlock, { size: 14, title: i18n.t(\"Switch to the coding mode\") }),\n propertiesMode === \"code\" && /* @__PURE__ */ React.createElement(BiLaptop, { size: 14, title: i18n.t(\"Switch to the native mode\") })\n )\n },\n /* @__PURE__ */ React.createElement(FormItem, { required: true }, /* @__PURE__ */ React.createElement(If, { condition: templateDetail && templateDetail.uiSchema }, /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...init(`properties`, {\n rules: [\n {\n validator,\n message: i18n.t(\"Please check the config properties\")\n }\n ]\n }),\n enableCodeEdit: propertiesMode === \"code\",\n uiSchema: templateDetail && templateDetail.uiSchema,\n ref: this.uiSchemaRef,\n mode: edit ? \"edit\" : \"new\"\n }\n )))\n )), /* @__PURE__ */ React.createElement(If, { condition: !templateDetail }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Can not load the template detail\"))))))\n ));\n }\n};\nCreateConfigDialog = __decorateClass([\n connect()\n], CreateConfigDialog);\nexport default CreateConfigDialog;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Table, Button, Dialog, Message } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component, Fragment } from \"react\";\nimport { getConfigs, deleteConfig } from \"../../api/config\";\nimport { If } from \"../../components/If\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport { momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport { getMatchParamObj } from \"../../utils/utils\";\nimport \"./index.less\";\nimport CreateConfigDialog from \"./components/CreateConfigDialog\";\nimport { HiOutlineRefresh } from \"react-icons/hi\";\nlet Configs = class extends Component {\n constructor(props) {\n super(props);\n this.getTemplateName = () => {\n return getMatchParamObj(this.props.match, \"templateName\");\n };\n this.onDelete = (record) => {\n Dialog.confirm({\n content: \"Are you sure want to delete this config\",\n onOk: () => {\n const { name } = record;\n if (name) {\n deleteConfig(name).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Config deleted successfully\"));\n this.listConfigs();\n }\n });\n }\n },\n locale: locale().Dialog\n });\n };\n this.onSuccess = () => {\n this.setState({ visible: false, configName: \"\" });\n this.listConfigs();\n };\n this.onCloseCreate = () => {\n this.setState({ visible: false, configName: \"\" });\n };\n this.handleClickCreate = () => {\n this.setState({\n visible: true\n });\n };\n this.onClick = (configName) => {\n this.setState({\n visible: true,\n configName\n });\n };\n this.state = {\n template: this.getTemplateName(),\n list: [],\n visible: false,\n isLoading: false\n };\n }\n componentDidMount() {\n this.listConfigs();\n }\n componentWillReceiveProps(nextProps) {\n const nextPropsParams = nextProps.match.params || {};\n if (nextPropsParams.templateName && nextPropsParams.templateName !== this.state.template) {\n this.setState(\n {\n template: nextPropsParams.templateName\n },\n () => {\n this.listConfigs();\n }\n );\n }\n }\n listConfigs() {\n const { template } = this.state;\n if (!template) {\n return;\n }\n this.setState({ isLoading: true });\n getConfigs(template).then((res) => {\n if (res) {\n this.setState({\n list: res.configs || []\n });\n } else {\n this.setState({\n list: []\n });\n }\n }).finally(() => {\n this.setState({ isLoading: false });\n });\n }\n render() {\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name(Alias)\"),\n dataIndex: \"name\",\n cell: (v, i, config) => {\n const title = `${v}(${config.alias || \"-\"})`;\n if (config.sensitive) {\n return /* @__PURE__ */ React.createElement(\"span\", null, title);\n }\n return /* @__PURE__ */ React.createElement(\"a\", { onClick: () => this.onClick(config.name) }, title);\n }\n },\n {\n key: \"description\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\"),\n dataIndex: \"description\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"createTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n dataIndex: \"createdTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Permission, { request: { resource: `config:${record.name}`, action: \"delete\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onDelete(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Delete\")\n )));\n }\n }\n ];\n const { Column } = Table;\n const { list, visible, isLoading, template, configName } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"list-content\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"create-btn\" }, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: () => this.listConfigs(), style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(HiOutlineRefresh, null)), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `config:*`, action: \"create\" }, project: \"\" }, /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.handleClickCreate }, /* @__PURE__ */ React.createElement(Translation, null, \"New\")))), /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: list, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))), /* @__PURE__ */ React.createElement(If, { condition: visible && template }, /* @__PURE__ */ React.createElement(\n CreateConfigDialog,\n {\n visible,\n configName,\n template: { name: template },\n onSuccess: this.onSuccess,\n onClose: this.onCloseCreate\n }\n )));\n }\n};\nConfigs = __decorateClass([\n connect((store) => {\n return { ...store.configs, ...store.user };\n })\n], Configs);\nexport default Configs;\n","\"use strict\";\nimport { Grid, Input } from \"@alifd/next\";\nimport React from \"react\";\nimport { AiOutlineSearch } from \"react-icons/ai\";\nimport i18n from \"../../../../i18n\";\nimport \"./index.less\";\nclass SelectSearch extends React.Component {\n constructor() {\n super(...arguments);\n this.handleChangName = (e) => {\n this.props.handleChangName(e);\n };\n }\n render() {\n const { Row, Col } = Grid;\n const { searchValue } = this.props;\n return /* @__PURE__ */ React.createElement(Row, { className: \"definitions-select-wrapper border-radius-8\", wrap: true }, /* @__PURE__ */ React.createElement(Col, { m: 8, s: 12, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(AiOutlineSearch, { style: { margin: 4 } }),\n hasClear: true,\n size: \"large\",\n placeholder: i18n.t(\"Search by definition name\"),\n onChange: this.handleChangName,\n value: searchValue,\n className: \"item\"\n }\n )));\n }\n}\nexport default SelectSearch;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Table, Button, Message } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport _ from \"lodash\";\nimport React, { Component, Fragment } from \"react\";\nimport { getDefinitionsList, updateDefinitionStatus } from \"../../api/definitions\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport { locale } from \"../../utils/locale\";\nimport { getMatchParamObj } from \"../../utils/utils\";\nimport SelectSearch from \"./components/SelectSearch\";\nimport \"./index.less\";\nimport { checkPermission } from \"../../utils/permission\";\nlet Definitions = class extends Component {\n constructor(props) {\n super(props);\n this.getDefinitionType = () => {\n return getMatchParamObj(this.props.match, \"definitionType\");\n };\n this.showStatus = (record) => {\n if (record.status === \"enable\") {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Disable\");\n } else {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Enable\");\n }\n };\n this.onChangeStatus = (record) => {\n const { definitionType } = this.state;\n const { status, name } = record;\n if (status === \"enable\") {\n updateDefinitionStatus({ name, hiddenInUI: true, type: definitionType }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Update definition status success\"));\n this.lisDefinitions();\n }\n }).catch();\n } else {\n updateDefinitionStatus({ name, hiddenInUI: false, type: definitionType }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Update definition status success\"));\n this.lisDefinitions();\n }\n }).catch();\n }\n };\n this.handleChangName = (value) => {\n const { list } = this.state;\n const newList = list.filter((item) => {\n return item.name && item.name.search(value) != -1;\n });\n this.setState({\n searchValue: value,\n searchList: newList\n });\n };\n this.getDataSource = () => {\n const { list, searchValue, searchList = [] } = this.state;\n if (!searchValue && searchList.length === 0) {\n return list;\n } else {\n return searchList;\n }\n };\n this.state = {\n definitionType: this.getDefinitionType(),\n list: [],\n isLoading: false,\n searchValue: \"\",\n searchList: []\n };\n }\n componentDidMount() {\n this.lisDefinitions();\n }\n componentWillReceiveProps(nextProps) {\n const nextPropsParams = nextProps.match.params || {};\n if (nextPropsParams.definitionType !== this.state.definitionType) {\n this.setState(\n {\n definitionType: nextPropsParams.definitionType\n },\n () => {\n this.lisDefinitions();\n }\n );\n }\n }\n lisDefinitions() {\n const { userInfo } = this.props;\n const { definitionType } = this.state;\n if (!definitionType) {\n return;\n }\n if (!checkPermission({ resource: \"definition:*\", action: \"list\" }, \"\", userInfo)) {\n return;\n }\n const params = {\n definitionType,\n queryAll: true\n };\n this.setState({ isLoading: true });\n getDefinitionsList(params).then((res) => {\n if (res) {\n this.setState({\n list: res && res.definitions || [],\n searchList: [],\n searchValue: \"\"\n });\n } else {\n this.setState({\n list: [],\n searchList: [],\n searchValue: \"\"\n });\n }\n }).finally(() => {\n this.setState({ isLoading: false });\n });\n }\n render() {\n const { definitionType, isLoading, searchValue } = this.state;\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(Link, { to: `/definitions/${definitionType}/${v}/ui-schema` }, v);\n }\n },\n {\n key: \"status\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Status\"),\n dataIndex: \"status\",\n cell: (v) => {\n const enumStatusList = [\n { name: \"enable\", color: \"enableStatus\", status: \"Enabled\" },\n { name: \"disable\", color: \"disableStatus\", status: \"Disabled\" }\n ];\n const findStatus = _.find(enumStatusList, (item) => {\n return item.name === v;\n });\n const colorClass = findStatus && findStatus.color || \"\";\n return /* @__PURE__ */ React.createElement(\"span\", { className: `${colorClass}` }, findStatus && findStatus.status);\n }\n },\n // {\n // key: 'createTime',\n // title: Create Time,\n // dataIndex: 'createdTime',\n // cell: (v: string) => {\n // return {momentDate(v)};\n // },\n // },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `definition:${record.name}`,\n action: \"update\"\n },\n project: \"\"\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onChangeStatus(record);\n }\n },\n this.showStatus(record)\n )\n ));\n }\n }\n ];\n const { Column } = Table;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"definitions-list-content\" }, /* @__PURE__ */ React.createElement(\n SelectSearch,\n {\n searchValue,\n handleChangName: (value) => {\n this.handleChangName(value);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table,\n {\n id: \"definitionTable\",\n locale: locale().Table,\n dataSource: this.getDataSource(),\n loading: isLoading,\n fixedHeader: true,\n maxBodyHeight: \"calc(100vh - 100px)\",\n className: \"margin-16\"\n },\n columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))\n ));\n }\n};\nDefinitions = __decorateClass([\n connect((store) => {\n return { ...store.definitions, ...store.user };\n })\n], Definitions);\nexport default Definitions;\n","\"use strict\";\nimport { Table, Message, Dialog, Tag, Button } from \"@alifd/next\";\nimport { Link } from \"dva/router\";\nimport React, { Component } from \"react\";\nimport { AiFillDelete, AiFillSetting } from \"react-icons/ai\";\nimport { deleteEnv } from \"../../../../api/env\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport \"./index.less\";\nimport { locale } from \"../../../../utils/locale\";\nimport { checkPermission } from \"../../../../utils/permission\";\nconst { Group: TagGroup } = Tag;\nclass TableList extends Component {\n constructor() {\n super(...arguments);\n this.onDelete = (record) => {\n deleteEnv({ name: record.name || \"\" }).then((re) => {\n if (re) {\n Message.success(\"Environment deleted successfully\");\n this.props.updateEnvList();\n }\n });\n };\n this.onEdit = (record) => {\n this.props.changeISEdit(true, record);\n };\n this.showEnvAppList = (envName) => {\n this.setState({ showEnvAppList: true, envName });\n };\n this.getColumns = () => {\n return [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name(Alias)\"),\n dataIndex: \"name\",\n width: \"200px\",\n cell: (v, i, env) => {\n return /* @__PURE__ */ React.createElement(\n \"a\",\n {\n onClick: () => {\n this.showEnvAppList(v);\n }\n },\n `${env.name}(${env.alias || \"-\"})`\n );\n }\n },\n {\n key: \"project\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"),\n dataIndex: \"project\",\n width: \"100px\",\n cell: (v) => {\n if (v && v.name) {\n return /* @__PURE__ */ React.createElement(Link, { to: `/projects/${v.name}/summary` }, v.alias || v.name);\n } else {\n return null;\n }\n }\n },\n {\n key: \"namespace\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Namespace\"),\n dataIndex: \"namespace\",\n width: \"120px\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"description\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\"),\n dataIndex: \"description\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"targets\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Targets\"),\n dataIndex: \"targets\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(TagGroup, null, v?.map((target) => {\n return /* @__PURE__ */ React.createElement(Tag, { color: \"green\", key: target.name + i }, /* @__PURE__ */ React.createElement(\n If,\n {\n condition: checkPermission(\n { resource: `target:*`, action: \"list\" },\n record.project.name,\n this.props.userInfo\n )\n },\n /* @__PURE__ */ React.createElement(Link, { to: \"/targets\" }, target.alias ? target.alias : target.name)\n ), /* @__PURE__ */ React.createElement(\n If,\n {\n condition: !checkPermission(\n { resource: `target:*`, action: \"list\" },\n record.project.name,\n this.props.userInfo\n )\n },\n target.alias ? target.alias : target.name\n ));\n }));\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n width: \"200px\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${record.project.name}/environment:${record.name}`,\n action: \"update\"\n },\n project: record.project.name\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n className: \"margin-left-10\",\n text: true,\n component: \"a\",\n size: \"medium\",\n onClick: () => {\n this.onEdit(record);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillSetting, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${record.project.name}/environment:${record.name}`,\n action: \"delete\"\n },\n project: record.project.name\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n component: \"a\",\n size: \"medium\",\n className: \"danger-btn\",\n onClick: () => {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n this.onDelete(record);\n },\n locale: locale().Dialog\n });\n }\n },\n /* @__PURE__ */ React.createElement(AiFillDelete, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n )\n ));\n }\n }\n ];\n };\n }\n render() {\n const { Column } = Table;\n const columns = this.getColumns();\n const { list } = this.props;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"table-env-list margin-top-20\" }, /* @__PURE__ */ React.createElement(\n Table,\n {\n locale: locale().Table,\n className: \"customTable\",\n size: \"medium\",\n style: { minWidth: \"1200px\" },\n dataSource: list,\n loading: false\n },\n columns.map((col) => /* @__PURE__ */ React.createElement(Column, { ...col, key: col.key, align: \"left\" }))\n ));\n }\n}\nexport default TableList;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Pagination, Button } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport { If } from \"../../components/If\";\nimport { ListTitle } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport { locale } from \"../../utils/locale\";\nimport EnvDialog from \"./components/EnvDialog\";\nimport TableList from \"./components/List\";\nimport \"./index.less\";\nlet EnvList = class extends React.Component {\n constructor(props) {\n super(props);\n this.getEnvList = async () => {\n const { page, pageSize } = this.state;\n this.props.dispatch({\n type: \"env/listEnvs\",\n payload: {\n page,\n pageSize\n }\n });\n };\n this.updateEnvList = () => {\n this.setState(\n {\n page: 0,\n pageSize: 10\n },\n () => {\n this.getEnvList();\n }\n );\n };\n this.changeISEdit = (isEdit, record) => {\n this.setState({\n isEdit,\n visibleEnvDialog: true,\n envItem: record\n });\n };\n this.onClose = () => {\n this.setState({ visibleEnvDialog: false, isEdit: false });\n };\n this.onOk = () => {\n this.getEnvList();\n this.setState({\n isEdit: false\n });\n };\n this.handleChange = (page) => {\n this.setState(\n {\n page\n },\n () => {\n this.getEnvList();\n }\n );\n };\n this.state = {\n page: 1,\n pageSize: 10,\n showAddTarget: false,\n editTargetName: \"\",\n visibleEnvDialog: false,\n isEdit: false\n };\n }\n componentDidMount() {\n this.getEnvList();\n }\n render() {\n const { envTotal, envs, userInfo } = this.props;\n const { visibleEnvDialog, isEdit, envItem } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: \"Environments\",\n subTitle: \"Set up the Environments for your Application based on Target sources\",\n extButtons: [\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n key: \"new-env\",\n request: { resource: \"project:?/environment:*\", action: \"create\" },\n project: \"?\"\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n onClick: () => {\n this.setState({ visibleEnvDialog: true, envItem: void 0 });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New Environment\")\n ),\n \",\"\n )\n ]\n }\n ), /* @__PURE__ */ React.createElement(\n TableList,\n {\n list: envs || [],\n updateEnvList: this.updateEnvList,\n userInfo,\n changeISEdit: (is, record) => {\n this.changeISEdit(is, record);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Pagination,\n {\n className: \"delivery-target-pagination\",\n total: envTotal,\n locale: locale().Pagination,\n size: \"medium\",\n pageSize: this.state.pageSize,\n current: this.state.page,\n onChange: this.handleChange\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: visibleEnvDialog }, /* @__PURE__ */ React.createElement(\n EnvDialog,\n {\n visible: visibleEnvDialog,\n projects: userInfo?.projects || [],\n isEdit,\n userInfo,\n envItem,\n onClose: this.onClose,\n onOK: this.onOk\n }\n )));\n }\n};\nEnvList = __decorateClass([\n connect((store) => {\n return { ...store.target, ...store.application, ...store.env, ...store.user };\n })\n], EnvList);\nexport default EnvList;\n","\"use strict\";\nimport React from \"react\";\nexport default function NotFound() {\n return /* @__PURE__ */ React.createElement(\"div\", null, \"The route is not exist(404)\");\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { get, post, put, rdelete } from \"./request\";\nconst baseURLOject = getDomain();\nconst base = baseURLOject.MOCK || baseURLOject.APIBASE;\nexport function listPipelines(params) {\n const url = base + \"/api/v1/pipelines\";\n return get(url, { params }).then((res) => res);\n}\nexport function createPipeline(params) {\n const url = base + `/api/v1/projects/${params.project}/pipelines`;\n return post(url, params).then((res) => res);\n}\nexport function updatePipeline(params) {\n const url = base + `/api/v1/projects/${params.project}/pipelines/${params.name}`;\n return put(url, {\n description: params.description,\n alias: params.alias,\n spec: params.spec\n }).then((res) => res);\n}\nexport function loadPipeline(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}`;\n return get(url, {}).then((res) => res);\n}\nexport function deletePipeline(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}`;\n return rdelete(url, {}).then((res) => res);\n}\nexport function loadPipelineRuns(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs`;\n return get(url, {}).then((res) => res);\n}\nexport function deletePipelineRun(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}`;\n return rdelete(url, {}).then((res) => res);\n}\nexport function stopPipelineRun(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}/stop`;\n return post(url, {}).then((res) => res);\n}\nexport function loadPipelineRunBase(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}`;\n return get(url, {}).then((res) => res);\n}\nexport function loadPipelineRunStatus(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}/status`;\n return get(url, {}).then((res) => res);\n}\nexport function loadPipelineRunStepLogs(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}/log`;\n return get(url, { params: { step: params.stepName } }).then((res) => res);\n}\nexport function listPipelineContexts(projectName, pipelineName) {\n const url = base + `/api/v1/projects/${projectName}/pipelines/${pipelineName}/contexts`;\n return get(url, {}).then((res) => res);\n}\nexport function deletePipelineContext(projectName, pipelineName, contextName) {\n const url = base + `/api/v1/projects/${projectName}/pipelines/${pipelineName}/contexts/${contextName}`;\n return rdelete(url, {}).then((res) => res);\n}\nexport function updatePipelineContext(projectName, pipelineName, context) {\n const url = base + `/api/v1/projects/${projectName}/pipelines/${pipelineName}/contexts/${context.name}`;\n return put(url, context).then((res) => res);\n}\nexport function loadPipelineRunStepOutputs(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}/output`;\n return get(url, { params: { step: params.stepName } }).then((res) => res);\n}\nexport function loadPipelineRunStepInputs(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}/input`;\n return get(url, { params: { step: params.stepName } }).then((res) => res);\n}\nexport function createPipelineContext(projectName, pipelineName, context) {\n const url = base + `/api/v1/projects/${projectName}/pipelines/${pipelineName}/contexts`;\n return post(url, context).then((res) => res);\n}\nexport function runPipeline(projectName, pipelineName, contextName) {\n const url = base + `/api/v1/projects/${projectName}/pipelines/${pipelineName}/run`;\n return post(url, contextName ? { contextName } : {}).then((res) => res);\n}\nexport function terminatePipelineRun(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}/terminate`;\n return post(url, {}).then((res) => res);\n}\nexport function resumePipelineRun(params) {\n const url = base + `/api/v1/projects/${params.projectName}/pipelines/${params.pipelineName}/runs/${params.runName}/resume`;\n return post(url, {}).then((res) => res);\n}\n","\"use strict\";\nimport { Field, Loading, Button, Form, Grid, Input } from \"@alifd/next\";\nimport React from \"react\";\nimport { createPipelineContext, updatePipelineContext } from \"../../api/pipeline\";\nimport KV from \"../../extends/KV\";\nimport i18n from \"../../i18n\";\nimport { checkName } from \"../../utils/common\";\nimport { Translation } from \"../Translation\";\nconst { Row, Col } = Grid;\nclass NewContext extends React.Component {\n constructor(props) {\n super(props);\n this.submitContext = () => {\n const { context, clone } = this.props;\n const editMode = context && !clone;\n this.field.validate((errs, values) => {\n if (errs) {\n return;\n }\n const { project, name } = this.props.pipeline;\n const keyValues = [];\n Object.keys(values.values).map((key) => {\n keyValues.push({ key, value: values.values[key] });\n });\n if (editMode) {\n updatePipelineContext(project.name, name, { name: values.name, values: keyValues }).then((res) => {\n if (res) {\n this.props.onSuccess();\n }\n });\n } else {\n createPipelineContext(project.name, name, { name: values.name, values: keyValues }).then((res) => {\n if (res) {\n this.props.onSuccess();\n }\n });\n }\n });\n };\n this.field = new Field(this);\n }\n componentDidMount() {\n const { clone, context } = this.props;\n if (context) {\n const editValues = {};\n context.values.map((v) => {\n editValues[v.key] = v.value;\n });\n if (clone) {\n this.field.setValues({\n name: context.name + \"-clone\",\n values: editValues\n });\n } else {\n this.field.setValues({\n name: context.name,\n values: editValues\n });\n }\n }\n }\n render() {\n const { init } = this.field;\n const { context, clone } = this.props;\n const editMode = context && !clone;\n if (context && Object.keys(this.field.getValues()).length === 0) {\n return /* @__PURE__ */ React.createElement(Loading, { visible: true });\n }\n return /* @__PURE__ */ React.createElement(Form, { field: this.field, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Row, { style: { width: \"100%\" }, wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"Name\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n ...init(\"name\", {\n rules: [\n {\n required: true,\n message: i18n.t(\"You must input a context name\")\n },\n {\n pattern: checkName,\n message: i18n.t(\"You must input a valid name\")\n }\n ]\n }),\n placeholder: i18n.t(\"Please input the context name\"),\n disabled: editMode\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Form.Item, { label: \"Values\", required: true }, /* @__PURE__ */ React.createElement(\n KV,\n {\n ...init(\"values\", {\n rules: [\n {\n required: true,\n message: i18n.t(\"You must input at least one value\")\n }\n ]\n }),\n disabled: false\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"flexcenter\" }, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.submitContext, style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Submit\")), /* @__PURE__ */ React.createElement(Button, { onClick: this.props.onCancel }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\"))))));\n }\n}\nexport default NewContext;\n","\"use strict\";\nimport { Button, Checkbox, Dialog, Loading, Message, Tag } from \"@alifd/next\";\nimport React, { useState, useEffect } from \"react\";\nimport { AiFillDelete, AiFillSetting } from \"react-icons/ai\";\nimport { BiCopyAlt } from \"react-icons/bi\";\nimport { deletePipelineContext, listPipelineContexts, runPipeline } from \"../../api/pipeline\";\nimport i18n from \"../../i18n\";\nimport \"./index.less\";\nimport { locale } from \"../../utils/locale\";\nimport { If } from \"../If\";\nimport { ListTitle } from \"../ListTitle\";\nimport classNames from \"classnames\";\nimport Permission from \"../Permission\";\nimport { Translation } from \"../Translation\";\nimport NewContext from \"./new-context\";\nconst RunPipeline = (props) => {\n const [loading, setLoading] = useState(true);\n const [contexts, setContexts] = useState({});\n const [context, setContext] = useState();\n const [noContext, setNoContext] = useState();\n const [contextName, setSelectContextName] = useState(\"\");\n const [addContext, showAddContext] = useState(false);\n const { pipeline } = props;\n const onClonePipelineContext = (key) => {\n showAddContext(true);\n setContext({ name: key, values: contexts[key], clone: true });\n };\n const onEditPipelineContext = (key) => {\n showAddContext(true);\n setContext({ name: key, values: contexts[key], clone: false });\n };\n const onDeletePipelineContext = (key) => {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n deletePipelineContext(pipeline.project.name, pipeline.name, key).then((res) => {\n if (res) {\n Message.success(i18n.t(\"The Pipeline context removed successfully\"));\n setLoading(true);\n }\n });\n },\n locale: locale().Dialog\n });\n };\n useEffect(() => {\n if (loading) {\n listPipelineContexts(pipeline.project.name, pipeline.name).then((res) => {\n setContexts(res && res.contexts ? res.contexts : {});\n }).finally(() => {\n setLoading(false);\n });\n }\n }, [pipeline, loading]);\n const onRunPipeline = () => {\n if (!contextName && !noContext) {\n }\n runPipeline(pipeline.project.name, pipeline.name, contextName).then((res) => {\n if (res) {\n if (props.onSuccess) {\n props.onSuccess(res.pipelineRunName);\n }\n }\n });\n };\n const okButtonDisable = !contextName && !noContext;\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n visible: true,\n locale: locale().Dialog,\n title: i18n.t(\"Run Pipeline\").toString(),\n onClose: props.onClose,\n onCancel: props.onClose,\n onOk: onRunPipeline,\n overflowScroll: true,\n okProps: {\n disabled: okButtonDisable\n }\n },\n /* @__PURE__ */ React.createElement(Loading, { style: { width: \"100%\" }, visible: loading }, /* @__PURE__ */ React.createElement(\"div\", { className: \"context-box\" }, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: i18n.t(\"Select Contexts\"),\n subTitle: i18n.t(\"The context is the runtime inputs for the Pipeline\"),\n buttonSize: \"small\",\n addButtonTitle: \"New Context\",\n addButtonClick: () => {\n showAddContext(true);\n }\n }\n ), Object.keys(contexts).map((key) => {\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n key,\n className: classNames(\"context-item\", { active: contextName === key }),\n onClick: () => {\n if (contextName != key) {\n setSelectContextName(key);\n } else {\n setSelectContextName(\"\");\n }\n },\n title: contextName === key ? i18n.t(\"Click and deselect\") : i18n.t(\"Click and select\")\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"context-name\" }, key),\n /* @__PURE__ */ React.createElement(\"div\", { className: \"context-values\" }, Array.isArray(contexts[key]) && contexts[key].map((item) => {\n return /* @__PURE__ */ React.createElement(Tag, { style: { marginBottom: \"8px\" }, key: item.key }, `${item.key}=${item.value}`);\n })),\n /* @__PURE__ */ React.createElement(\"div\", { className: \"actions\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}/context:${key}`,\n action: \"update\"\n },\n project: pipeline.project.name\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n className: \"margin-left-10\",\n text: true,\n component: \"a\",\n size: \"medium\",\n onClick: (event) => {\n onEditPipelineContext(key);\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(AiFillSetting, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}/context:${key}`,\n action: \"create\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: (event) => {\n onClonePipelineContext(key);\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(BiCopyAlt, null),\n \" \",\n /* @__PURE__ */ React.createElement(Translation, null, \"Clone\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}/context:${key}`,\n action: \"delete\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n className: \"danger-btn\",\n component: \"a\",\n onClick: (event) => {\n onDeletePipelineContext(key);\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(AiFillDelete, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n )\n ))\n );\n }), /* @__PURE__ */ React.createElement(If, { condition: addContext }, /* @__PURE__ */ React.createElement(\"div\", { className: \"context-item\" }, /* @__PURE__ */ React.createElement(\n NewContext,\n {\n clone: context?.clone,\n context,\n pipeline: props.pipeline,\n onCancel: () => showAddContext(false),\n onSuccess: () => {\n setLoading(true);\n showAddContext(false);\n }\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: Object.keys(contexts).length == 0 && !addContext }, /* @__PURE__ */ React.createElement(\"div\", { style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\" }, /* @__PURE__ */ React.createElement(Translation, null, \"There is no context option.\")))), /* @__PURE__ */ React.createElement(If, { condition: contextName == \"\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"notice\" }, /* @__PURE__ */ React.createElement(\n Checkbox,\n {\n onChange: (v) => {\n setNoContext(v);\n },\n checked: noContext,\n style: { marginRight: \"8px\" }\n }\n ), /* @__PURE__ */ React.createElement(Translation, null, \"No context is required for the execution of this Pipeline\"))), /* @__PURE__ */ React.createElement(If, { condition: contextName != \"\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"notice success\" }, \"Selected a context: \", contextName))))\n );\n};\nexport default RunPipeline;\n","\"use strict\";\nexport const templates = [\n {\n label: \"Observability Template\",\n defaultContext: {\n readConfig: \"false\"\n },\n value: `\n- name: Enable Prism\n type: addon-operation\n properties:\n addonName: vela-prism\n\n- name: Enable o11y\n type: addon-operation\n properties:\n addonName: o11y-definitions\n operation: enable\n args:\n - --override-definitions\n\n- name: Enable Exporter\n type: step-group\n subSteps:\n - name: Node Exporter\n type: addon-operation\n properties:\n addonName: node-exporter\n operation: enable\n\n - name: Kube State Exporter\n type: addon-operation\n properties:\n addonName: kube-state-metrics\n operation: enable\n\n- name: Prepare Prometheus\n type: step-group\n subSteps:\n - name: get-exist-prometheus\n type: list-config\n properties:\n template: prometheus-server\n namespace: vela-system\n outputs:\n - name: prometheus\n valueFrom: \"output.configs\"\n\n - name: prometheus-server\n inputs:\n - from: prometheus\n parameterKey: configs\n if: context.readConfig == \"false\" || len(inputs.prometheus) == 0\n type: addon-operation\n properties:\n addonName: prometheus-server\n operation: enable\n args:\n - memory=1024Mi\n\n- name: Prepare Loki\n type: addon-operation\n properties:\n addonName: loki\n operation: enable\n args:\n - agent=vector\n\n- name: Prepare Grafana\n type: step-group\n subSteps:\n - name: get-exist-grafana\n type: list-config\n properties:\n template: grafana\n namespace: vela-system\n outputs:\n - name: grafana\n valueFrom: \"output.configs\"\n\n - name: Install Grafana & Init Dashboards\n inputs:\n - from: grafana\n parameterKey: configs\n if: context.readConfig == \"false\" || len(inputs.grafana) == 0\n type: addon-operation\n properties:\n addonName: grafana\n operation: enable\n args:\n - serviceType=LoadBalancer\n\n - name: Init Dashboards\n inputs:\n - from: grafana\n parameterKey: configs\n if: \"len(inputs.grafana) != 0\"\n type: addon-operation\n properties:\n addonName: grafana\n operation: enable\n args:\n - install=false\n\n- name: Clean\n type: clean-jobs\n\n- name: print-message\n type: print-message-in-status\n properties:\n message: \"All addons have been enabled successfully, you can use 'vela addon list' to check them.\"\n`\n }\n];\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Field, Form, Grid, Input, Message, Select } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport * as yaml from \"js-yaml\";\nimport React from \"react\";\nimport { v4 as uuid } from \"uuid\";\nimport { createPipeline, createPipelineContext, loadPipeline, updatePipeline } from \"../../../../api/pipeline\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { checkPermission } from \"../../../../utils/permission\";\nimport { templates } from \"./pipeline-template\";\nconst FormItem = Form.Item;\nconst { Row, Col } = Grid;\nlet CreatePipeline = class extends React.Component {\n constructor(props) {\n super(props);\n this.onSubmit = () => {\n const { pipeline } = this.props;\n this.field.validate((errs, values) => {\n if (errs) {\n if (errs.config && Array.isArray(errs.config.errors) && errs.config.errors.length > 0) {\n this.setState({ configError: errs.config.errors });\n }\n return;\n }\n const { name, steps, project, alias, description, stepMode, subStepMode } = values;\n let stepArray = [];\n if (steps) {\n stepArray = yaml.load(steps) || [];\n }\n const request = {\n project,\n alias,\n description,\n name,\n spec: {\n steps: stepArray,\n mode: {\n steps: stepMode,\n subSteps: subStepMode\n }\n }\n };\n this.setState({ loading: true });\n if (pipeline) {\n updatePipeline(request).then((res) => {\n if (res) {\n Message.success(i18n.t(\"Pipeline updated successfully\"));\n if (this.props.onSuccess) {\n this.props.onSuccess(res);\n }\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n } else {\n createPipeline(request).then((res) => {\n if (res) {\n const { defaultContext } = this.state;\n if (defaultContext) {\n const contextValues = [];\n Object.keys(defaultContext).map((key) => {\n contextValues.push({ key, value: defaultContext[key] });\n });\n createPipelineContext(project, name, { name: \"default\", values: contextValues });\n }\n Message.success(i18n.t(\"Pipeline created successfully\"));\n if (this.props.onSuccess) {\n this.props.onSuccess(res);\n }\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n });\n };\n this.customRequest = (option) => {\n const reader = new FileReader();\n const fileSelect = option.file;\n reader.readAsText(fileSelect);\n reader.onload = () => {\n this.field.setValues({\n steps: reader.result?.toString() || \"\"\n });\n };\n return {\n file: File,\n onError: () => {\n },\n abort() {\n }\n };\n };\n this.checkStepConfig = (data) => {\n if (!data || !Array.isArray(data)) {\n return [\"The YAML content is not a valid array.\"];\n }\n const messages = [];\n data.map((step, i) => {\n if (!step) {\n messages.push(`[${i}] Step is invalid.`);\n return;\n }\n if (!step.name) {\n messages.push(`[${i}] Step is not named.`);\n return;\n }\n if (!step.type) {\n messages.push(`[${i}] Step does not specify a type.`);\n return;\n }\n });\n return messages;\n };\n this.field = new Field(this);\n this.DefinitionCodeRef = React.createRef();\n this.state = {\n containerId: uuid()\n };\n }\n componentDidMount() {\n const { pipeline } = this.props;\n if (pipeline) {\n loadPipeline({ projectName: pipeline.project.name, pipelineName: pipeline.name }).then((res) => {\n this.field.setValues({\n name: res.name,\n project: res.project.name,\n alias: res.alias,\n description: res.description,\n steps: yaml.dump(res.spec.steps),\n stepMode: res.spec.mode?.steps,\n subStepMode: res.spec.mode?.subSteps\n });\n });\n }\n }\n render() {\n const { init } = this.field;\n const { userInfo, pipeline } = this.props;\n let defaultProject = \"\";\n const editMode = pipeline != void 0;\n const projectOptions = [];\n (userInfo?.projects || []).map((project) => {\n if (checkPermission({ resource: `project:${project.name}/pipeline:*`, action: \"create\" }, project.name, userInfo)) {\n if (project.name === \"default\") {\n defaultProject = project.name;\n }\n projectOptions.push({\n label: project.alias ? `${project.alias}(${project.name})` : project.name,\n value: project.name\n });\n }\n });\n const modeOptions = [{ value: \"StepByStep\" }, { value: \"DAG\" }];\n const { loading } = this.state;\n return /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: i18n.t(!editMode ? \"New Pipeline\" : \"Edit Pipeline\"),\n onClose: this.props.onClose,\n onOk: this.onSubmit,\n onOkButtonLoading: loading\n },\n /* @__PURE__ */ React.createElement(Form, { field: this.field }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { required: true, label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n disabled: editMode,\n ...init(\"name\", {\n initValue: \"\",\n rules: [\n {\n pattern: checkName,\n message: \"Please input a valid name\"\n },\n {\n required: true,\n message: \"Please input a name\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Give your pipeline a more recognizable name\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"project\",\n placeholder: i18n.t(\"Please select a project\").toString(),\n dataSource: projectOptions,\n filterLocal: true,\n hasClear: true,\n disabled: editMode,\n style: { width: \"100%\" },\n ...init(\"project\", {\n initValue: defaultProject,\n rules: [\n {\n required: true,\n message: \"Please select a project\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { required: true, label: /* @__PURE__ */ React.createElement(Translation, null, \"Step Mode\") }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"stepMode\",\n ...init(\"stepMode\", {\n initValue: \"StepByStep\"\n }),\n locale: locale().Select,\n dataSource: modeOptions\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { required: true, label: /* @__PURE__ */ React.createElement(Translation, null, \"Sub Step Mode\") }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"subStepMode\",\n ...init(\"subStepMode\", {\n initValue: \"DAG\"\n }),\n locale: locale().Select,\n dataSource: modeOptions\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n ...init(\"description\", {\n rules: [\n {\n maxLength: 128,\n message: \"Enter a description less than 128 characters.\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(If, { condition: !editMode }, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Template\") }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n name: \"template\",\n dataSource: templates,\n hasClear: true,\n placeholder: \"Select a template\",\n onChange: (value) => {\n this.field.setValue(\"steps\", value);\n const template = templates.find((t) => t.value == value);\n this.setState({ defaultContext: template?.defaultContext });\n }\n }\n ))))))\n );\n }\n};\nCreatePipeline = __decorateClass([\n connect((store) => {\n return { ...store.user };\n })\n], CreatePipeline);\nexport default CreatePipeline;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Dialog, Field, Form, Grid, Input, Loading, Message, Select } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport { createPipeline, createPipelineContext, listPipelineContexts, loadPipeline } from \"../../../../api/pipeline\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { checkPermission } from \"../../../../utils/permission\";\nconst FormItem = Form.Item;\nconst { Row, Col } = Grid;\nlet ClonePipeline = class extends React.Component {\n constructor(props) {\n super(props);\n this.onLoadingPipeline = async (pipeline) => {\n loadPipeline({ projectName: pipeline.project.name, pipelineName: pipeline.name }).then((res) => {\n this.setState({ pipelineDetail: res });\n }).finally(() => {\n this.setState({ loading: false });\n });\n };\n this.onLoadingPipelineContexts = async (pipeline) => {\n listPipelineContexts(pipeline.project.name, pipeline.name).then((res) => {\n this.setState({ contexts: res && res.contexts ? res.contexts : {} });\n }).finally(() => {\n this.setState({ loadingContext: false });\n });\n };\n this.onSubmit = () => {\n const { pipelineDetail, contexts } = this.state;\n if (pipelineDetail) {\n this.setState({ cloneLoading: true });\n this.field.validate((errs, values) => {\n if (errs) {\n return;\n }\n const { name, project, alias, description } = values;\n const request = {\n project,\n alias,\n description,\n name,\n spec: pipelineDetail?.spec\n };\n createPipeline(request).then((res) => {\n if (res) {\n if (contexts) {\n Object.keys(contexts).map((key) => {\n createPipelineContext(project, name, { name: key, values: contexts[key] });\n });\n }\n Message.success(i18n.t(\"Pipeline cloned successfully\"));\n if (this.props.onSuccess) {\n this.props.onSuccess();\n }\n }\n }).catch(() => {\n this.setState({ cloneLoading: false });\n });\n });\n }\n };\n this.state = {\n loading: true,\n loadingContext: true\n };\n this.field = new Field(this);\n }\n componentDidMount() {\n const { pipeline } = this.props;\n if (pipeline) {\n this.onLoadingPipeline(pipeline);\n this.onLoadingPipelineContexts(pipeline);\n }\n }\n render() {\n const { loading, pipelineDetail, loadingContext, contexts, cloneLoading } = this.state;\n const { userInfo } = this.props;\n const { init } = this.field;\n const projectOptions = [];\n (userInfo?.projects || []).map((project) => {\n if (checkPermission({ resource: `project:${project.name}/pipeline:*`, action: \"create\" }, project.name, userInfo)) {\n projectOptions.push({\n label: project.alias ? `${project.alias}(${project.name})` : project.name,\n value: project.name\n });\n }\n });\n const message = contexts ? i18n.t(\"Includes\") + ` ${Object.keys(contexts).length} ` + i18n.t(\"contexts\") : \"\";\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n onOk: this.onSubmit,\n okProps: {\n loading: cloneLoading\n },\n onClose: this.props.onClose,\n onCancel: this.props.onClose,\n locale: locale().Dialog,\n visible: true,\n v2: true,\n title: \"Clone Pipeline\"\n },\n /* @__PURE__ */ React.createElement(Loading, { visible: loading || loadingContext }, /* @__PURE__ */ React.createElement(If, { condition: pipelineDetail && contexts }, /* @__PURE__ */ React.createElement(Message, { type: \"success\", title: i18n.t(\"Pipeline loaded successfully and is ready to clone.\") + message }), /* @__PURE__ */ React.createElement(Form, { field: this.field }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 8, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { required: true, label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n ...init(\"name\", {\n initValue: pipelineDetail?.name && pipelineDetail?.name + \"-clone\",\n rules: [\n {\n pattern: checkName,\n message: \"Please input a valid name\"\n },\n {\n required: true,\n message: \"Please input a name\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 8, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"project\",\n placeholder: i18n.t(\"Please select a project\").toString(),\n dataSource: projectOptions,\n filterLocal: true,\n hasClear: true,\n style: { width: \"100%\" },\n ...init(\"project\", {\n initValue: pipelineDetail?.project.name,\n rules: [\n {\n required: true,\n message: \"Please select a project\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 8, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Give your pipeline a more recognizable name\").toString(),\n ...init(\"alias\", {\n initValue: pipelineDetail?.alias,\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n ...init(\"description\", {\n initValue: pipelineDetail?.description,\n rules: [\n {\n maxLength: 128,\n message: \"Enter a description less than 128 characters.\"\n }\n ]\n })\n }\n )))))), /* @__PURE__ */ React.createElement(If, { condition: !pipelineDetail }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\", title: i18n.t(\"Pipeline loading\").toString() })))\n );\n }\n};\nClonePipeline = __decorateClass([\n connect((store) => {\n return { ...store.user };\n })\n], ClonePipeline);\nexport default ClonePipeline;\n","\"use strict\";\nimport { Grid, Select, Input, Button } from \"@alifd/next\";\nimport React from \"react\";\nimport \"./index.less\";\nimport { If } from \"../../../../components/If\";\nimport i18n from \"../../../../i18n\";\nimport { locale } from \"../../../../utils/locale\";\nimport { AiOutlineSearch } from \"react-icons/ai\";\nimport { HiOutlineRefresh } from \"react-icons/hi\";\nconst { Row, Col } = Grid;\nclass SelectSearch extends React.Component {\n constructor(props) {\n super(props);\n this.handleClickSearch = () => {\n this.getPipelines();\n };\n this.getPipelines = async () => {\n const { projectValue, inputValue } = this.state;\n const params = {\n project: projectValue,\n query: inputValue\n };\n this.props.getPipelines(params);\n };\n this.state = {\n projectValue: \"\",\n inputValue: \"\"\n };\n this.onChangeProject = this.onChangeProject.bind(this);\n this.handleChangName = this.handleChangName.bind(this);\n }\n onChangeProject(e) {\n this.setState(\n {\n projectValue: e\n },\n () => {\n this.getPipelines();\n }\n );\n }\n handleChangName(e) {\n this.setState({\n inputValue: e\n });\n }\n render() {\n const { projects, disableProject } = this.props;\n const { projectValue, inputValue } = this.state;\n const projectPlaceholder = i18n.t(\"Search by Project\").toString();\n const appPlaceholder = i18n.t(\"Search by Name and Description etc\").toString();\n const projectSource = projects?.map((item) => {\n return {\n label: item.alias || item.name,\n value: item.name\n };\n });\n return /* @__PURE__ */ React.createElement(Row, { className: \"app-select-wrapper border-radius-8\", wrap: true }, /* @__PURE__ */ React.createElement(If, { condition: !disableProject }, /* @__PURE__ */ React.createElement(Col, { xl: 6, m: 8, s: 12, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n size: \"large\",\n onChange: this.onChangeProject,\n dataSource: projectSource,\n placeholder: projectPlaceholder,\n className: \"item\",\n hasClear: true,\n value: projectValue\n }\n ))), /* @__PURE__ */ React.createElement(Col, { xl: 6, m: 8, s: 12, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(AiOutlineSearch, { onClick: this.handleClickSearch, style: { margin: 4 } }),\n hasClear: true,\n size: \"large\",\n placeholder: appPlaceholder,\n onChange: this.handleChangName,\n onPressEnter: this.handleClickSearch,\n value: inputValue,\n className: \"item\"\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 6, className: \"flexboth\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"padding16\" }, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: () => this.getPipelines() }, /* @__PURE__ */ React.createElement(HiOutlineRefresh, null)))));\n }\n}\nexport default SelectSearch;\n","\"use strict\";\nimport { Balloon, Button, Dialog, Table, Message } from \"@alifd/next\";\nimport classNames from \"classnames\";\nimport { Link } from \"dva/router\";\nimport React, { useState, useEffect } from \"react\";\nimport { AiFillDelete } from \"react-icons/ai\";\nimport { deletePipelineRun, loadPipelineRuns } from \"../../../../api/pipeline\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { momentDate, timeDiff } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nconst ViewRuns = (props) => {\n const [loading, setLoading] = useState(true);\n const [runs, setRuns] = useState([]);\n const { pipeline } = props;\n useEffect(() => {\n if (loading) {\n loadPipelineRuns({ projectName: pipeline.project.name, pipelineName: pipeline.name }).then((res) => {\n setRuns(res && res.runs ? res.runs : []);\n }).finally(() => {\n setLoading(false);\n });\n }\n }, [pipeline, loading]);\n const deleteRun = (name) => {\n if (name) {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n deletePipelineRun({\n projectName: pipeline.project.name,\n pipelineName: pipeline.name,\n runName: name\n }).then((res) => {\n if (res) {\n Message.success(i18n.t(\"The Pipeline Run removed successfully\"));\n setLoading(true);\n }\n });\n },\n locale: locale().Dialog\n });\n }\n };\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n visible: true,\n locale: locale().Dialog,\n title: i18n.t(\"Pipeline Runs\").toString(),\n onClose: props.onClose,\n onCancel: props.onClose,\n footerActions: [\"cancel\"],\n overflowScroll: true,\n style: { width: \"1200px\" }\n },\n /* @__PURE__ */ React.createElement(Table, { loading, dataSource: runs, locale: locale().Table }, /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"name\",\n dataIndex: \"pipelineRunName\",\n title: i18n.t(\"Name\").toString(),\n cell: (name) => {\n return /* @__PURE__ */ React.createElement(Link, { to: `/projects/${props.pipeline.project.name}/pipelines/${props.pipeline.name}/runs/${name}` }, name);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"status\",\n dataIndex: \"phase\",\n title: i18n.t(\"Status\").toString(),\n cell: (phase, i, run) => {\n const show = /* @__PURE__ */ React.createElement(\n \"span\",\n {\n className: classNames({\n colorRed: phase == \"failed\",\n colorGreen: phase == \"succeeded\"\n })\n },\n phase.toUpperCase()\n );\n if (run.message) {\n return /* @__PURE__ */ React.createElement(Balloon, { trigger: show }, run.message);\n }\n return show;\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"startTime\",\n dataIndex: \"startTime\",\n title: i18n.t(\"Start Time\").toString(),\n cell: (value) => {\n return momentDate(value);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"endTime\",\n dataIndex: \"endTime\",\n title: i18n.t(\"End Time\").toString(),\n cell: (value) => {\n return momentDate(value);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"endTime\",\n dataIndex: \"endTime\",\n title: i18n.t(\"Duration\").toString(),\n cell: (value, i, run) => {\n return timeDiff(run.startTime, run.endTime);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"contextName\",\n dataIndex: \"contextName\",\n title: i18n.t(\"Context Name\").toString(),\n cell: (value) => {\n return value;\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"actions\",\n dataIndex: \"pipelineRunName\",\n title: i18n.t(\"Actions\").toString(),\n cell: (name, i, run) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(If, { condition: run.phase != \"executing\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: props.pipeline.project.name,\n resource: {\n resource: `project:${props.pipeline.project.name}/pipeline:${props.pipeline.name}/pipelineRun:${name}`,\n action: \"delete\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"small\",\n className: \"danger-btn\",\n component: \"a\",\n onClick: () => {\n deleteRun(name);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillDelete, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n )\n )));\n }\n }\n ))\n );\n};\nexport default ViewRuns;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { ListTitle as Title } from \"../../components/ListTitle\";\nimport { Loading, Button, Table, Dialog, Message, Balloon } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link, routerRedux } from \"dva/router\";\nimport React, { Component } from \"react\";\nimport { AiFillCaretRight, AiFillDelete, AiFillSetting } from \"react-icons/ai\";\nimport { BiCopyAlt } from \"react-icons/bi\";\nimport { HiViewList } from \"react-icons/hi\";\nimport { deletePipeline, listPipelines } from \"../../api/pipeline\";\nimport \"./index.less\";\nimport { If } from \"../../components/If\";\nimport Permission from \"../../components/Permission\";\nimport RunPipeline from \"../../components/RunPipeline\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport { beautifyTime, momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport RunStatusIcon from \"../PipelineRunPage/components/RunStatusIcon\";\nimport CreatePipeline from \"./components/CreatePipeline\";\nimport ClonePipeline from \"./components/PipelineClone\";\nimport SelectSearch from \"./components/SelectSearch\";\nimport ViewRuns from \"./components/ViewRuns\";\nlet PipelineListPage = class extends Component {\n constructor(props) {\n super(props);\n this.getPipelines = async (params) => {\n this.setState({ isLoading: true });\n listPipelines(params).then((res) => {\n this.setState({\n pipelines: res && Array.isArray(res.pipelines) ? res.pipelines : []\n });\n }).finally(() => {\n this.setState({ isLoading: false });\n });\n };\n this.onShowPipelineRuns = (pipeline) => {\n this.setState({ showRuns: true, pipeline });\n };\n this.onRunPipeline = (pipeline) => {\n this.setState({ pipeline, showRunPipeline: true });\n };\n this.onClonePipeline = (pipeline) => {\n this.setState({ pipeline, showClonePipeline: true });\n };\n this.onDeletePipeline = (pipeline) => {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n deletePipeline({\n projectName: pipeline.project.name,\n pipelineName: pipeline.name\n }).then((res) => {\n if (res) {\n Message.success(i18n.t(\"The Pipeline removed successfully\"));\n this.getPipelines({});\n }\n });\n },\n locale: locale().Dialog\n });\n };\n this.onEditPipeline = (pipeline) => {\n this.setState({ showNewPipeline: true, pipeline });\n };\n this.renderPipelineTable = () => {\n const { pipelines } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"table-pipeline-list\" }, /* @__PURE__ */ React.createElement(\n Table,\n {\n className: \"customTable\",\n size: \"medium\",\n style: { minWidth: \"1400px\" },\n locale: locale().Table,\n dataSource: pipelines\n },\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"name\",\n title: i18n.t(\"Name(Alias)\").toString(),\n dataIndex: \"name\",\n cell: (name, i, pipeline) => {\n let text = name;\n if (pipeline.alias) {\n text = `${name}(${pipeline.alias})`;\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"pipeline-name\" }, /* @__PURE__ */ React.createElement(Link, { to: `/projects/${pipeline.project.name}/pipelines/${pipeline.name}/studio` }, text), /* @__PURE__ */ React.createElement(\"span\", null, pipeline.description));\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"project\",\n title: i18n.t(\"Project\").toString(),\n dataIndex: \"project\",\n cell: (project) => {\n let text = project.name;\n if (project.alias) {\n text = `${project.name}(${project.alias})`;\n }\n return /* @__PURE__ */ React.createElement(Link, { to: `/projects/${project.name}` }, text);\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"createTime\",\n title: i18n.t(\"CreateTime\").toString(),\n dataIndex: \"createTime\",\n width: 180,\n cell: (v) => {\n return momentDate(v);\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"runs\",\n title: i18n.t(\"Recent Runs(Last 7-Days)\").toString(),\n dataIndex: \"info.runStat\",\n width: \"280px\",\n cell: (runState) => {\n if (!runState) {\n return \"-\";\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"run-state\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"week\" }, runState.week?.map((day) => {\n const failure = day.total == 0 ? 0 : Math.floor(day.fail / day.total * 100);\n const success = 100 - failure;\n return /* @__PURE__ */ React.createElement(\n Balloon,\n {\n trigger: /* @__PURE__ */ React.createElement(\"div\", { className: \"rectangle\" }, /* @__PURE__ */ React.createElement(If, { condition: day.total > 0 }, /* @__PURE__ */ React.createElement(\"span\", { className: \"failure\", style: { height: `${failure}%` } }), /* @__PURE__ */ React.createElement(\"span\", { className: \"success\", style: { height: `${success}%` } })), /* @__PURE__ */ React.createElement(If, { condition: day.total == 0 }, /* @__PURE__ */ React.createElement(\"span\", { style: { height: `10px` } })))\n },\n /* @__PURE__ */ React.createElement(If, { condition: day.total == 0 }, \"No Run\"),\n /* @__PURE__ */ React.createElement(If, { condition: day.total > 0 }, /* @__PURE__ */ React.createElement(\"p\", null, \"Total: \", day.total), /* @__PURE__ */ React.createElement(\"p\", null, \"Success: \", day.success))\n );\n })), /* @__PURE__ */ React.createElement(If, { condition: runState.total.total > 0 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"active\" }, /* @__PURE__ */ React.createElement(\"span\", null, runState.total.total))));\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"lastRun\",\n title: i18n.t(\"Last Run\").toString(),\n dataIndex: \"info.lastRun\",\n cell: (run) => {\n if (run) {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"last-run\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"metadata\" }, /* @__PURE__ */ React.createElement(\n Link,\n {\n to: `/projects/${run.project.name}/pipelines/${run.pipelineName}/runs/${run.pipelineRunName}`\n },\n run.pipelineRunName\n ), /* @__PURE__ */ React.createElement(\"span\", null, beautifyTime(run.status?.startTime))), /* @__PURE__ */ React.createElement(RunStatusIcon, { status: run.status?.status }));\n }\n return /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"var(--grey-400)\" } }, \"This Pipeline never ran.\");\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"actions\",\n title: i18n.t(\"Actions\").toString(),\n dataIndex: \"name\",\n width: \"420px\",\n cell: (name, i, pipeline) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}`,\n action: \"run\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onRunPipeline(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillCaretRight, null),\n \" \",\n /* @__PURE__ */ React.createElement(Translation, null, \"Run\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}/pipelineRun:*`,\n action: \"list\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onShowPipelineRuns(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(HiViewList, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"View Runs\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:*`,\n action: \"create\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onClonePipeline(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(BiCopyAlt, null),\n \" \",\n /* @__PURE__ */ React.createElement(Translation, null, \"Clone\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}`,\n action: \"update\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onEditPipeline(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillSetting, null),\n \" \",\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}`,\n action: \"delete\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n className: \"danger-btn\",\n component: \"a\",\n onClick: () => {\n this.onDeletePipeline(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillDelete, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n )\n ));\n }\n }\n )\n ));\n };\n this.state = {\n isLoading: false,\n showMode: \"list\"\n };\n }\n componentDidMount() {\n this.getPipelines({});\n }\n render() {\n const { userInfo } = this.props;\n const { showMode, isLoading, showRunPipeline, pipeline, showRuns, showNewPipeline, showClonePipeline } = this.state;\n const { enabledAddons } = this.props;\n const addonEnabled = enabledAddons?.filter((addon) => addon.name == \"vela-workflow\").length;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Title,\n {\n title: \"Pipelines\",\n subTitle: \"Orchestrate your multiple cloud native app release processes or model your cloud native pipeline.\",\n extButtons: [\n /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"project:?/pipeline:*\", action: \"create\" }, project: \"?\" }, /* @__PURE__ */ React.createElement(If, { condition: addonEnabled }, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n onClick: () => {\n this.setState({ showNewPipeline: true });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New Pipeline\")\n )))\n ]\n }\n ), /* @__PURE__ */ React.createElement(\n SelectSearch,\n {\n projects: userInfo?.projects,\n showMode,\n setMode: (mode) => {\n this.setState({ showMode: mode });\n if (mode) {\n localStorage.setItem(\"application-list-mode\", mode);\n }\n },\n getPipelines: (params) => {\n this.getPipelines(params);\n }\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: addonEnabled }, /* @__PURE__ */ React.createElement(Loading, { style: { width: \"100%\" }, visible: isLoading }, this.renderPipelineTable())), /* @__PURE__ */ React.createElement(If, { condition: !addonEnabled }, /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"addon\", action: \"enable\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"addon-notice\" }, \"Please enable the \", /* @__PURE__ */ React.createElement(Link, { to: \"/addons/datanature-workflow\" }, \"datanature-workflow\"), \" addon to power pipeline.\"))), /* @__PURE__ */ React.createElement(If, { condition: showRunPipeline }, pipeline && /* @__PURE__ */ React.createElement(\n RunPipeline,\n {\n onClose: () => {\n this.setState({ showRunPipeline: false, pipeline: void 0 });\n },\n onSuccess: (runName) => {\n this.props.dispatch(\n routerRedux.push(`/projects/${pipeline.project.name}/pipelines/${pipeline.name}/runs/${runName}`)\n );\n },\n pipeline\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showRuns }, pipeline && /* @__PURE__ */ React.createElement(\n ViewRuns,\n {\n pipeline,\n onClose: () => {\n this.setState({ showRuns: false, pipeline: void 0 });\n }\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showNewPipeline }, /* @__PURE__ */ React.createElement(\n CreatePipeline,\n {\n onClose: () => {\n this.setState({ showNewPipeline: false, pipeline: void 0 });\n },\n onSuccess: (p) => {\n this.props.dispatch(routerRedux.push(`/projects/${p.project.name}/pipelines/${p.name}/studio`));\n },\n pipeline\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showClonePipeline }, /* @__PURE__ */ React.createElement(\n ClonePipeline,\n {\n onClose: () => {\n this.setState({ showClonePipeline: false, pipeline: void 0 });\n },\n onSuccess: () => {\n this.getPipelines({});\n this.setState({ showClonePipeline: false, pipeline: void 0 });\n },\n pipeline\n }\n )));\n }\n};\nPipelineListPage = __decorateClass([\n connect((store) => {\n return { ...store.user, ...store.addons };\n })\n], PipelineListPage);\nexport default PipelineListPage;\n","\"use strict\";\nimport { Link } from \"dva/router\";\nimport * as React from \"react\";\nimport { Breadcrumb as B } from \"@alifd/next\";\nimport { AiOutlineHome } from \"react-icons/ai\";\nexport const Breadcrumb = (props) => {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"breadcrumb\" }, /* @__PURE__ */ React.createElement(Link, { to: \"/\" }, /* @__PURE__ */ React.createElement(AiOutlineHome, { size: 18 })), /* @__PURE__ */ React.createElement(B, { separator: \"/\" }, props.items.map((item, i) => {\n return /* @__PURE__ */ React.createElement(B.Item, { key: \"breadcrumb\" + i }, item.to && /* @__PURE__ */ React.createElement(Link, { to: item.to }, item.title), !item.to && item.title);\n })));\n};\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid, Button, Dialog, Message, Balloon } from \"@alifd/next\";\nimport classNames from \"classnames\";\nimport { connect } from \"dva\";\nimport { routerRedux } from \"dva/router\";\nimport React, { Component } from \"react\";\nimport { HiOutlineRefresh } from \"react-icons/hi\";\nimport { TiWarningOutline } from \"react-icons/ti\";\nimport { resumePipelineRun, runPipeline, stopPipelineRun, terminatePipelineRun } from \"../../../../api/pipeline\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { momentDate, timeDiff } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport RunStatusIcon from \"../RunStatusIcon\";\nimport { Breadcrumb } from \"../../../../components/Breadcrumb\";\nconst { Row, Col } = Grid;\nlet Header = class extends Component {\n constructor(props) {\n super(props);\n this.onRerun = () => {\n Dialog.confirm({\n type: \"alert\",\n content: i18n.t(\"Are you sure to rerun this Pipeline?\").toString(),\n locale: locale().Dialog,\n onOk: () => {\n const { pipeline, runBase } = this.props;\n if (runBase && pipeline) {\n this.setState({ reRunLoading: true });\n runPipeline(runBase?.project.name, pipeline?.name, runBase.contextName).then((res) => {\n if (res && res.pipelineRunName && this.props.dispatch) {\n this.props.dispatch(\n routerRedux.push(\n `/projects/${pipeline.project.name}/pipelines/${pipeline.name}/runs/${res.pipelineRunName}`\n )\n );\n }\n }).finally(() => {\n this.setState({ reRunLoading: false });\n });\n }\n }\n });\n };\n this.onStop = () => {\n Dialog.confirm({\n type: \"alert\",\n content: \"Are you sure to stop this Pipeline?\",\n locale: locale().Dialog,\n onOk: () => {\n const { pipeline, runBase } = this.props;\n if (runBase && pipeline) {\n this.setState({ stopLoading: true });\n stopPipelineRun({\n pipelineName: pipeline?.name,\n projectName: runBase?.project.name,\n runName: runBase?.pipelineRunName\n }).then((res) => {\n if (res) {\n Message.success(\"Pipeline stopped successfully.\");\n }\n }).finally(() => {\n this.setState({ stopLoading: false });\n });\n }\n }\n });\n };\n this.onTerminatePipelineRun = () => {\n const { pipeline, runBase, loadRunStatus } = this.props;\n if (!pipeline || !runBase) {\n return;\n }\n const params = {\n projectName: pipeline.project.name,\n pipelineName: runBase.pipelineName,\n runName: runBase?.pipelineRunName\n };\n this.setState({ terminateLoading: true });\n terminatePipelineRun(params).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Pipeline terminated successfully\"));\n loadRunStatus();\n }\n }).finally(() => {\n this.setState({ terminateLoading: false });\n });\n };\n this.onResumePipelineRun = () => {\n const { pipeline, runBase, loadRunStatus } = this.props;\n if (!pipeline || !runBase) {\n return;\n }\n const params = {\n projectName: pipeline.project.name,\n pipelineName: runBase.pipelineName,\n runName: runBase?.pipelineRunName\n };\n this.setState({ resumeLoading: true });\n resumePipelineRun(params).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Pipeline resumed successfully\"));\n loadRunStatus();\n }\n }).finally(() => {\n this.setState({ resumeLoading: false });\n });\n };\n this.state = {};\n }\n render() {\n const { pipeline, runBase, runStatus, statusLoading } = this.props;\n const projectName = pipeline && pipeline.project?.name || \"\";\n const runCondition = runStatus?.conditions?.filter((con) => con.type === \"WorkflowRun\");\n const { reRunLoading, stopLoading, resumeLoading, terminateLoading } = this.state;\n const message = runStatus?.message;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, { style: { marginBottom: \"16px\" } }, /* @__PURE__ */ React.createElement(Col, { span: 6 }, /* @__PURE__ */ React.createElement(\n Breadcrumb,\n {\n items: [\n {\n to: \"/projects/\" + projectName + \"/pipelines\",\n title: projectName\n },\n {\n to: `/projects/${projectName}/pipelines/${pipeline?.name}/studio`,\n title: pipeline && (pipeline.alias || pipeline.name) || \"\"\n },\n { title: runBase?.pipelineRunName || \"\" }\n ]\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: 18, className: \"flexright\", style: { padding: \"0 16px\" } }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/pipeline:${pipeline && pipeline.name}`,\n action: \"run\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n loading: reRunLoading,\n disabled: runStatus?.status != \"failed\" && runStatus?.status != \"succeeded\" && runStatus?.status != \"terminated\",\n style: { marginLeft: \"16px\" },\n type: \"primary\",\n onClick: () => this.onRerun()\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Rerun\")\n )\n ), /* @__PURE__ */ React.createElement(If, { condition: runStatus?.status == \"executing\" || runStatus?.status == \"suspending\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/pipeline:${pipeline && pipeline.name}/pipelineRun:${runBase?.pipelineRunName}`,\n action: \"run\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n loading: stopLoading,\n style: { marginLeft: \"16px\" },\n type: \"primary\",\n onClick: () => this.onStop()\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Stop\")\n )\n )))), /* @__PURE__ */ React.createElement(Row, { className: \"description\", wrap: true }, /* @__PURE__ */ React.createElement(Col, { xl: 16, xs: 24 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"name_metadata\" }, /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"div\", { className: \"name\" }, runBase?.pipelineRunName), /* @__PURE__ */ React.createElement(\"div\", { className: \"metadata\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"start_at\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Started at:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, momentDate(runStatus?.startTime))), /* @__PURE__ */ React.createElement(\"div\", { className: \"duration_time\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Duration:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, timeDiff(runStatus?.startTime, runStatus?.endTime))), /* @__PURE__ */ React.createElement(\"div\", { className: \"mode\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Mode:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, runStatus?.mode?.steps || \"StepByStep\")), /* @__PURE__ */ React.createElement(\"div\", { className: \"mode\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Sub Step Mode:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, runStatus?.mode?.subSteps || \"DAG\")), /* @__PURE__ */ React.createElement(\n Balloon,\n {\n trigger: /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, \"Context:\"), /* @__PURE__ */ React.createElement(\"time\", { className: \"label_value\" }, runBase?.contextName || \"-\"))\n },\n runBase?.contextValues?.map((item) => {\n return /* @__PURE__ */ React.createElement(\"div\", { key: item.key }, /* @__PURE__ */ React.createElement(\"span\", { className: \"label_key\" }, item.key, \"=\"), /* @__PURE__ */ React.createElement(\"span\", { className: \"label_value\" }, item.value));\n })\n ))), /* @__PURE__ */ React.createElement(\"div\", { className: \"flexright\" }, /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", loading: statusLoading, onClick: this.props.loadRunStatus }, /* @__PURE__ */ React.createElement(HiOutlineRefresh, null))))), /* @__PURE__ */ React.createElement(Col, { xl: 8, xs: 24 }, /* @__PURE__ */ React.createElement(If, { condition: !runCondition || runCondition.length == 0 || runCondition[0].status == \"True\" }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: classNames(\n \"status\",\n { warning: runStatus?.status == \"failed\" || runStatus?.status === \"terminated\" },\n { success: runStatus?.status == \"succeeded\" }\n )\n },\n /* @__PURE__ */ React.createElement(RunStatusIcon, { status: runStatus?.status }),\n /* @__PURE__ */ React.createElement(If, { condition: message }, /* @__PURE__ */ React.createElement(\"div\", { className: \"message\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"summary\" }, runStatus?.status == \"failed\" ? \"Error Summary\" : \"Summary\"), /* @__PURE__ */ React.createElement(\"p\", { className: \"text\" }, message))),\n /* @__PURE__ */ React.createElement(If, { condition: runStatus?.status === \"suspending\" }, /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"suspend-actions\") }, /* @__PURE__ */ React.createElement(\"div\", { className: \"desc\" }, \"This Pipeline need you approve.\"), /* @__PURE__ */ React.createElement(Button.Group, null, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n size: \"small\",\n loading: terminateLoading,\n className: \"margin-top-5 margin-left-8\",\n title: \"Terminate this workflow\",\n onClick: this.onTerminatePipelineRun\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Terminate\")\n ), /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n size: \"small\",\n loading: resumeLoading,\n className: \"margin-top-5 margin-left-8\",\n title: \"Approve and continue this workflow\",\n onClick: this.onResumePipelineRun\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Resume\")\n ))))\n )), /* @__PURE__ */ React.createElement(If, { condition: runCondition && runCondition[0].status == \"False\" }, /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"status\", { warning: runStatus?.status == \"failed\" }) }, /* @__PURE__ */ React.createElement(\"div\", { className: \"icon\" }, /* @__PURE__ */ React.createElement(TiWarningOutline, null), /* @__PURE__ */ React.createElement(\"span\", null, (runStatus?.status || \"pending\").toUpperCase())), /* @__PURE__ */ React.createElement(If, { condition: runCondition && runCondition[0].message }, /* @__PURE__ */ React.createElement(\"div\", { className: \"message\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"summary\" }, \"Error Summary\"), /* @__PURE__ */ React.createElement(\"p\", { className: \"text\" }, runCondition && runCondition[0].message))))))));\n }\n};\nHeader = __decorateClass([\n connect((store) => {\n return { ...store.user };\n })\n], Header);\nexport default Header;\n","\"use strict\";\nimport { Button, Card, Loading, Tab } from \"@alifd/next\";\nimport Ansi from \"ansi-to-react\";\nimport classNames from \"classnames\";\nimport { Link } from \"dva/router\";\nimport React, { Component } from \"react\";\nimport { HiOutlineRefresh } from \"react-icons/hi\";\nimport {\n loadPipeline,\n loadPipelineRunBase,\n loadPipelineRunStatus,\n loadPipelineRunStepInputs,\n loadPipelineRunStepLogs,\n loadPipelineRunStepOutputs\n} from \"../../api/pipeline\";\nimport Empty from \"../../components/Empty\";\nimport { If } from \"../../components/If\";\nimport PipelineGraph from \"../../components/PipelineGraph\";\nimport { Translation } from \"../../components/Translation\";\nimport { convertAny, timeDiff } from \"../../utils/common\";\nimport Header from \"./components/Header\";\nimport \"./index.less\";\nclass PipelineRunPage extends Component {\n constructor(props) {\n super(props);\n this.onGetPipeline = (match) => {\n const { projectName, pipelineName } = match ? match.params : this.props.match.params;\n loadPipeline({ projectName, pipelineName }).then((res) => {\n this.setState({ pipelineDetail: res });\n });\n };\n this.onGetRunBase = (match) => {\n const { projectName, pipelineName, runName } = match ? match.params : this.props.match.params;\n loadPipelineRunBase({ projectName, pipelineName, runName }).then((res) => {\n this.setState({ runBase: res });\n });\n };\n this.onGetStepLogs = () => {\n const { projectName, pipelineName, runName } = this.props.match.params;\n const { stepStatus } = this.state;\n if (stepStatus?.name) {\n this.setState({ logLoading: true });\n loadPipelineRunStepLogs({\n projectName,\n pipelineName,\n runName,\n stepName: stepStatus?.name\n }).then((res) => {\n const logLines = res && res.log ? res.log.split(\"\\n\") : [];\n this.setState({ logs: logLines });\n }).finally(() => {\n this.setState({ logLoading: false });\n });\n }\n };\n this.onGetRunStatus = (match) => {\n const { projectName, pipelineName, runName } = match && match.params ? match.params : this.props.match.params;\n this.setState({ loading: true });\n loadPipelineRunStatus({ projectName, pipelineName, runName }).then((res) => {\n if (res) {\n this.setState({ runStatus: res });\n if (res.status && [\"terminated\", \"failed\", \"succeeded\"].indexOf(res.status) == -1 && !this.loop && !this.disableLoop) {\n this.loop = true;\n setTimeout(() => {\n this.loop = false;\n this.onGetRunStatus();\n }, 5e3);\n }\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n };\n this.onGetStepOutput = () => {\n const { projectName, pipelineName, runName } = this.props.match.params;\n const { stepStatus } = this.state;\n if (stepStatus) {\n this.setState({ outputLoading: true });\n loadPipelineRunStepOutputs({\n projectName,\n pipelineName,\n runName,\n stepName: stepStatus?.name\n }).then((res) => {\n const outputs = res && Array.isArray(res.outputs) && res.outputs.length > 0 ? res.outputs[0] : void 0;\n this.setState({\n outputs\n });\n }).finally(() => {\n this.setState({ outputLoading: false });\n });\n }\n };\n this.onGetStepInput = () => {\n const { projectName, pipelineName, runName } = this.props.match.params;\n const { stepStatus } = this.state;\n if (stepStatus) {\n this.setState({ inputLoading: true });\n loadPipelineRunStepInputs({\n projectName,\n pipelineName,\n runName,\n stepName: stepStatus?.name\n }).then((res) => {\n const input = res && Array.isArray(res.inputs) && res.inputs.length > 0 ? res.inputs[0] : void 0;\n this.setState({\n inputs: input\n });\n }).finally(() => {\n this.setState({ inputLoading: false });\n });\n }\n };\n this.onStepClick = (step) => {\n this.setState({ showDetail: true, stepStatus: step }, () => {\n const { activeKey } = this.state;\n this.onTabChange(activeKey);\n });\n };\n this.onTabChange = (key) => {\n const { stepStatus } = this.state;\n this.setState({ activeKey: key });\n if (key == \"outputs\" && stepStatus) {\n this.onGetStepOutput();\n }\n if (key == \"detail\" && stepStatus) {\n this.onGetStepLogs();\n }\n if (key == \"inputs\" && stepStatus) {\n this.onGetStepInput();\n }\n };\n this.state = {\n loading: false,\n showDetail: false,\n activeKey: \"detail\"\n };\n this.loop = false;\n this.disableLoop = false;\n }\n componentWillUnmount() {\n this.disableLoop = true;\n }\n componentDidMount() {\n this.onGetPipeline(this.props.match);\n this.onGetRunBase(this.props.match);\n this.onGetRunStatus(this.props.match);\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps.location?.pathname != this.props.location?.pathname && nextProps.match) {\n this.onGetPipeline(nextProps.match);\n this.onGetRunBase(nextProps.match);\n this.onGetRunStatus(nextProps.match);\n }\n }\n render() {\n const {\n loading,\n runStatus,\n showDetail,\n logs,\n runBase,\n stepStatus,\n logLoading,\n pipelineDetail,\n inputLoading,\n outputLoading,\n inputs,\n outputs\n } = this.state;\n let addonName = \"\";\n let stepSpec;\n runBase?.spec.workflowSpec.steps.map((step) => {\n if (stepStatus && step.name == stepStatus.name) {\n addonName = step.properties?.addonName;\n stepSpec = step;\n }\n step.subSteps?.map((sub) => {\n if (stepStatus && sub.name == stepStatus.name) {\n addonName = sub.properties?.addonName;\n stepSpec = sub;\n }\n });\n });\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"run-layout\" }, /* @__PURE__ */ React.createElement(\n Header,\n {\n statusLoading: loading,\n runBase,\n runStatus,\n loadRunStatus: this.onGetRunStatus,\n pipeline: pipelineDetail\n }\n ), /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"run-studio\",\n onClick: () => {\n this.setState({ showDetail: false });\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: classNames(\"studio\") }, runStatus && /* @__PURE__ */ React.createElement(\n PipelineGraph,\n {\n name: `${runBase?.pipelineRunName}`,\n steps: runStatus.steps,\n zoom: 1,\n onNodeClick: this.onStepClick\n }\n )),\n /* @__PURE__ */ React.createElement(If, { condition: showDetail && stepStatus }, /* @__PURE__ */ React.createElement(\n Card,\n {\n title: \"Step: \" + stepStatus?.name || stepStatus?.id,\n className: classNames(\"detail\"),\n contentHeight: \"auto\",\n onClick: (event) => {\n event.stopPropagation();\n }\n },\n /* @__PURE__ */ React.createElement(Tab, { animation: true, size: \"medium\", onChange: this.onTabChange }, /* @__PURE__ */ React.createElement(Tab.Item, { title: /* @__PURE__ */ React.createElement(Translation, null, \"Detail\"), key: \"detail\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"detail-page\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-info padding16\" }, stepStatus && /* @__PURE__ */ React.createElement(\"tbody\", null, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Type:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepStatus.type)), /* @__PURE__ */ React.createElement(If, { condition: addonName }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Addon:\"), /* @__PURE__ */ React.createElement(\"td\", null, /* @__PURE__ */ React.createElement(Link, { to: `/addons/${addonName}` }, addonName), \" (Click here to check the addon detail)\"))), /* @__PURE__ */ React.createElement(If, { condition: stepSpec?.if }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Condition:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepSpec?.if))), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"First Execute Time:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepStatus.firstExecuteTime)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Last Execute Time:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepStatus.lastExecuteTime)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Duration:\"), /* @__PURE__ */ React.createElement(\"td\", null, timeDiff(stepStatus.firstExecuteTime, stepStatus.lastExecuteTime))), /* @__PURE__ */ React.createElement(If, { condition: stepSpec?.timeout }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Timeout:\"), /* @__PURE__ */ React.createElement(\"td\", null, stepSpec?.timeout))), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Phase:\"), /* @__PURE__ */ React.createElement(\"td\", { className: \"step-status-text-\" + stepStatus.phase }, stepStatus.phase)), /* @__PURE__ */ React.createElement(If, { condition: stepStatus.message || stepStatus.reason }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Message(Reason):\"), /* @__PURE__ */ React.createElement(\"td\", null, `${stepStatus.message || \"\"}`, stepStatus.reason && `(${stepStatus.reason})`))))), /* @__PURE__ */ React.createElement(\"div\", { className: \"step-log\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"header\" }, /* @__PURE__ */ React.createElement(\"div\", null, \"Step Logs\"), /* @__PURE__ */ React.createElement(\n Button,\n {\n loading: logLoading,\n onClick: () => {\n this.onGetStepLogs();\n },\n style: { color: \"#fff\" },\n size: \"small\"\n },\n /* @__PURE__ */ React.createElement(HiOutlineRefresh, null)\n )), /* @__PURE__ */ React.createElement(\"div\", { className: \"log-content\" }, logs?.map((line, i) => {\n return /* @__PURE__ */ React.createElement(\"div\", { key: `log-${i}`, className: \"logLine\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"content\" }, /* @__PURE__ */ React.createElement(Ansi, { linkify: true }, line)));\n }))))), /* @__PURE__ */ React.createElement(Tab.Item, { title: \"Properties\", key: \"properties\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-info padding16\" }, /* @__PURE__ */ React.createElement(\"tbody\", null, stepSpec && stepSpec.properties && Object.keys(stepSpec.properties).map((key) => {\n return /* @__PURE__ */ React.createElement(\"tr\", { key }, /* @__PURE__ */ React.createElement(\"th\", null, key, \":\"), /* @__PURE__ */ React.createElement(\"td\", null, stepSpec && stepSpec.properties && convertAny(stepSpec.properties[key])));\n })))), /* @__PURE__ */ React.createElement(Tab.Item, { title: \"Outputs\", key: \"outputs\" }, /* @__PURE__ */ React.createElement(If, { condition: !outputLoading && (!outputs || !outputs.values || outputs.values.length == 0) }, /* @__PURE__ */ React.createElement(Empty, { hideIcon: true, message: \"There are no outputs.\" })), /* @__PURE__ */ React.createElement(Loading, { visible: outputLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-info padding16\" }, outputs?.values?.map((value) => {\n return /* @__PURE__ */ React.createElement(\"tbody\", { key: value.name }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Name: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.name)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Value: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.value)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Value From\"), /* @__PURE__ */ React.createElement(\"td\", null, value.valueFrom || \"-\")));\n })))), /* @__PURE__ */ React.createElement(Tab.Item, { title: \"Inputs\", key: \"inputs\" }, /* @__PURE__ */ React.createElement(If, { condition: !inputLoading && (!inputs || !inputs?.values || inputs.values.length == 0) }, /* @__PURE__ */ React.createElement(Empty, { hideIcon: true, message: \"There are no inputs.\" })), /* @__PURE__ */ React.createElement(Loading, { visible: inputLoading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"step-info padding16\" }, /* @__PURE__ */ React.createElement(\"tbody\", null, inputs?.values?.map((value) => {\n return /* @__PURE__ */ React.createElement(\"tbody\", { key: value.fromStep + value.from }, /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"From Step: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.fromStep)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"From: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.from)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"Value: \"), /* @__PURE__ */ React.createElement(\"td\", null, value.value)), /* @__PURE__ */ React.createElement(\"tr\", null, /* @__PURE__ */ React.createElement(\"th\", null, \"ParameterKey\"), /* @__PURE__ */ React.createElement(\"td\", null, value.parameterKey || \"-\")));\n }))))))\n ))\n ));\n }\n}\nexport default PipelineRunPage;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Button, Card, Form, Grid, Loading, Message, Select } from \"@alifd/next\";\nimport classNames from \"classnames\";\nimport { connect } from \"dva\";\nimport { routerRedux } from \"dva/router\";\nimport _ from \"lodash\";\nimport React from \"react\";\nimport { Breadcrumb } from \"../../components/Breadcrumb\";\nimport { loadPipeline, updatePipeline } from \"../../api/pipeline\";\nimport { getWorkflowDefinitions } from \"../../api/workflows\";\nimport { If } from \"../../components/If\";\nimport RunPipeline from \"../../components/RunPipeline\";\nimport { Translation } from \"../../components/Translation\";\nimport { WorkflowPrompt } from \"../../components/WorkflowPrompt\";\nimport WorkflowStudio from \"../../components/WorkflowStudio\";\nimport { WorkflowYAML } from \"../../components/WorkflowYAML\";\nimport { WorkflowContext } from \"../../context\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nimport { WorkflowModeOptions } from \"../ApplicationWorkflowStudio\";\nconst { Row, Col } = Grid;\nconst ButtonGroup = Button.Group;\nlet PipelineStudio = class extends React.Component {\n constructor(props) {\n super(props);\n this.loadPipeline = () => {\n const {\n params: { projectName, pipelineName }\n } = this.props.match;\n loadPipeline({ projectName, pipelineName }).then((res) => {\n this.setState({\n pipeline: res,\n mode: res.spec.mode?.steps || \"StepByStep\",\n subMode: res.spec.mode?.subSteps || \"DAG\",\n steps: res.spec.steps\n });\n });\n };\n this.loadWorkflowDefinitions = () => {\n getWorkflowDefinitions(\"WorkflowRun\").then((res) => {\n if (res) {\n this.setState({\n definitions: res && res.definitions\n });\n }\n });\n };\n this.onChange = (steps) => {\n const { pipeline } = this.state;\n this.setState({ steps, changed: !_.isEqual(steps, pipeline?.spec.steps) });\n };\n this.onSave = () => {\n const { pipeline, steps, mode, subMode } = this.state;\n if (pipeline) {\n this.setState({ saveLoading: true });\n updatePipeline({\n alias: pipeline.alias,\n description: pipeline.description,\n name: pipeline.name,\n project: pipeline.project.name,\n spec: {\n steps: steps || [],\n mode: {\n steps: mode,\n subSteps: subMode\n }\n }\n }).then((res) => {\n if (res) {\n Message.success(\"Pipeline updated successfully\");\n this.loadPipeline();\n this.setState({ changed: false });\n }\n }).finally(() => {\n this.setState({ saveLoading: false });\n });\n }\n };\n this.runPipeline = () => {\n const { changed } = this.state;\n if (changed) {\n Message.warning(i18n.t(\"Please save the changes first.\"));\n return;\n }\n this.setState({ showRunPipeline: true });\n };\n this.state = {\n changed: false,\n mode: \"StepByStep\",\n subMode: \"DAG\",\n editMode: \"visual\"\n };\n }\n componentDidMount() {\n this.loadPipeline();\n this.loadWorkflowDefinitions();\n }\n componentDidUpdate(prevProps) {\n if (prevProps.match !== this.props.match) {\n this.loadPipeline();\n }\n }\n render() {\n const { pipeline, definitions, changed, saveLoading, mode, subMode, editMode, showRunPipeline } = this.state;\n const { dispatch } = this.props;\n const {\n params: { projectName }\n } = this.props.match;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, className: classNames(\"breadcrumb\") }, /* @__PURE__ */ React.createElement(\n Breadcrumb,\n {\n items: [\n {\n to: \"/projects/\" + projectName + \"/pipelines\",\n title: projectName\n },\n {\n to: `/projects/${projectName}/pipelines/${pipeline?.name}/studio`,\n title: pipeline && (pipeline.alias || pipeline.name) || \"\"\n },\n { title: \"Studio\" }\n ]\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: 12, className: \"flexright\" }, /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.runPipeline }, /* @__PURE__ */ React.createElement(Translation, null, \"Run\")))), /* @__PURE__ */ React.createElement(\"div\", { className: \"run-layout\", style: { marginTop: \"16px\" } }, changed && /* @__PURE__ */ React.createElement(\n WorkflowPrompt,\n {\n changed,\n content: \"Do you want to save your changes?\",\n title: i18n.t(\"Unsaved changes\"),\n onSave: this.onSave,\n dispatch,\n onClearChanged: () => {\n this.setState({ changed: false });\n }\n }\n ), /* @__PURE__ */ React.createElement(Card, { contentHeight: \"auto\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 10 }), /* @__PURE__ */ React.createElement(Col, { span: 4 }, /* @__PURE__ */ React.createElement(ButtonGroup, null, /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.setState({ editMode: \"visual\" });\n },\n className: classNames(\"edit-mode\", { active: editMode === \"visual\" })\n },\n \"VISUAL\"\n ), /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.setState({ editMode: \"yaml\" });\n },\n className: classNames(\"edit-mode\", \"two\", { active: editMode === \"yaml\" })\n },\n \"YAML\"\n ))), /* @__PURE__ */ React.createElement(\n Col,\n {\n span: 10,\n style: {\n display: \"flex\",\n justifyContent: \"end\"\n }\n },\n changed && /* @__PURE__ */ React.createElement(\"div\", { className: \"notice-changes\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Unsaved changes\")),\n /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Mode\").toString(), labelAlign: \"inset\", style: { marginRight: \"8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n defaultValue: \"StepByStep\",\n value: mode,\n dataSource: WorkflowModeOptions,\n onChange: (value) => {\n this.setState({ mode: value, changed: this.state.mode !== value });\n }\n }\n )),\n /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Sub Mode\").toString(), labelAlign: \"inset\", style: { marginRight: \"8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n defaultValue: \"DAG\",\n value: subMode,\n onChange: (value) => {\n this.setState({ subMode: value, changed: this.state.subMode !== value });\n },\n dataSource: WorkflowModeOptions\n }\n )),\n /* @__PURE__ */ React.createElement(Button, { disabled: !changed, loading: saveLoading, type: \"primary\", onClick: this.onSave }, /* @__PURE__ */ React.createElement(Translation, null, \"Save\"))\n ))), !pipeline && /* @__PURE__ */ React.createElement(Loading, { visible: true }), pipeline && editMode === \"visual\" && /* @__PURE__ */ React.createElement(\n WorkflowContext.Provider,\n {\n value: {\n projectName: pipeline?.project?.name,\n workflow: {\n name: pipeline.name,\n alias: pipeline.alias,\n steps: pipeline.spec.steps,\n mode: pipeline.spec.mode?.steps || \"StepByStep\",\n subMode: pipeline.spec.mode?.subSteps || \"DAG\",\n createTime: pipeline.createTime\n }\n }\n },\n /* @__PURE__ */ React.createElement(\n WorkflowStudio,\n {\n subMode: pipeline.spec.mode?.subSteps,\n definitions,\n steps: _.cloneDeep(pipeline.spec.steps),\n onChange: this.onChange\n }\n )\n ), pipeline && editMode === \"yaml\" && /* @__PURE__ */ React.createElement(WorkflowYAML, { steps: _.cloneDeep(pipeline.spec.steps), name: pipeline.name, onChange: this.onChange })), /* @__PURE__ */ React.createElement(If, { condition: showRunPipeline }, pipeline && /* @__PURE__ */ React.createElement(\n RunPipeline,\n {\n onClose: () => {\n this.setState({ showRunPipeline: false });\n },\n onSuccess: (runName) => {\n this.props.dispatch(\n routerRedux.push(`/projects/${pipeline.project.name}/pipelines/${pipeline.name}/runs/${runName}`)\n );\n },\n pipeline\n }\n )));\n }\n};\nPipelineStudio = __decorateClass([\n connect(() => {\n return {};\n })\n], PipelineStudio);\nexport default PipelineStudio;\n","\"use strict\";\nimport { Grid, Icon, Select, Input, Button } from \"@alifd/next\";\nimport React, { Fragment } from \"react\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"./index.less\";\nconst { Row, Col } = Grid;\nclass SelectSearch extends React.Component {\n constructor(props) {\n super(props);\n this.onChangeEnv = (e) => {\n this.setState(\n {\n envValue: e\n },\n () => {\n this.getApplications();\n }\n );\n };\n this.handleClickSearch = () => {\n this.getApplications();\n };\n this.getApplications = async () => {\n const { targetValue, inputValue, envValue } = this.state;\n const params = {\n targetName: targetValue,\n query: inputValue,\n env: envValue\n };\n this.props.listApplication(params);\n };\n this.onCreateApplication = () => {\n this.setState({\n targetValue: \"\",\n envValue: \"\",\n inputValue: \"\"\n });\n this.props.onAddApplication();\n };\n this.state = {\n targetValue: \"\",\n envValue: \"\",\n inputValue: \"\",\n labelValue: []\n };\n this.onChangeTarget = this.onChangeTarget.bind(this);\n this.handleChangName = this.handleChangName.bind(this);\n this.handleChangeLabel = this.handleChangeLabel.bind(this);\n }\n onChangeTarget(e) {\n this.setState(\n {\n targetValue: e\n },\n () => {\n this.getApplications();\n }\n );\n }\n handleChangName(e) {\n this.setState({\n inputValue: e\n });\n }\n handleChangeLabel(value) {\n const { setLabelValue } = this.props;\n let label = value ? value : [];\n setLabelValue(label);\n this.setState(\n {\n labelValue: label\n },\n () => {\n this.getApplications();\n }\n );\n }\n render() {\n const { targetList, envs, projectName, showMode, labelValue, appLabels } = this.props;\n const { targetValue, inputValue, envValue } = this.state;\n const targetSource = targetList?.map((item) => {\n return {\n label: item.alias || item.name,\n value: item.name\n };\n });\n const envSource = envs?.map((env) => {\n return {\n label: env.alias || env.name,\n value: env.name\n };\n });\n const labelSource = appLabels?.map((item) => {\n return {\n label: item,\n value: item\n };\n });\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Row, { className: \"project-select-wrapper border-radius-8 margin-top-20\" }, /* @__PURE__ */ React.createElement(Col, { span: \"20\" }, /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { xl: 4, m: 4, s: 8, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n size: \"large\",\n onChange: this.onChangeEnv,\n dataSource: envSource,\n placeholder: i18n.t(\"Search by Environment\"),\n className: \"item\",\n hasClear: true,\n value: envValue\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 4, m: 4, s: 8, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n mode: \"single\",\n size: \"large\",\n onChange: this.onChangeTarget,\n dataSource: targetSource,\n placeholder: i18n.t(\"Search by Target\"),\n className: \"item\",\n hasClear: true,\n value: targetValue\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 8, m: 8, s: 16, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Select,\n {\n hasClear: true,\n size: \"large\",\n placeholder: i18n.t(\"Search by Label Selector\").toString(),\n onChange: this.handleChangeLabel,\n showSearch: true,\n mode: \"multiple\",\n value: labelValue,\n className: \"item\",\n dataSource: labelSource\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 4, m: 8, s: 8, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(Icon, { type: \"search\", size: \"xs\", onClick: this.handleClickSearch, style: { margin: 4 } }),\n hasClear: true,\n size: \"large\",\n placeholder: i18n.t(\"Search by Name and Description etc\"),\n onChange: this.handleChangName,\n onPressEnter: this.handleClickSearch,\n value: inputValue,\n className: \"item\"\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 4, s: 8 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"show-mode\" }, /* @__PURE__ */ React.createElement(Button.Group, null, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: showMode == \"card\" ? \"primary\" : \"secondary\",\n onClick: () => this.props.setMode(\"card\")\n },\n \"Card\"\n ), /* @__PURE__ */ React.createElement(\n Button,\n {\n type: showMode == \"table\" ? \"primary\" : \"secondary\",\n onClick: () => this.props.setMode(\"table\")\n },\n \"Table\"\n )))))), /* @__PURE__ */ React.createElement(Col, { span: \"4\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"show-mode\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: { resource: `project:${projectName}/application:*`, action: \"create\" },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(Button, { className: \"create-btn-wrapper\", type: \"primary\", onClick: this.onCreateApplication }, /* @__PURE__ */ React.createElement(Translation, null, \"New Application\"))\n )))));\n }\n}\nexport default SelectSearch;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Loading, Message } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component, Fragment } from \"react\";\nimport { getApplicationList, deleteApplication } from \"../../api/application\";\nimport { getComponentDefinitions } from \"../../api/definitions\";\nimport { getEnvs } from \"../../api/env\";\nimport { getProjectTargetList } from \"../../api/project\";\nimport { If } from \"../../components/If\";\nimport AppDialog from \"../ApplicationList/components/AddAppDialog\";\nimport CardContend from \"../ApplicationList/components/CardContent\";\nimport EditAppDialog from \"../ApplicationList/components/EditAppDialog\";\nimport SelectSearch from \"./components/SelectSearch\";\nlet ProjectApplications = class extends Component {\n constructor(props) {\n super(props);\n this.listApplication = async (queryData) => {\n const { params = { projectName: \"\" } } = this.props.match;\n const { query = \"\", env = \"\", targetName = \"\", labels = \"\" } = queryData || {};\n const queryParams = {\n query,\n env,\n targetName,\n labels,\n project: params.projectName\n };\n this.setState({ isLoading: true });\n getApplicationList(queryParams).then((res) => {\n if (res) {\n this.setState({ applicationList: res.applications || [] });\n }\n }).catch(() => {\n }).finally(() => {\n this.setState({ isLoading: false });\n });\n };\n this.listProjectTargets = async () => {\n const { params = { projectName: \"\" } } = this.props.match;\n getProjectTargetList({ projectName: params.projectName }).then((res) => {\n if (res) {\n this.setState({ targets: res.targets || [] });\n }\n });\n };\n this.listEnvs = async () => {\n const { params = { projectName: \"\" } } = this.props.match;\n getEnvs({ project: params.projectName }).then((res) => {\n if (res) {\n this.setState({ envs: res.envs || [] });\n }\n });\n };\n this.onGetComponentDefinitions = async () => {\n getComponentDefinitions().then((res) => {\n if (res) {\n this.setState({\n componentDefinitions: res && res.definitions\n });\n }\n });\n };\n this.setLabelValue = async (labels) => {\n this.setState({\n labelValue: labels\n });\n };\n this.editApplicationPlan = (editApplicationItem) => {\n this.setState({\n editApplicationItem,\n isEditApplication: true\n });\n };\n this.onDeleteApplicationItem = (name) => {\n deleteApplication({ name }).then((re) => {\n if (re) {\n Message.success(\"Application deleted successfully\");\n this.listApplication();\n }\n });\n };\n this.closeAddApplication = () => {\n this.setState({\n isAddApplication: false\n });\n this.listApplication();\n };\n this.closeEditAppDialog = () => {\n this.setState({\n isEditApplication: false\n });\n this.listApplication();\n };\n this.clickLabelFilter = (label) => {\n let { labelValue } = this.state;\n let existIndex = -1;\n labelValue.map((key, index) => {\n if (key == label) {\n existIndex = index;\n return;\n }\n });\n if (existIndex == -1) {\n labelValue.push(label);\n } else {\n labelValue = labelValue.splice(existIndex, existIndex);\n }\n this.setState({\n labelValue\n });\n this.listApplication({ labels: labelValue.join(\",\") });\n };\n let mode = localStorage.getItem(\"application-list-mode\");\n if (mode != \"table\" && mode != \"card\") {\n mode = \"card\";\n }\n this.state = {\n isLoading: false,\n applicationList: [],\n editApplicationItem: {\n name: \"\",\n alias: \"\",\n icon: \"\",\n description: \"\",\n createTime: \"\"\n },\n envs: [],\n componentDefinitions: [],\n labelValue: [],\n isEditApplication: false,\n isAddApplication: false,\n showMode: mode\n };\n }\n componentDidMount() {\n this.listApplication();\n this.listProjectTargets();\n this.listEnvs();\n this.onGetComponentDefinitions();\n }\n render() {\n const { dispatch, userInfo } = this.props;\n const {\n isLoading,\n applicationList,\n isAddApplication,\n isEditApplication,\n editApplicationItem,\n targets,\n envs,\n componentDefinitions,\n labelValue\n } = this.state;\n const { params = { projectName: \"\" } } = this.props.match;\n const { projectName } = params;\n let appLabels = [];\n applicationList.map((app) => {\n app.labels && Object.keys(app.labels).map((key) => {\n if (key.indexOf(\"ux.oam.dev\") < 0 && key.indexOf(\"app.oam.dev\")) {\n if (app.labels) {\n appLabels.push(key + \"=\" + app.labels[key]);\n }\n }\n });\n });\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"full-container\" }, /* @__PURE__ */ React.createElement(\n SelectSearch,\n {\n targetList: targets,\n envs,\n appLabels,\n setLabelValue: this.setLabelValue,\n labelValue,\n projectName,\n listApplication: (queryData) => {\n this.listApplication(queryData);\n },\n onAddApplication: () => {\n this.setState({ isAddApplication: true });\n },\n setMode: (mode) => {\n this.setState({ showMode: mode });\n if (mode) {\n localStorage.setItem(\"application-list-mode\", mode);\n }\n },\n showMode: this.state.showMode\n }\n ), /* @__PURE__ */ React.createElement(Loading, { visible: isLoading, fullScreen: true }, /* @__PURE__ */ React.createElement(\n CardContend,\n {\n projectName,\n applications: applicationList,\n editAppPlan: (editItem) => {\n this.editApplicationPlan(editItem);\n },\n showMode: this.state.showMode,\n clickLabelFilter: this.clickLabelFilter,\n deleteAppPlan: this.onDeleteApplicationItem,\n setVisible: (visible) => {\n this.setState({ isAddApplication: visible });\n }\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: isAddApplication }, /* @__PURE__ */ React.createElement(\n AppDialog,\n {\n visible: isAddApplication,\n targets,\n projects: userInfo?.projects,\n userInfo,\n isDisableProject: true,\n projectName,\n componentDefinitions,\n setVisible: (visible) => {\n this.setState({ isAddApplication: visible });\n },\n onOK: () => {\n this.setState({ isAddApplication: false });\n this.listApplication();\n },\n onClose: this.closeAddApplication,\n dispatch\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: isEditApplication }, /* @__PURE__ */ React.createElement(\n EditAppDialog,\n {\n editItem: editApplicationItem,\n onOK: this.closeEditAppDialog,\n onClose: this.closeEditAppDialog\n }\n ))));\n }\n};\nProjectApplications = __decorateClass([\n connect((store) => {\n return { ...store, ...store.user };\n })\n], ProjectApplications);\nexport default ProjectApplications;\n","\"use strict\";\nimport { Grid, Form, Input, Field, Button, Message, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { createProjectUsers, updateProjectUser } from \"../../../../api/project\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { getSelectLabel } from \"../../../../utils/utils\";\nclass MemberDialog extends React.Component {\n constructor(props) {\n super(props);\n this.onClose = () => {\n this.props.onClose();\n };\n this.onCreate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { isEditMember, projectName } = this.props;\n const { userName, userRoles } = values;\n const params = {\n userRoles,\n userName\n };\n const queryData = {\n projectName,\n userName\n };\n if (isEditMember) {\n updateProjectUser(queryData, params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Update member success\"));\n this.props.onCreate();\n }\n });\n } else {\n createProjectUsers({ projectName }, params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Create member success\"));\n this.props.onCreate();\n }\n });\n }\n });\n };\n this.showTitle = () => {\n const { isEditMember } = this.props;\n if (isEditMember) {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Edit Member\");\n } else {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Add Member\");\n }\n };\n this.showClickButtons = () => {\n const { isEditMember } = this.props;\n const { loading } = this.state;\n let createEle;\n if (isEditMember) {\n createEle = /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onCreate, loading }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\"));\n } else {\n createEle = /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onCreate, loading }, /* @__PURE__ */ React.createElement(Translation, null, \"Create\"));\n }\n return [\n /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.onClose, style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")),\n createEle\n ];\n };\n this.field = new Field(this);\n this.state = {\n loading: false\n };\n }\n componentDidMount() {\n const { isEditMember, editMember } = this.props;\n if (isEditMember && editMember) {\n const { name, createTime, userRoles } = editMember;\n this.field.setValues({\n userName: name,\n createTime,\n userRoles\n });\n }\n }\n render() {\n const init = this.field.init;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const { isEditMember, projectRoles } = this.props;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const rolesList = getSelectLabel(projectRoles);\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: this.showTitle(),\n placement: \"right\",\n width: 800,\n onClose: this.onClose,\n extButtons: this.showClickButtons()\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Username\"), labelTextAlign: \"left\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"userName\",\n placeholder: i18n.t(\"Please enter\").toString(),\n maxLength: 32,\n disabled: isEditMember ? true : false,\n ...init(\"userName\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a valid userName\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"UserRoles\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(`userRoles`, {\n rules: [\n {\n required: true,\n message: \"Please select userRoles\"\n }\n ]\n }),\n locale: locale().Select,\n mode: \"tag\",\n dataSource: rolesList\n }\n )))))\n ));\n }\n}\nexport default MemberDialog;\n","\"use strict\";\nimport { Table, Button, Pagination, Message, Dialog } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { getProjectRoles, getProjectUsers, deleteProjectUser } from \"../../api/project\";\nimport { If } from \"../../components/If\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport { momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport \"./index.less\";\nimport MemberDialog from \"./components/MemberDialog\";\nclass ProjectMembers extends Component {\n constructor(props) {\n super(props);\n this.listMember = async () => {\n const { projectName, page, pageSize } = this.state;\n const params = {\n projectName,\n page,\n pageSize\n };\n this.setState({ isLoading: true });\n getProjectUsers(params).then((res) => {\n this.setState({\n memberList: res && res.users || [],\n total: res && res.total || 0\n });\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n };\n this.listProjectRoles = async () => {\n const { projectName } = this.state;\n const params = {\n projectName\n };\n this.setState({ isLoading: true });\n getProjectRoles(params).then((res) => {\n this.setState({\n projectRoles: res && res.roles || []\n });\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n };\n this.getProjectName = () => {\n const { params = { projectName: \"\" } } = this.props.match;\n return params.projectName || \"\";\n };\n this.onEdit = (record) => {\n this.onEditMember(record);\n };\n this.onCreate = () => {\n this.setState({\n isMemberDialogVisible: false\n });\n this.listMember();\n };\n this.onDelete = (record) => {\n Dialog.confirm({\n content: \"Are you sure you want to delete the member\",\n onOk: () => {\n const { name, userRoles } = record;\n const { projectName } = this.state;\n const query = {\n userName: name,\n projectName\n };\n if (name) {\n deleteProjectUser(query, { userRoles }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Delete user success\"));\n this.listMember();\n }\n }).catch();\n }\n },\n locale: locale().Dialog\n });\n };\n this.onClose = () => {\n this.setState({\n isMemberDialogVisible: false\n });\n };\n this.onEditMember = (editMember) => {\n this.setState({\n editMember,\n isEditMember: true,\n isMemberDialogVisible: true\n });\n };\n this.handleClickCreate = () => {\n this.setState({\n isMemberDialogVisible: true,\n isEditMember: false\n });\n };\n this.handleChange = (page) => {\n this.setState(\n {\n page\n },\n () => {\n this.listMember();\n }\n );\n };\n this.state = {\n page: 0,\n pageSize: 10,\n total: 0,\n memberList: [],\n projectRoles: [],\n projectName: this.getProjectName(),\n editMember: {\n name: \"\",\n userRoles: []\n },\n isLoading: false,\n isMemberDialogVisible: false,\n isEditMember: false\n };\n }\n componentDidMount() {\n this.listMember();\n this.listProjectRoles();\n }\n render() {\n const { Column } = Table;\n const {\n memberList,\n projectName,\n isMemberDialogVisible,\n isEditMember,\n editMember,\n projectRoles,\n page,\n pageSize,\n total,\n isLoading\n } = this.state;\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v, i, item) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v, \"(\", item.alias || \"-\", \")\");\n }\n },\n {\n key: \"userRoles\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"UserRoles\"),\n dataIndex: \"userRoles\",\n cell: (v) => {\n return v.map((item) => /* @__PURE__ */ React.createElement(\"span\", { key: item, className: \"roles-permPolicies margin-right-5\" }, item));\n }\n },\n {\n key: \"createTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"CreateTime\"),\n dataIndex: \"createTime\",\n cell: (v) => {\n if (v) {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n return \"\";\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/projectUser:${record.name}`,\n action: \"update\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onEdit(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n )\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/projectUser:${record.name}`,\n action: \"delete\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onDelete(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Delete\")\n )\n ));\n }\n }\n ];\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"member-wrapper\" }, /* @__PURE__ */ React.createElement(\"section\", { className: \"member-create-btn\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: { resource: `project:${projectName}/projectUser:*`, action: \"create\" },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.handleClickCreate }, /* @__PURE__ */ React.createElement(Translation, null, \"Add Member\"))\n )), /* @__PURE__ */ React.createElement(\"section\", { className: \"margin-top-20 member-list-wrapper\" }, /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: memberList, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))), /* @__PURE__ */ React.createElement(\n Pagination,\n {\n className: \"margin-top-20 text-align-right\",\n total,\n locale: locale().Pagination,\n size: \"medium\",\n pageSize,\n current: page,\n onChange: this.handleChange\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: isMemberDialogVisible }, /* @__PURE__ */ React.createElement(\n MemberDialog,\n {\n visible: isMemberDialogVisible,\n projectName,\n projectRoles,\n isEditMember,\n editMember,\n onClose: this.onClose,\n onCreate: this.onCreate\n }\n )))));\n }\n}\nexport default ProjectMembers;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Loading, Button, Table, Dialog, Message, Balloon } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link, routerRedux } from \"dva/router\";\nimport React, { Component } from \"react\";\nimport { AiFillCaretRight, AiFillDelete } from \"react-icons/ai\";\nimport { BiCopyAlt } from \"react-icons/bi\";\nimport { HiViewList } from \"react-icons/hi\";\nimport { deletePipeline, listPipelines } from \"../../api/pipeline\";\nimport { If } from \"../../components/If\";\nimport { ListTitle as Title } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport RunPipeline from \"../../components/RunPipeline\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport { beautifyTime, momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport CreatePipeline from \"../PipelineListPage/components/CreatePipeline\";\nimport ClonePipeline from \"../PipelineListPage/components/PipelineClone\";\nimport SelectSearch from \"../PipelineListPage/components/SelectSearch\";\nimport ViewRuns from \"../PipelineListPage/components/ViewRuns\";\nimport RunStatusIcon from \"../PipelineRunPage/components/RunStatusIcon\";\nlet ProjectPipelines = class extends Component {\n constructor(props) {\n super(props);\n this.getPipelines = async (params) => {\n const {\n match: {\n params: { projectName }\n }\n } = this.props;\n this.setState({ isLoading: true });\n listPipelines({ projectName, query: params.query }).then((res) => {\n this.setState({\n pipelines: res && Array.isArray(res.pipelines) ? res.pipelines : []\n });\n }).finally(() => {\n this.setState({ isLoading: false });\n });\n };\n this.onShowPipelineRuns = (pipeline) => {\n this.setState({ showRuns: true, pipeline });\n };\n this.onRunPipeline = (pipeline) => {\n this.setState({ pipeline, showRunPipeline: true });\n };\n this.onClonePipeline = (pipeline) => {\n this.setState({ pipeline, showClonePipeline: true });\n };\n this.onDeletePipeline = (pipeline) => {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n deletePipeline({\n projectName: pipeline.project.name,\n pipelineName: pipeline.name\n }).then((res) => {\n if (res) {\n Message.success(i18n.t(\"The Pipeline removed successfully\"));\n this.getPipelines({});\n }\n });\n },\n locale: locale().Dialog\n });\n };\n this.renderPipelineTable = () => {\n const { pipelines } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"table-pipeline-list\" }, /* @__PURE__ */ React.createElement(\n Table,\n {\n className: \"customTable\",\n size: \"medium\",\n style: { minWidth: \"1400px\" },\n locale: locale().Table,\n dataSource: pipelines\n },\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"name\",\n title: i18n.t(\"Name(Alias)\").toString(),\n dataIndex: \"name\",\n cell: (name, i, pipeline) => {\n let text = name;\n if (pipeline.alias) {\n text = `${name}(${pipeline.alias})`;\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"pipeline-name\" }, /* @__PURE__ */ React.createElement(Link, { to: `/projects/${pipeline.project.name}/pipelines/${pipeline.name}/studio` }, text), /* @__PURE__ */ React.createElement(\"span\", null, pipeline.description));\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"project\",\n title: i18n.t(\"Project\").toString(),\n dataIndex: \"project\",\n cell: (project) => {\n let text = project.name;\n if (project.alias) {\n text = `${project.name}(${project.alias})`;\n }\n return /* @__PURE__ */ React.createElement(Link, { to: `/projects/${project.name}` }, text);\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"createTime\",\n title: i18n.t(\"CreateTime\").toString(),\n dataIndex: \"createTime\",\n width: 160,\n cell: (v) => {\n return momentDate(v);\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"runs\",\n title: i18n.t(\"Recent Runs(Last 7-Days)\").toString(),\n dataIndex: \"info.runStat\",\n width: \"280px\",\n cell: (runState) => {\n if (!runState) {\n return \"-\";\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"run-state\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"week\" }, runState.week?.map((day) => {\n const failure = day.total == 0 ? 0 : Math.floor(day.fail / day.total * 100);\n const success = 100 - failure;\n return /* @__PURE__ */ React.createElement(\n Balloon,\n {\n trigger: /* @__PURE__ */ React.createElement(\"div\", { className: \"rectangle\" }, /* @__PURE__ */ React.createElement(If, { condition: day.total > 0 }, /* @__PURE__ */ React.createElement(\"span\", { className: \"failure\", style: { height: `${failure}%` } }), /* @__PURE__ */ React.createElement(\"span\", { className: \"success\", style: { height: `${success}%` } })), /* @__PURE__ */ React.createElement(If, { condition: day.total == 0 }, /* @__PURE__ */ React.createElement(\"span\", { style: { height: `10px` } })))\n },\n /* @__PURE__ */ React.createElement(If, { condition: day.total == 0 }, \"No Run\"),\n /* @__PURE__ */ React.createElement(If, { condition: day.total > 0 }, /* @__PURE__ */ React.createElement(\"p\", null, \"Total: \", day.total), /* @__PURE__ */ React.createElement(\"p\", null, \"Success: \", day.success))\n );\n })), /* @__PURE__ */ React.createElement(If, { condition: runState.total.total > 0 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"active\" }, /* @__PURE__ */ React.createElement(\"span\", null, runState.total.total))));\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"lastRun\",\n title: i18n.t(\"Last Run\").toString(),\n dataIndex: \"info.lastRun\",\n cell: (run) => {\n if (run) {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"last-run\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"metadata\" }, /* @__PURE__ */ React.createElement(\n Link,\n {\n to: `/projects/${run.project.name}/pipelines/${run.pipelineName}/runs/${run.pipelineRunName}`\n },\n run.pipelineRunName\n ), /* @__PURE__ */ React.createElement(\"span\", null, beautifyTime(run.status?.startTime))), /* @__PURE__ */ React.createElement(RunStatusIcon, { status: run.status?.status }));\n }\n return /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"var(--grey-400)\" } }, \"This Pipeline never ran.\");\n }\n }\n ),\n /* @__PURE__ */ React.createElement(\n Table.Column,\n {\n key: \"actions\",\n title: i18n.t(\"Actions\").toString(),\n dataIndex: \"name\",\n width: \"360px\",\n cell: (name, i, pipeline) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}`,\n action: \"run\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onRunPipeline(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillCaretRight, null),\n \" \",\n /* @__PURE__ */ React.createElement(Translation, null, \"Run\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}/pipelineRun:*`,\n action: \"list\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onShowPipelineRuns(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(HiViewList, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"View Runs\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:*`,\n action: \"create\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onClonePipeline(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(BiCopyAlt, null),\n \" \",\n /* @__PURE__ */ React.createElement(Translation, null, \"Clone\")\n ),\n /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: pipeline.project.name,\n resource: {\n resource: `project:${pipeline.project.name}/pipeline:${pipeline.name}`,\n action: \"delete\"\n }\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n className: \"danger-btn\",\n component: \"a\",\n onClick: () => {\n this.onDeletePipeline(pipeline);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillDelete, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n )\n ));\n }\n }\n )\n ));\n };\n this.state = {\n isLoading: false,\n showMode: \"list\"\n };\n }\n componentDidMount() {\n this.getPipelines({});\n }\n render() {\n const { userInfo } = this.props;\n const {\n match: {\n params: { projectName }\n }\n } = this.props;\n const { showMode, isLoading, showRunPipeline, pipeline, showRuns, showNewPipeline, showClonePipeline } = this.state;\n const { enabledAddons } = this.props;\n const addonEnabled = enabledAddons?.filter((addon) => addon.name == \"vela-workflow\").length;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Title,\n {\n title: \"\",\n subTitle: \"\",\n extButtons: [\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: { resource: `project:${projectName}/pipeline:*`, action: \"create\" },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(If, { condition: addonEnabled }, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n onClick: () => {\n this.setState({ showNewPipeline: true });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New Pipeline\")\n ))\n )\n ]\n }\n ), /* @__PURE__ */ React.createElement(\n SelectSearch,\n {\n projects: userInfo?.projects,\n disableProject: true,\n showMode,\n setMode: (mode) => {\n this.setState({ showMode: mode });\n if (mode) {\n localStorage.setItem(\"application-list-mode\", mode);\n }\n },\n getPipelines: (params) => {\n this.getPipelines(params);\n }\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: addonEnabled }, /* @__PURE__ */ React.createElement(Loading, { style: { width: \"100%\" }, visible: isLoading }, this.renderPipelineTable())), /* @__PURE__ */ React.createElement(If, { condition: !addonEnabled }, /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"addon\", action: \"enable\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"addon-notice\" }, \"Please enable the \", /* @__PURE__ */ React.createElement(Link, { to: \"/addons/datanature-workflow\" }, \"datanature-workflow\"), \" addon to power pipeline.\"))), /* @__PURE__ */ React.createElement(If, { condition: showRunPipeline }, pipeline && /* @__PURE__ */ React.createElement(\n RunPipeline,\n {\n onClose: () => {\n this.setState({ showRunPipeline: false, pipeline: void 0 });\n },\n onSuccess: (runName) => {\n this.props.dispatch(\n routerRedux.push(`/projects/${pipeline.project.name}/pipelines/${pipeline.name}/runs/${runName}`)\n );\n },\n pipeline\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showRuns }, pipeline && /* @__PURE__ */ React.createElement(\n ViewRuns,\n {\n pipeline,\n onClose: () => {\n this.setState({ showRuns: false, pipeline: void 0 });\n }\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showNewPipeline }, /* @__PURE__ */ React.createElement(\n CreatePipeline,\n {\n onClose: () => {\n this.setState({ showNewPipeline: false, pipeline: void 0 });\n },\n onSuccess: (p) => {\n this.props.dispatch(routerRedux.push(`/projects/${p.project.name}/pipelines/${p.name}/studio`));\n },\n pipeline\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: showClonePipeline }, /* @__PURE__ */ React.createElement(\n ClonePipeline,\n {\n onClose: () => {\n this.setState({ showClonePipeline: false, pipeline: void 0 });\n },\n onSuccess: () => {\n this.getPipelines({});\n this.setState({ showClonePipeline: false, pipeline: void 0 });\n },\n pipeline\n }\n )));\n }\n};\nProjectPipelines = __decorateClass([\n connect((store) => {\n return { ...store.user, ...store.addons };\n })\n], ProjectPipelines);\nexport default ProjectPipelines;\n","\"use strict\";\nimport { Message } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { AiOutlineDelete } from \"react-icons/ai\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport \"./index.less\";\nclass ProjectMenu extends Component {\n constructor() {\n super(...arguments);\n this.handleChangeRole = (name) => {\n const { isCreateProjectRoles } = this.props;\n if (!isCreateProjectRoles) {\n this.props.handleChangeRole(name);\n } else {\n return Message.warning(\n /* @__PURE__ */ React.createElement(Translation, null, \"When adding a project role, you cannot view the details of other project roles\")\n );\n }\n };\n this.getMenuList = () => {\n const { projectRoles, activeRoleName, isCreateProjectRoles, projectName } = this.props;\n const menuList = (projectRoles || []).map((item) => {\n const activeRole = activeRoleName === item.name && !isCreateProjectRoles ? \"active\" : \"\";\n return /* @__PURE__ */ React.createElement(\n \"li\",\n {\n className: `menu-role-item ${activeRole}`,\n onClick: () => {\n this.handleChangeRole(item.name);\n }\n },\n /* @__PURE__ */ React.createElement(\"span\", null, \" \", item.alias || item.name, \" \"),\n /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: { resource: `project:${projectName}/role:${item.name}`, action: \"delete\" },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(\n AiOutlineDelete,\n {\n onClick: (e) => {\n this.handleClick(item.name, e);\n }\n }\n ))\n )\n );\n });\n return menuList;\n };\n }\n handleClick(name, e) {\n e.preventDefault();\n this.props.onDeleteProjectRole(name);\n }\n render() {\n const { projectName } = this.props;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"ul\", { className: \"project-menu-wrapper\" }, this.getMenuList(), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `project:${projectName}/role:*`, action: \"create\" }, project: projectName }, /* @__PURE__ */ React.createElement(\"li\", { className: \"add-roles-btn\", onClick: this.props.addRole }, /* @__PURE__ */ React.createElement(Translation, null, \"New Role\")))));\n }\n}\nexport default ProjectMenu;\n","\"use strict\";\nimport { Grid, Form, Input, Field, Checkbox, Button, Message } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { createProjectRoles, updateProjectRoles } from \"../../../../api/project\";\nimport Empty from \"../../../../components/Empty\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport \"./index.less\";\nconst { Group: CheckboxGroup } = Checkbox;\nclass ProjectPermPoliciesDetail extends Component {\n constructor(props) {\n super(props);\n this.initPermPoliciesStatus = (activeItem) => {\n if (activeItem) {\n return (activeItem.permissions || []).map((item) => item.name);\n } else {\n return [];\n }\n };\n this.onSubmit = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { isCreateProjectRoles, projectName, activeRoleName } = this.props;\n const { name, alias, permissions } = values;\n const queryData = {\n projectName,\n roleName: activeRoleName\n };\n const param = {\n name,\n alias,\n permissions\n };\n this.setState({ loading: true });\n if (isCreateProjectRoles) {\n createProjectRoles(queryData, param).then((res) => {\n this.setState({ loading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Create role success\"));\n this.props.onCreate(res.name);\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n } else {\n updateProjectRoles(queryData, param).then((res) => {\n this.setState({ loading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Update role success\"));\n this.props.onCreate(res.name);\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n });\n };\n this.renderSubmitButton = () => {\n const { isCreateProjectRoles, projectName } = this.props;\n const name = this.field.getValue(\"name\");\n if (isCreateProjectRoles) {\n return /* @__PURE__ */ React.createElement(Permission, { request: { resource: `project:${projectName}/role:*`, action: \"create\" }, project: projectName }, /* @__PURE__ */ React.createElement(Button, { className: \"create-auth-btn\", type: \"primary\", onClick: this.onSubmit }, /* @__PURE__ */ React.createElement(Translation, null, \"Create\")));\n } else {\n return /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: { resource: `project:${projectName}/role:${name}`, action: \"update\" },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(Button, { className: \"create-auth-btn\", type: \"primary\", onClick: this.onSubmit }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\"))\n );\n }\n };\n this.field = new Field(this);\n this.state = {\n loading: false\n };\n }\n componentWillReceiveProps(nextProps) {\n const { isCreateProjectRoles } = nextProps;\n if (isCreateProjectRoles) {\n this.field.setValues({\n name: \"\",\n alias: \"\",\n permissions: []\n });\n } else {\n if (nextProps.activeRoleItem !== this.props.activeRoleItem) {\n this.field.setValues({\n name: nextProps.activeRoleItem.name || \"\",\n alias: nextProps.activeRoleItem.alias || \"\",\n permissions: this.initPermPoliciesStatus(nextProps.activeRoleItem)\n });\n }\n }\n }\n render() {\n const init = this.field.init;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const { projectRoles, isCreateProjectRoles, projectPermissions } = this.props;\n const permissions = projectPermissions.map((p) => {\n return {\n label: p.alias || p.name,\n value: p.name\n };\n });\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(If, { condition: projectRoles && projectRoles.length === 0 && !isCreateProjectRoles }, /* @__PURE__ */ React.createElement(\"div\", { className: \"project-role-empty-wrapper\" }, /* @__PURE__ */ React.createElement(Empty, null))), /* @__PURE__ */ React.createElement(If, { condition: projectRoles && projectRoles.length !== 0 || isCreateProjectRoles }, /* @__PURE__ */ React.createElement(\"div\", { className: \"auth-list-wrapper\" }, /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field, className: \"auth-form-content\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"16px 16px 0 30px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n labelAlign: \"left\",\n required: true,\n className: \"font-weight-400\"\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n placeholder: i18n.t(\"Please input the rule name\").toString(),\n maxLength: 32,\n disabled: isCreateProjectRoles ? false : true,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a valid name\")\n }\n ]\n })\n }\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"16px 16px 0 30px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\"), labelAlign: \"left\", className: \"font-weight-400\" }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please input the role alias\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 16px 16px 30px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Permissions\"),\n labelAlign: \"left\",\n className: \"font-weight-400 permPolicies-wrapper\",\n required: true\n },\n /* @__PURE__ */ React.createElement(\n CheckboxGroup,\n {\n dataSource: permissions,\n ...init(\"permissions\", {\n rules: [\n {\n required: true,\n type: \"array\",\n message: \"Please select at last on permission\"\n }\n ]\n })\n }\n )\n )))), this.renderSubmitButton())));\n }\n}\nexport default ProjectPermPoliciesDetail;\n","\"use strict\";\nimport { Grid, Dialog, Message } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport { getProjectRoles, getProjectPermissions, deleteProjectRoles } from \"../../api/project\";\nimport { If } from \"../../components/If\";\nimport { Translation } from \"../../components/Translation\";\nimport { locale } from \"../../utils/locale\";\nimport ProjectMenu from \"./components/Menu\";\nimport ProjectPermPoliciesDetail from \"./components/ProjectPermPoliciesDetail\";\nimport \"./index.less\";\nclass ProjectRoles extends Component {\n constructor(props) {\n super(props);\n this.listProjectRoles = async () => {\n const { projectName } = this.state;\n const params = {\n projectName\n };\n this.setState({ isLoading: true });\n getProjectRoles(params).then((res) => {\n this.setState({\n projectRoles: res && res.roles || []\n });\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n };\n this.listProjectPermPolicies = async () => {\n const { projectName } = this.state;\n const param = { projectName };\n getProjectPermissions(param).then((res) => {\n this.setState({\n projectPermissions: res && res || []\n });\n });\n };\n this.getProjectName = () => {\n const { params = { projectName: \"\" } } = this.props.match;\n return params.projectName || \"\";\n };\n this.getActiveRoleName = () => {\n const { activeRoleName, projectRoles = [] } = this.state;\n if (!activeRoleName && projectRoles.length != 0) {\n return projectRoles[0] && projectRoles[0].name;\n } else {\n return activeRoleName || \"\";\n }\n };\n this.getActiveRoleItem = () => {\n const { activeRoleItem, projectRoles = [] } = this.state;\n if (!activeRoleItem.name && projectRoles.length != 0) {\n return projectRoles[0];\n } else {\n return activeRoleItem || [];\n }\n };\n this.addRole = () => {\n this.setState({\n isCreateProjectRoles: true\n });\n };\n this.handleChangeRole = (roleName) => {\n this.setState(\n {\n activeRoleName: roleName\n },\n () => {\n const activeRoleItem = this.findActiveRoleItem();\n this.setState({\n activeRoleItem: activeRoleItem || { name: \"\" }\n });\n }\n );\n };\n this.findActiveRoleItem = () => {\n const { projectRoles, activeRoleName } = this.state;\n return (projectRoles || [{ name: \"\" }]).find((item) => item.name === activeRoleName);\n };\n this.onCreate = (activeRoleName) => {\n this.setState({\n isCreateProjectRoles: false,\n activeRoleName\n });\n this.listProjectRoles();\n };\n this.onDeleteProjectRole = (roleName) => {\n const { projectName } = this.state;\n Dialog.confirm({\n content: \"Are you sure you want to delete this role\",\n onOk: () => {\n if (roleName) {\n deleteProjectRoles({ projectName, roleName }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Delete the role success\"));\n this.listProjectRoles();\n }\n });\n }\n },\n locale: locale().Dialog\n });\n };\n this.state = {\n projectName: this.getProjectName(),\n projectRoles: [],\n projectPermissions: [],\n activeRoleName: \"\",\n isLoading: false,\n isAddRole: false,\n activeRoleItem: { name: \"\" },\n isCreateProjectRoles: false\n };\n }\n componentDidMount() {\n this.listProjectRoles();\n this.listProjectPermPolicies();\n }\n render() {\n const { Row, Col } = Grid;\n const { projectName, projectRoles, isAddRole, projectPermissions, isCreateProjectRoles } = this.state;\n return /* @__PURE__ */ React.createElement(Row, { className: \"project-roles-wrapper\" }, /* @__PURE__ */ React.createElement(Col, { span: \"6\" }, /* @__PURE__ */ React.createElement(\n ProjectMenu,\n {\n isCreateProjectRoles,\n isAddRole,\n activeRoleName: this.getActiveRoleName(),\n projectRoles,\n addRole: this.addRole,\n projectName,\n handleChangeRole: (roleName) => {\n this.handleChangeRole(roleName);\n },\n onDeleteProjectRole: (roleName) => {\n this.onDeleteProjectRole(roleName);\n }\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: \"18\", className: \"project-auth-border-left\" }, /* @__PURE__ */ React.createElement(If, { condition: !isAddRole }, /* @__PURE__ */ React.createElement(\n ProjectPermPoliciesDetail,\n {\n projectRoles,\n projectName,\n isCreateProjectRoles,\n activeRoleName: this.getActiveRoleName(),\n activeRoleItem: this.getActiveRoleItem(),\n projectPermissions,\n onCreate: (activeRoleName) => {\n this.onCreate(activeRoleName);\n }\n }\n ))));\n }\n}\nexport default ProjectRoles;\n","\"use strict\";\nimport { Table, Button, Tag, Balloon, Dialog, Message } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { momentDate } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"./index.less\";\nimport { deleteProjectConfigDistribution, getProjectConfigDistributions } from \"../../../../api/config\";\nimport { HiOutlineRefresh } from \"react-icons/hi\";\nclass ConfigDistributionPage extends Component {\n constructor(props) {\n super(props);\n this.listConfigDistributions = async (projectName) => {\n this.setState({\n isLoading: true\n });\n getProjectConfigDistributions({ projectName }).then((res) => {\n this.setState({\n distributions: res && Array.isArray(res.distributions) ? res.distributions : []\n });\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n };\n this.onDelete = (record) => {\n const { projectName } = this.props;\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Are you sure to delete?\"),\n onOk: () => {\n deleteProjectConfigDistribution(projectName, record.name).then((res) => {\n if (res) {\n Message.success(\"Distribution deleted successfully\");\n this.listConfigDistributions(projectName);\n }\n });\n },\n locale: locale().Dialog\n });\n };\n this.state = {\n distributions: [],\n isLoading: false\n };\n }\n componentDidMount() {\n const { projectName } = this.props;\n this.listConfigDistributions(projectName);\n }\n shouldComponentUpdate(nextProps) {\n const change = nextProps.projectName !== this.props.projectName;\n if (change) {\n this.listConfigDistributions(nextProps.projectName);\n }\n return true;\n }\n render() {\n const { projectName } = this.props;\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"configs\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Configs\"),\n dataIndex: \"configs\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, v.map((i) => {\n return /* @__PURE__ */ React.createElement(Tag, null, i.namespace, \"/\", i.name);\n }));\n }\n },\n {\n key: \"targets\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Targets\"),\n dataIndex: \"targets\",\n cell: (targets, i, record) => {\n const targetStatus = /* @__PURE__ */ new Map();\n record.status?.workflow?.steps?.map((step) => {\n if (step.name) {\n const target = step.name.split(\"-\");\n if (target.length >= 3 && target[0] == \"deploy\") {\n targetStatus.set(step.name.replace(\"deploy-\", \"\"), step);\n }\n }\n });\n return /* @__PURE__ */ React.createElement(\"div\", null, targets.map((t) => {\n const step = targetStatus.get(`${t.clusterName}-${t.namespace}`);\n const tag = /* @__PURE__ */ React.createElement(\n Tag,\n {\n animation: true,\n color: step?.phase === \"succeeded\" ? \"green\" : step?.phase === \"failed\" ? \"red\" : \"yellow\"\n },\n t.clusterName,\n \"/\",\n t.namespace,\n \"/\",\n step?.phase\n );\n return step?.message ? /* @__PURE__ */ React.createElement(Balloon, { trigger: tag }, step.message) : tag;\n }));\n }\n },\n {\n key: \"status\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Status\"),\n dataIndex: \"status.status\",\n cell: (v) => {\n if (v == \"running\") {\n return /* @__PURE__ */ React.createElement(\"span\", { color: \"#28a745\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Completed\"));\n }\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"createdTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n dataIndex: \"createdTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/config:${record.name}`,\n action: \"delete\"\n },\n project: \"\"\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onDelete(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Delete\")\n )\n ));\n }\n }\n ];\n const { Column } = Table;\n const { distributions, isLoading } = this.state;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"config-wrapper\" }, /* @__PURE__ */ React.createElement(\"section\", { className: \"card-title-wrapper\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"card-title\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Config Distributions\")), /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n onClick: () => {\n this.listConfigDistributions(projectName);\n },\n className: \"card-button-wrapper\"\n },\n /* @__PURE__ */ React.createElement(HiOutlineRefresh, null)\n )), /* @__PURE__ */ React.createElement(\"section\", { className: \"card-content-table\" }, /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: distributions, hasBorder: true, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))))));\n }\n}\nexport default ConfigDistributionPage;\n","\"use strict\";\nimport { Message, Grid, Dialog, Form, Field, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport \"./index.less\";\nimport { applyProjectConfigDistribution } from \"../../../../api/config\";\nimport { getProjectTargetList } from \"../../../../api/project\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { locale } from \"../../../../utils/locale\";\nconst { Col, Row } = Grid;\nclass DistributeConfigDialog extends React.Component {\n constructor(props) {\n super(props);\n this.loadTargets = () => {\n const { projectName } = this.props;\n getProjectTargetList({ projectName }).then((res) => {\n if (res && Array.isArray(res.targets)) {\n this.setState({ targetOptions: res.targets });\n } else {\n this.setState({ targetOptions: [] });\n }\n });\n };\n this.onClose = () => {\n this.props.onClose();\n };\n this.onOk = () => {\n const { projectName, config } = this.props;\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { targets } = values;\n const applyTargets = [];\n targets.map((t) => {\n if (t && t.includes(\"/\")) {\n applyTargets.push({\n clusterName: t.split(\"/\")[0],\n namespace: t.split(\"/\")[1]\n });\n }\n });\n applyProjectConfigDistribution(projectName, {\n name: \"distribute-\" + config.name,\n targets: applyTargets,\n configs: [config]\n }).then(() => {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Config distributed successfully\"));\n this.props.onSuccess();\n });\n });\n };\n this.field = new Field(this);\n this.state = {};\n }\n componentDidMount() {\n this.loadTargets();\n }\n render() {\n const FormItem = Form.Item;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 18\n }\n };\n const init = this.field.init;\n const { targets } = this.props;\n const { targetOptions } = this.state;\n const options = targetOptions?.map((target) => {\n const key = target.cluster?.clusterName + \"/\" + target.cluster?.namespace;\n return {\n label: `${target.alias || target.name}(${key})`,\n value: key\n };\n });\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n locale: locale().Dialog,\n v2: true,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Distribute the config\"),\n overflowScroll: true,\n autoFocus: true,\n visible: true,\n onOk: this.onOk,\n onCancel: this.onClose,\n onClose: this.onClose,\n footerActions: [\"ok\"],\n footerAlign: \"center\"\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Targets\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n multiple: true,\n name: \"name\",\n locale: locale().Select,\n dataSource: options,\n ...init(\"targets\", {\n initValue: targets?.map((t) => {\n return `${t.clusterName}/${t.namespace}`;\n }),\n rules: [\n {\n required: true\n }\n ]\n })\n }\n )))))\n );\n }\n}\nexport default DistributeConfigDialog;\n","\"use strict\";\nimport { Table, Button, Dialog, Message, Tag, Balloon } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { momentDate } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"./index.less\";\nimport { deleteConfig, getProjectConfigs } from \"../../../../api/config\";\nimport CreateConfig from \"../../../Configs/components/CreateConfigDialog\";\nimport DistributeConfigDialog from \"./config-distribute\";\nimport { HiOutlineRefresh } from \"react-icons/hi\";\nclass Configs extends Component {\n constructor(props) {\n super(props);\n this.listConfigs = async (projectName) => {\n this.setState({\n isLoading: true\n });\n getProjectConfigs({ projectName }).then((res) => {\n this.setState({\n configs: Array.isArray(res.configs) ? res.configs : []\n });\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n };\n this.onClick = (int) => {\n this.setState({ showConfig: true, config: int });\n };\n this.onDelete = (record) => {\n const { projectName } = this.props;\n Dialog.confirm({\n content: \"Are you sure want to delete this config\",\n onOk: () => {\n const { name } = record;\n if (name) {\n deleteConfig(name, projectName).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Config deleted successfully\"));\n this.listConfigs(projectName);\n }\n });\n }\n },\n locale: locale().Dialog\n });\n };\n this.onDistribute = (record) => {\n this.setState({ distribution: record });\n };\n this.state = {\n configs: [],\n isLoading: false\n };\n }\n componentDidMount() {\n const { projectName } = this.props;\n this.listConfigs(projectName);\n }\n shouldComponentUpdate(nextProps) {\n const change = nextProps.projectName !== this.props.projectName;\n if (change) {\n this.listConfigs(nextProps.projectName);\n }\n return true;\n }\n render() {\n const { projectName } = this.props;\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v, i, config2) => {\n const title = `${v}(${config2.alias || \"-\"})`;\n if (config2.sensitive || config2.shared) {\n return /* @__PURE__ */ React.createElement(\"span\", null, title);\n }\n return /* @__PURE__ */ React.createElement(\"a\", { onClick: () => this.onClick(config2) }, title);\n }\n },\n {\n key: \"template\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Template\"),\n dataIndex: \"template.name\"\n },\n {\n key: \"targets\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Distribution\"),\n dataIndex: \"targets\",\n cell: (targets) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, targets?.map((t) => {\n const tag = /* @__PURE__ */ React.createElement(\n Tag,\n {\n animation: true,\n color: t.status === \"succeeded\" ? \"green\" : t.status === \"failed\" ? \"red\" : \"yellow\"\n },\n t.clusterName,\n \"/\",\n t.namespace\n );\n return t.message ? /* @__PURE__ */ React.createElement(Balloon, { trigger: tag }, t.message) : tag;\n }));\n }\n },\n {\n key: \"description\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\"),\n dataIndex: \"description\"\n },\n {\n key: \"createTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n dataIndex: \"createdTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(If, { condition: !record.shared }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/config:${record.name}`,\n action: \"delete\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onDelete(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Delete\")\n )\n )), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/config:${record.name}`,\n action: \"distribute\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onDistribute(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Distribute\")\n )\n ));\n }\n }\n ];\n const { Column } = Table;\n const { configs, isLoading, showConfig, config, distribution } = this.state;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"config-wrapper\" }, /* @__PURE__ */ React.createElement(\"section\", { className: \"card-title-wrapper\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"card-title\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Configs\")), /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n onClick: () => {\n this.listConfigs(projectName);\n },\n className: \"card-button-wrapper\"\n },\n /* @__PURE__ */ React.createElement(HiOutlineRefresh, null)\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: { resource: `project:${projectName}/config:*`, action: \"create\" },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n onClick: () => {\n this.setState({ showConfig: true });\n },\n type: \"secondary\",\n className: \"card-button-wrapper\"\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Add\")\n )\n ))), /* @__PURE__ */ React.createElement(\"section\", { className: \"card-content-table\" }, /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: configs, hasBorder: true, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))))), /* @__PURE__ */ React.createElement(If, { condition: showConfig }, /* @__PURE__ */ React.createElement(\n CreateConfig,\n {\n onSuccess: () => {\n this.listConfigs(projectName);\n this.setState({ showConfig: false, config: void 0 });\n },\n onClose: () => {\n this.setState({ showConfig: false, config: void 0 });\n },\n configName: config?.name,\n project: projectName,\n template: config?.template,\n visible: true\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: distribution }, distribution && /* @__PURE__ */ React.createElement(\n DistributeConfigDialog,\n {\n config: distribution,\n onClose: () => {\n this.setState({ distribution: void 0 });\n },\n onSuccess: () => {\n this.listConfigs(projectName);\n this.setState({ distribution: void 0 });\n },\n targets: distribution?.targets,\n projectName\n }\n )));\n }\n}\nexport default Configs;\n","\"use strict\";\nimport { Grid, Form, Input, Field, Button, Message, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { updateProject } from \"../../../../api/project\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nclass GeneralDialog extends React.Component {\n constructor(props) {\n super(props);\n this.onCloseGeneral = () => {\n this.props.onCloseGeneral();\n };\n this.onUpdateGeneral = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { isEditGeneral } = this.props;\n const { name, alias, description, owner } = values;\n const param = {\n name,\n alias,\n owner,\n description\n };\n this.setState({ loading: true });\n if (isEditGeneral) {\n updateProject(param).then((res) => {\n this.setState({ loading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Project updated successfully\"));\n this.props.onUpdateGeneral();\n }\n }).catch(() => {\n this.setState({ loading: false });\n });\n }\n });\n };\n this.getTitle = () => {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Edit General\");\n };\n this.field = new Field(this);\n this.state = {\n loading: false\n };\n }\n componentDidMount() {\n const { isEditGeneral, editGeneral } = this.props;\n if (isEditGeneral && editGeneral) {\n const { name, alias, owner = { name: \"\" }, description } = editGeneral;\n this.field.setValues({\n name,\n alias,\n owner: owner.name,\n description\n });\n }\n }\n render() {\n const init = this.field.init;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const { isEditGeneral, userList } = this.props;\n const { loading } = this.state;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const buttons = [\n /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.onCloseGeneral, style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")),\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onUpdateGeneral, loading }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\"))\n ];\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: this.getTitle(),\n placement: \"right\",\n width: 800,\n onClose: this.onCloseGeneral,\n extButtons: buttons\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), labelTextAlign: \"left\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n disabled: isEditGeneral ? true : false,\n placeholder: i18n.t(\"Please enter\").toString(),\n maxLength: 32,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a project name\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Owner\") }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"owner\",\n hasClear: true,\n showSearch: true,\n placeholder: i18n.t(\"Please select a owner for this project\").toString(),\n filterLocal: true,\n dataSource: userList,\n style: { width: \"100%\" },\n ...init(\"owner\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please select a owner for this project\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"description\",\n placeholder: i18n.t(\"Please input a description for the project\").toString(),\n ...init(\"description\")\n }\n )))))\n ));\n }\n}\nexport default GeneralDialog;\n","\"use strict\";\nimport { Button, Grid, Card, Message } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { If } from \"../../../../components/If\";\nimport Item from \"../../../../components/Item\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { momentDate } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport GeneralDialog from \"../GeneralDialog\";\nimport \"./index.less\";\nclass General extends Component {\n constructor(props) {\n super(props);\n this.editGeneral = (item) => {\n this.setState({\n editGeneral: item,\n isEditGeneral: true\n });\n };\n this.onCloseGeneral = () => {\n this.setState({\n isEditGeneral: false\n });\n };\n this.onUpdateGeneral = () => {\n this.setState({\n isEditGeneral: false\n });\n this.props.loadProjectDetail();\n };\n this.state = {\n editGeneral: { name: \"\", alias: \"\", owner: { name: \"\", alias: \"\" }, description: \"\" },\n isEditGeneral: false\n };\n }\n render() {\n const { Row, Col } = Grid;\n const {\n userList,\n projectDetails = {\n name: \"\",\n alias: \"\",\n createTime: \"\",\n description: \"\",\n owner: { name: \"\", alias: \"\" }\n },\n projectName\n } = this.props;\n const { isEditGeneral, editGeneral } = this.state;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"general-wrapper\" }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\", className: \"card-wrapper\" }, /* @__PURE__ */ React.createElement(\"section\", { className: \"card-title-wrapper\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"card-title\" }, /* @__PURE__ */ React.createElement(Translation, null, \"General\")), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `project:${projectName}`, action: \"update\" }, project: projectName }, /* @__PURE__ */ React.createElement(\n Button,\n {\n className: \"card-button-wrapper\",\n onClick: () => {\n this.editGeneral(projectDetails);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n ))), /* @__PURE__ */ React.createElement(\"section\", { className: \"card-content-wrapper\" }, /* @__PURE__ */ React.createElement(If, { condition: projectDetails.description }, /* @__PURE__ */ React.createElement(Row, { style: { marginBottom: \"16px\" } }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\" }, projectDetails.description))), /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { m: 12, xs: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Name(Alias)\"),\n value: `${projectDetails.name}(${projectDetails.alias || \"-\"})`\n }\n )), /* @__PURE__ */ React.createElement(Col, { m: 12, xs: 24 }, /* @__PURE__ */ React.createElement(\n Item,\n {\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Owner\"),\n value: projectDetails.owner?.alias ? `${projectDetails.owner?.alias}(${projectDetails.owner?.name})` : projectDetails.owner?.name\n }\n ))), /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { m: 12, xs: 24 }, /* @__PURE__ */ React.createElement(Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"), value: momentDate(projectDetails.createTime) })), /* @__PURE__ */ React.createElement(Col, { m: 12, xs: 24 }, /* @__PURE__ */ React.createElement(Item, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Update Time\"), value: momentDate(projectDetails.updateTime) })))))), /* @__PURE__ */ React.createElement(If, { condition: isEditGeneral }, /* @__PURE__ */ React.createElement(\n GeneralDialog,\n {\n isEditGeneral,\n editGeneral,\n userList,\n onUpdateGeneral: this.onUpdateGeneral,\n onCloseGeneral: this.onCloseGeneral\n }\n )));\n }\n}\nexport default General;\n","\"use strict\";\nimport { Button, Table } from \"@alifd/next\";\nimport { Link } from \"dva/router\";\nimport React, { Component, Fragment } from \"react\";\nimport { getProjectTargetList } from \"../../../../api/project\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"./index.less\";\nclass Targets extends Component {\n constructor(props) {\n super(props);\n this.state = {\n list: [],\n isLoading: false,\n isEditConfig: false\n };\n }\n componentDidMount() {\n const { projectName } = this.props;\n this.loadTargets(projectName);\n }\n shouldComponentUpdate(nextProps) {\n const change = nextProps.projectName !== this.props.projectName;\n if (change) {\n this.loadTargets(nextProps.projectName);\n }\n return true;\n }\n loadTargets(projectName) {\n this.setState({\n isLoading: true\n });\n getProjectTargetList({ projectName }).then((res) => {\n this.setState({\n list: res && res.targets || []\n });\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n }\n render() {\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name(Alias)\"),\n dataIndex: \"name\",\n cell: (v, i, record) => {\n const { alias, name } = record;\n return /* @__PURE__ */ React.createElement(\"span\", null, `${name}(${alias || \"-\"})`);\n }\n },\n {\n key: \"cluster\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Cluster/Namespace\"),\n dataIndex: \"cluster\",\n cell: (v, i, record) => {\n const { cluster = { clusterName: \"\", namespace: \"\" } } = record;\n return /* @__PURE__ */ React.createElement(\"span\", null, `${cluster.clusterName}/${cluster.namespace}`);\n }\n },\n {\n key: \"description\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\"),\n dataIndex: \"description\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n }\n ];\n const { Column } = Table;\n const { list, isLoading } = this.state;\n const { projectName } = this.props;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"summary-targets-wrapper\" }, /* @__PURE__ */ React.createElement(\"section\", { className: \"card-title-wrapper\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"card-title\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Targets\")), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `target:*`, action: \"create\" }, project: projectName }, /* @__PURE__ */ React.createElement(Button, { className: \"card-button-wrapper\" }, /* @__PURE__ */ React.createElement(Link, { to: \"/targets\", className: \"color-setting\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Add\"))))), /* @__PURE__ */ React.createElement(\"section\", { className: \"card-content-table\" }, /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: list, hasBorder: true, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))))));\n }\n}\nexport default Targets;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { connect } from \"dva\";\nimport React, { Component, Fragment } from \"react\";\nimport Permission from \"../../components/Permission\";\nimport ConfigDistributionPage from \"./components/ConfigDistribution\";\nimport Configs from \"./components/Configs\";\nimport General from \"./components/General\";\nimport Targets from \"./components/Targets\";\nlet Summary = class extends Component {\n constructor(props) {\n super(props);\n this.loadProjectDetail = async () => {\n const { params = { projectName: \"\" } } = this.props.match;\n this.props.dispatch({\n type: \"project/getProjectDetails\",\n payload: { projectName: params.projectName }\n });\n };\n this.state = {\n userList: []\n };\n }\n render() {\n const { userList } = this.state;\n const { match, projectDetails } = this.props;\n const { params = { projectName: \"\" } } = match;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"container\", id: params.projectName }, /* @__PURE__ */ React.createElement(\n General,\n {\n projectDetails,\n userList,\n loadProjectDetail: this.loadProjectDetail,\n projectName: params.projectName\n }\n ), /* @__PURE__ */ React.createElement(Targets, { projectName: params.projectName }), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: params.projectName,\n request: { resource: `project:${params.projectName}/config:*`, action: \"list\" }\n },\n /* @__PURE__ */ React.createElement(Configs, { projectName: params.projectName })\n ), /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: params.projectName,\n request: { resource: `project:${params.projectName}/config:*`, action: \"distribute\" }\n },\n /* @__PURE__ */ React.createElement(ConfigDistributionPage, { projectName: params.projectName })\n )));\n }\n};\nSummary = __decorateClass([\n connect((store) => {\n return { ...store.project };\n })\n], Summary);\nexport default Summary;\n","\"use strict\";\nimport { users, cloudShell } from \"./productionLink\";\nimport { post, get, rdelete, put } from \"./request\";\nexport function getUserList(params) {\n const url = users;\n return get(url, { params }).then((res) => res);\n}\nexport function createUser(params) {\n const url = users;\n return post(url, params).then((res) => res);\n}\nexport function updateUser(params) {\n const urlPath = users + `/${params.name}`;\n return put(urlPath, params).then((res) => res);\n}\nexport function deleteUser(params) {\n const urlPath = users + `/${params.name}`;\n return rdelete(urlPath, {}).then((res) => res);\n}\nexport function changeUserDisable(params) {\n const urlPath = users + `/${params.name}/disable`;\n return get(urlPath, {}).then((res) => res);\n}\nexport function changeUserEnable(params) {\n const urlPath = users + `/${params.name}/enable`;\n return get(urlPath, {}).then((res) => res);\n}\nexport function prepareCloudShell() {\n const urlPath = cloudShell;\n return post(urlPath, {}).then((res) => res);\n}\n","\"use strict\";\nimport { Grid, Form, Input, Field, Button, Message, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { createProject, updateProject } from \"../../../../api/project\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nclass CreateConfig extends React.Component {\n constructor(props) {\n super(props);\n this.onCloseCreate = () => {\n this.props.onCloseCreate();\n };\n this.onCreate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { isEditProject } = this.props;\n const { name, alias, description, owner } = values;\n const param = {\n name,\n alias,\n owner,\n description\n };\n this.setState({ loading: true });\n if (isEditProject) {\n updateProject(param).then((res) => {\n this.setState({ loading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Update project success\"));\n this.props.onCreate();\n }\n }).catch(() => {\n this.setState({ loading: false });\n });\n } else {\n createProject(param).then((res) => {\n this.setState({ loading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Create project success\"));\n this.props.onCreate();\n }\n }).catch(() => {\n this.setState({ loading: false });\n });\n }\n });\n };\n this.getTitle = () => {\n const { isEditProject } = this.props;\n if (isEditProject) {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Edit Project\");\n } else {\n return /* @__PURE__ */ React.createElement(Translation, null, \"New Project\");\n }\n };\n this.field = new Field(this);\n this.state = {\n loading: false\n };\n }\n componentDidMount() {\n const { isEditProject, editProjectItem } = this.props;\n if (isEditProject && editProjectItem) {\n const { name, alias, owner = { name: \"\" }, description } = editProjectItem;\n this.field.setValues({\n name,\n alias,\n owner: owner.name,\n description\n });\n }\n }\n render() {\n const init = this.field.init;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const { loading } = this.state;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const { isEditProject, userList = [] } = this.props;\n const buttons = [\n /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.onCloseCreate, style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")),\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onCreate, loading }, /* @__PURE__ */ React.createElement(If, { condition: isEditProject }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\")), /* @__PURE__ */ React.createElement(If, { condition: !isEditProject }, /* @__PURE__ */ React.createElement(Translation, null, \"Create\")))\n ];\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: this.getTitle(),\n placement: \"right\",\n width: 800,\n onClose: this.onCloseCreate,\n extButtons: buttons\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), labelTextAlign: \"left\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n placeholder: i18n.t(\"Please enter\").toString(),\n maxLength: 32,\n disabled: isEditProject ? true : false,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a project name\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Owner\") }, /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"owner\",\n hasClear: true,\n showSearch: true,\n placeholder: i18n.t(\"Please enter\").toString(),\n filterLocal: true,\n dataSource: userList,\n style: { width: \"100%\" },\n ...init(\"owner\", {\n rules: [\n {\n required: false,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a valid username\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Description\") }, /* @__PURE__ */ React.createElement(Input, { name: \"description\", placeholder: i18n.t(\"Please enter\").toString(), ...init(\"description\") })))))\n ));\n }\n}\nexport default CreateConfig;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Table, Button, Pagination, Dialog, Message } from \"@alifd/next\";\nimport { Link } from \"dva/router\";\nimport React, { Fragment, Component } from \"react\";\nimport { getProjectList, deleteProject } from \"../../api/project\";\nimport { getUserList } from \"../../api/users\";\nimport { If } from \"../../components/If\";\nimport { ListTitle as Title } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport { momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport CreateProjectDialog from \"./components/CreateProjectDialog\";\nimport \"./index.less\";\nimport { connect } from \"dva\";\nlet Projects = class extends Component {\n constructor(props) {\n super(props);\n this.listProjects = async () => {\n this.setState({ isLoading: true });\n const { page, pageSize } = this.state;\n getProjectList({ page, pageSize }).then((res) => {\n this.setState({\n list: res.projects || [],\n total: res.total || 0,\n isLoading: false\n });\n }).catch(() => {\n this.setState({ isLoading: false });\n });\n };\n this.listUser = async () => {\n const param = { name: \"\" };\n getUserList(param).then((res) => {\n if (res && res.users) {\n const userListData = (res.users || []).map((item) => ({\n label: item.name,\n value: item.name\n }));\n this.setState({\n userList: userListData || []\n });\n }\n });\n };\n this.onEdit = (record) => {\n this.setState({\n visible: true,\n isEditProject: true,\n editProjectItem: record\n });\n };\n this.onDelete = (record) => {\n Dialog.confirm({\n content: \"Are you sure you want to delete the project\",\n onOk: () => {\n const { name } = record;\n if (name) {\n deleteProject({ name }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Delete project success\"));\n this.listProjects();\n this.onUpdateUserInfo();\n }\n }).catch();\n }\n },\n locale: locale().Dialog\n });\n };\n this.onCreate = () => {\n this.setState({ visible: false });\n this.listProjects();\n this.onUpdateUserInfo();\n };\n this.onUpdateUserInfo = () => {\n this.props.dispatch({\n type: \"user/getLoginUserInfo\"\n });\n };\n this.onCloseCreate = () => {\n this.setState({ visible: false });\n };\n this.handleClickCreate = () => {\n this.setState({\n visible: true,\n isEditProject: false\n });\n };\n this.handleChange = (page) => {\n this.setState(\n {\n page\n },\n () => {\n this.listProjects();\n }\n );\n };\n this.state = {\n list: [],\n total: 0,\n page: 1,\n pageSize: 10,\n visible: false,\n isEditProject: false,\n editProjectItem: { name: \"\" },\n isLoading: false,\n userList: []\n };\n }\n componentDidMount() {\n this.listProjects();\n this.listUser();\n }\n render() {\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Link, { to: `/projects/${v}` }, v));\n }\n },\n {\n key: \"alias\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\"),\n dataIndex: \"alias\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"description\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\"),\n dataIndex: \"description\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"createTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n dataIndex: \"createTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n },\n {\n key: \"owner\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Owner\"),\n dataIndex: \"owner\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v && v.alias ? `${v.alias}(${v.name})` : v.name);\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Permission, { request: { resource: `project:${record.name}`, action: \"update\" }, project: `${record.name}` }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onEdit(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n )), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `project:${record.name}`, action: \"delete\" }, project: `${record.name}` }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onDelete(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Delete\")\n )));\n }\n }\n ];\n const { Column } = Table;\n const { list, page, pageSize, total, visible, isEditProject, editProjectItem, isLoading, userList } = this.state;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"project-list-content\" }, /* @__PURE__ */ React.createElement(\n Title,\n {\n title: \"Projects\",\n subTitle: \"Projects are used to allocate and isolate resources\",\n extButtons: [\n /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"project:*\", action: \"create\" }, project: \"\" }, /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.handleClickCreate }, /* @__PURE__ */ React.createElement(Translation, null, \"New Project\")))\n ]\n }\n ), /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: list, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))), /* @__PURE__ */ React.createElement(\n Pagination,\n {\n className: \"margin-top-20 text-align-right\",\n total,\n locale: locale().Pagination,\n size: \"medium\",\n pageSize,\n current: page,\n onChange: this.handleChange\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: visible }, /* @__PURE__ */ React.createElement(\n CreateProjectDialog,\n {\n visible,\n userList,\n isEditProject,\n editProjectItem,\n onCreate: this.onCreate,\n onCloseCreate: this.onCloseCreate\n }\n ))));\n }\n};\nProjects = __decorateClass([\n connect()\n], Projects);\nexport default Projects;\n","\"use strict\";\nimport { platformPermissions } from \"./productionLink\";\nimport { get } from \"./request\";\nexport function getPlatformPermissions() {\n const url = platformPermissions;\n return get(url, {}).then((res) => res);\n}\n","\"use strict\";\nimport { getDomain } from \"../utils/common\";\nimport { project_mock } from \"./devLink\";\nimport { roles } from \"./productionLink\";\nimport { post, get, rdelete, put } from \"./request\";\nconst baseURLOject = getDomain();\nconst isMock = baseURLOject.MOCK;\nconst url = isMock ? project_mock : roles;\nexport function getRoleList(params) {\n return get(url, { params }).then((res) => res);\n}\nexport function createRole(params) {\n return post(url, params).then((res) => res);\n}\nexport function updateRole(params) {\n const urlPath = roles + `/${params.name}`;\n return put(urlPath, params).then((res) => res);\n}\nexport function deleteRole(params) {\n const urlPath = roles + `/${params.name}`;\n return rdelete(urlPath, {}).then((res) => res);\n}\n","\"use strict\";\nimport { Grid, Form, Input, Field, Button, Message, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { createRole, updateRole } from \"../../../../api/roles\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { getSelectLabel } from \"../../../../utils/utils\";\nclass RolesDialog extends React.Component {\n constructor(props) {\n super(props);\n this.onCloseCreate = () => {\n this.props.onCloseCreate();\n };\n this.onCreate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { isEditRole } = this.props;\n const { name, alias, permissions } = values;\n const param = {\n name,\n alias,\n permissions\n };\n this.setState({ loading: true });\n if (isEditRole) {\n updateRole(param).then((res) => {\n this.setState({ loading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Update role success\"));\n this.props.onCreate();\n }\n }).catch(() => {\n this.setState({ loading: false });\n });\n } else {\n createRole(param).then((res) => {\n this.setState({ loading: false });\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Create role success\"));\n this.props.onCreate();\n }\n }).catch(() => {\n this.setState({ loading: false });\n });\n }\n });\n };\n this.getTitle = () => {\n const { isEditRole } = this.props;\n if (isEditRole) {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Edit Role\");\n } else {\n return /* @__PURE__ */ React.createElement(Translation, null, \"New Role\");\n }\n };\n this.field = new Field(this);\n this.state = {\n loading: false\n };\n }\n componentDidMount() {\n const { isEditRole, editRoleItem } = this.props;\n if (isEditRole && editRoleItem) {\n const { name, alias, permissions } = editRoleItem;\n const permissionNames = permissions?.map((item) => {\n return item.name;\n });\n this.field.setValues({\n name,\n alias,\n permissions: permissionNames\n });\n }\n }\n render() {\n const init = this.field.init;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const { loading } = this.state;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const { isEditRole, permissions } = this.props;\n const buttons = [\n /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.onCloseCreate, style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")),\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onCreate, loading }, /* @__PURE__ */ React.createElement(If, { condition: isEditRole }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\")), /* @__PURE__ */ React.createElement(If, { condition: !isEditRole }, /* @__PURE__ */ React.createElement(Translation, null, \"Create\")))\n ];\n const permPoliciesList = getSelectLabel(permissions);\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: this.getTitle(),\n placement: \"right\",\n width: 800,\n onClose: this.onCloseCreate,\n extButtons: buttons\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), labelTextAlign: \"left\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n placeholder: i18n.t(\"Please enter\").toString(),\n maxLength: 32,\n disabled: isEditRole ? true : false,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a roles name\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Permissions\"), required: true }, /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(`permissions`, {\n rules: [\n {\n required: true,\n message: i18n.t(\"Please select at last one permission\")\n }\n ]\n }),\n locale: locale().Select,\n mode: \"tag\",\n dataSource: permPoliciesList\n }\n )))))\n ));\n }\n}\nexport default RolesDialog;\n","\"use strict\";\nimport { Button, Dialog, Message, Pagination, Table } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { getPlatformPermissions } from \"../../api/rbac\";\nimport { deleteRole, getRoleList } from \"../../api/roles\";\nimport { If } from \"../../components/If\";\nimport { ListTitle as Title } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components\";\nimport { momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport \"./index.less\";\nimport RolesDialog from \"./components/RolesDialog\";\nclass Roles extends Component {\n constructor(props) {\n super(props);\n this.listRoles = async () => {\n this.setState({ isLoading: true });\n const { page, pageSize } = this.state;\n getRoleList({ page, pageSize }).then((res) => {\n this.setState({\n list: res && res.roles || [],\n total: res && res.total || 0,\n isLoading: false\n });\n }).catch(() => {\n this.setState({ isLoading: false });\n });\n };\n this.listPermissions = async () => {\n getPlatformPermissions().then((res) => {\n this.setState({\n permissions: res && res || []\n });\n });\n };\n this.onEdit = (record) => {\n this.setState({\n visible: true,\n isEditRole: true,\n editRoleItem: record\n });\n };\n this.onDelete = (record) => {\n Dialog.confirm({\n content: \"Are you sure you want to delete this role\",\n onOk: () => {\n const { name } = record;\n if (name) {\n deleteRole({ name }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Delete the role success\"));\n this.listRoles();\n }\n });\n }\n },\n locale: locale().Dialog\n });\n };\n this.onCreate = () => {\n this.setState({ visible: false });\n this.listRoles();\n };\n this.onCloseCreate = () => {\n this.setState({ visible: false });\n };\n this.handleClickCreate = () => {\n this.setState({\n visible: true,\n isEditRole: false\n });\n };\n this.handleChange = (page) => {\n this.setState(\n {\n page\n },\n () => {\n this.listRoles();\n }\n );\n };\n this.state = {\n list: [],\n total: 0,\n page: 1,\n pageSize: 10,\n permissions: [],\n visible: false,\n isEditRole: false,\n editRoleItem: { name: \"\" },\n isLoading: false\n };\n }\n componentDidMount() {\n this.listRoles();\n this.listPermissions();\n }\n render() {\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"alias\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\"),\n dataIndex: \"alias\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"createTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Create Time\"),\n dataIndex: \"createTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n },\n // {\n // key: 'permPolicies',\n // title: PermPolicies,\n // dataIndex: 'permPolicies',\n // cell: (v: any) => {\n // return v.map((item: any) => ({item && item.name}))\n // },\n // },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Permission, { request: { resource: `role:${record.name}`, action: \"update\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onEdit(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n )), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `role:${record.name}`, action: \"delete\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onDelete(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Delete\")\n )));\n }\n }\n ];\n const { Column } = Table;\n const { list, page, pageSize, total, visible, isEditRole, editRoleItem, permissions, isLoading } = this.state;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"roles-list-content\" }, /* @__PURE__ */ React.createElement(\n Title,\n {\n title: \"Platform Roles\",\n subTitle: \"Assign permissions for resources such as clusters\\u3001targets\\u3001addons\\u3001projects and users\",\n extButtons: [\n /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"role:*\", action: \"create\" }, project: \"\" }, /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.handleClickCreate }, /* @__PURE__ */ React.createElement(Translation, null, \"New Role\")))\n ]\n }\n ), /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: list, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))), /* @__PURE__ */ React.createElement(\n Pagination,\n {\n className: \"margin-top-20 text-align-right\",\n total,\n locale: locale().Pagination,\n size: \"medium\",\n pageSize,\n current: page,\n onChange: this.handleChange\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: visible }, /* @__PURE__ */ React.createElement(\n RolesDialog,\n {\n visible,\n isEditRole,\n editRoleItem,\n permissions,\n onCreate: this.onCreate,\n onCloseCreate: this.onCloseCreate\n }\n ))));\n }\n}\nexport default Roles;\n","\"use strict\";\nimport { Table, Message, Dialog, Button } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport { AiFillDelete, AiFillSetting } from \"react-icons/ai\";\nimport { deleteTarget } from \"../../../../api/target\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport \"./index.less\";\nimport { locale } from \"../../../../utils/locale\";\nimport { Link } from \"dva/router\";\nclass TableList extends Component {\n constructor() {\n super(...arguments);\n this.onDelete = (record) => {\n deleteTarget({ name: record.name || \"\" }).then((re) => {\n if (re) {\n Message.success(\"target delete success\");\n this.props.updateTargetList();\n }\n });\n };\n this.onEdit = (record) => {\n this.props.changeISEdit(true, record);\n };\n this.getColumns = () => {\n return [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"alias\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\"),\n dataIndex: \"alias\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"project\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Project\"),\n dataIndex: \"project\",\n cell: (v) => {\n if (v && v.name) {\n return /* @__PURE__ */ React.createElement(Link, { to: `/projects/${v.name}/summary` }, v && v.name);\n } else {\n return null;\n }\n }\n },\n {\n key: \"clusterName/namespace\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Cluster/Namespace\"),\n dataIndex: \"clusterName/CloudProvider\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, record?.clusterAlias ? record?.clusterAlias : record?.cluster?.clusterName, \"/\", record?.cluster?.namespace);\n }\n },\n {\n key: \"description\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\"),\n dataIndex: \"description\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n width: \"200px\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Permission, { request: { resource: `target:${record.name}`, action: \"update\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n component: \"a\",\n size: \"medium\",\n className: \"margin-left-10\",\n onClick: () => {\n this.onEdit(record);\n }\n },\n /* @__PURE__ */ React.createElement(AiFillSetting, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n ), /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" })), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `target:${record.name}`, action: \"delete\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n component: \"a\",\n size: \"medium\",\n className: \"danger-btn\",\n onClick: () => {\n Dialog.confirm({\n type: \"confirm\",\n content: /* @__PURE__ */ React.createElement(Translation, null, \"Unrecoverable after deletion, are you sure to delete it?\"),\n onOk: () => {\n this.onDelete(record);\n },\n locale: locale().Dialog\n });\n }\n },\n /* @__PURE__ */ React.createElement(AiFillDelete, null),\n /* @__PURE__ */ React.createElement(Translation, null, \"Remove\")\n )));\n }\n }\n ];\n };\n }\n render() {\n const { Column } = Table;\n const columns = this.getColumns();\n const { list } = this.props;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"table-delivery-list margin-top-20\" }, /* @__PURE__ */ React.createElement(\n Table,\n {\n locale: locale().Table,\n className: \"customTable\",\n size: \"medium\",\n style: { minWidth: \"1200px\" },\n dataSource: list,\n loading: false\n },\n columns.map((col) => /* @__PURE__ */ React.createElement(Column, { ...col, key: col.key, align: \"left\" }))\n ));\n }\n}\nexport default TableList;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Pagination, Button } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React from \"react\";\nimport { If } from \"../../components/If\";\nimport { ListTitle } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport { locale } from \"../../utils/locale\";\nimport TableList from \"./components/List\";\nimport TargetDialog from \"./components/TargetDialog\";\nimport \"./index.less\";\nlet TargetList = class extends React.Component {\n constructor(props) {\n super(props);\n this.getTargetList = async () => {\n const { page, pageSize, query } = this.state;\n this.props.dispatch({\n type: \"target/listTargets\",\n payload: {\n query,\n page,\n pageSize\n }\n });\n };\n this.getClusterList = async () => {\n this.props.dispatch({\n type: \"clusters/getClusterList\"\n });\n };\n this.updateTargetList = () => {\n this.setState(\n {\n query: \"\",\n page: 0,\n pageSize: 10\n },\n () => {\n this.getTargetList();\n }\n );\n };\n this.changeISEdit = (isEdit, record) => {\n this.setState({\n isEdit,\n visibleDelivery: true,\n targetItem: record\n });\n };\n this.onClose = () => {\n this.setState({ visibleDelivery: false, isEdit: false });\n };\n this.onOk = () => {\n this.getTargetList();\n this.setState({\n isEdit: false\n });\n };\n this.handleChange = (page) => {\n this.setState(\n {\n page\n },\n () => {\n this.getTargetList();\n }\n );\n };\n this.state = {\n query: \"\",\n page: 1,\n pageSize: 5,\n showAddTarget: false,\n editTargetName: \"\",\n visibleDelivery: false,\n isEdit: false\n };\n }\n componentDidMount() {\n this.getTargetList();\n this.getClusterList();\n }\n render() {\n const { clusterList, targets, total } = this.props;\n const { visibleDelivery, isEdit, targetItem } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: \"Targets\",\n subTitle: \"Define the targets that applications would deliver to\",\n extButtons: [\n /* @__PURE__ */ React.createElement(Permission, { key: \"new-target\", request: { resource: \"target:*\", action: \"create\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"primary\",\n onClick: () => {\n this.setState({ visibleDelivery: true, targetItem: void 0 });\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New Target\")\n ), \",\")\n ]\n }\n ), /* @__PURE__ */ React.createElement(\n TableList,\n {\n list: targets,\n updateTargetList: this.updateTargetList,\n changeISEdit: (is, record) => {\n this.changeISEdit(is, record);\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Pagination,\n {\n className: \"delivery-target-pagination\",\n total,\n locale: locale().Pagination,\n size: \"medium\",\n pageSize: this.state.pageSize,\n current: this.state.page,\n onChange: this.handleChange\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: visibleDelivery }, /* @__PURE__ */ React.createElement(\n TargetDialog,\n {\n visible: visibleDelivery,\n clusterList: clusterList || [],\n isEdit,\n targetItem,\n onClose: this.onClose,\n onOK: this.onOk\n }\n )));\n }\n};\nTargetList = __decorateClass([\n connect((store) => {\n return { ...store.target, ...store.clusters, ...store.user };\n })\n], TargetList);\nexport default TargetList;\n","\"use strict\";\nimport { Message, Field, Grid, Button, Loading, Card } from \"@alifd/next\";\nimport * as yaml from \"js-yaml\";\nimport _ from \"lodash\";\nimport React, { Component, Fragment } from \"react\";\nimport { AiOutlineQuestionCircle } from \"react-icons/ai\";\nimport { detailDefinition, updateUISchema } from \"../../api/definitions\";\nimport DefinitionCode from \"../../components/DefinitionCode\";\nimport Empty from \"../../components/Empty\";\nimport { If } from \"../../components/If\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport UISchema from \"../../components/UISchema\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nimport \"./index.less\";\nclass UiSchema extends Component {\n constructor(props) {\n super(props);\n this.getUISchemaDefinition = async () => {\n const { definitionName, definitionType } = this.state;\n const params = {\n name: definitionName,\n type: definitionType\n };\n this.setState({ isLoading: true });\n detailDefinition(params).then((res) => {\n if (res && res.uiSchema) {\n this.setState({\n uiSchema: res.uiSchema\n });\n this.setYamlValues(res.uiSchema);\n } else {\n this.setState({\n uiSchema: []\n });\n this.setYamlValues(void 0);\n }\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n };\n this.setYamlValues = (value) => {\n if (value) {\n try {\n const yamlValues = yaml.dump(value);\n this.field.setValues({ yamlValues });\n } catch {\n }\n } else {\n this.field.setValues({ yamlValues: \"\" });\n }\n };\n this.getDefinitionName = () => {\n const { params = { definitionName: \"\" } } = this.props.match;\n return params.definitionName || \"\";\n };\n this.getDefinitionType = () => {\n const { params = { definitionType: \"\" } } = this.props.match;\n return params.definitionType || \"\";\n };\n this.updateUISchema = () => {\n const { definitionName, definitionType, uiSchema } = this.state;\n const params = {\n name: definitionName,\n definitionType,\n uiSchema\n };\n this.setState({ updateUISchemaLoading: true });\n updateUISchema(params).then((res) => {\n if (res) {\n Message.success(i18n.t(\"UI schema updated successfully\"));\n }\n }).finally(() => {\n this.setState({ updateUISchemaLoading: false });\n });\n };\n this.getYamlHeight = () => {\n const eleUiSchema = document.getElementById(\"view-ui-schema\");\n if (eleUiSchema) {\n return eleUiSchema.clientHeight + \"px\";\n } else {\n return \"600px\";\n }\n };\n this.onChangeYaml = (value) => {\n try {\n let object = yaml.load(value);\n if (object && !(object instanceof Array)) {\n object = [object];\n }\n this.setState(\n {\n uiSchema: void 0\n },\n () => {\n this.setState({\n uiSchema: object\n });\n }\n );\n } catch {\n }\n };\n this.sortUISchema = (uiSchema) => {\n if (uiSchema && uiSchema.length !== 0) {\n return _.sortBy(uiSchema, (item) => {\n return item.sort;\n });\n } else {\n return uiSchema;\n }\n };\n this.state = {\n definitionName: this.getDefinitionName(),\n definitionType: this.getDefinitionType(),\n isLoading: false,\n updateUISchemaLoading: false\n };\n this.field = new Field(this);\n this.uiSchemaRef = React.createRef();\n this.DefinitionCodeRef = React.createRef();\n }\n componentDidMount() {\n this.getUISchemaDefinition();\n }\n render() {\n const { Row, Col } = Grid;\n const { uiSchema, definitionName, isLoading, updateUISchemaLoading } = this.state;\n const init = this.field.init;\n const validator = (rule, value, callback) => {\n this.uiSchemaRef.current?.validate(callback);\n };\n const yamlHeight = this.getYamlHeight();\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"uiSchema-wrapper\" }, /* @__PURE__ */ React.createElement(Loading, { visible: isLoading, inline: false }, /* @__PURE__ */ React.createElement(If, { condition: !uiSchema || uiSchema.length === 0 }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card }, /* @__PURE__ */ React.createElement(Empty, { message: /* @__PURE__ */ React.createElement(Translation, null, \"There is no ui schema definition\"), iconWidth: \"30px\" }))), /* @__PURE__ */ React.createElement(If, { condition: !uiSchema || uiSchema.length !== 0 }, /* @__PURE__ */ React.createElement(\"section\", { className: \"margin-top-20\", style: { maxWidth: \"1520px\", margin: \"16px auto\" } }, /* @__PURE__ */ React.createElement(Message, { type: \"notice\", style: { margin: \"0 8px 8px 16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Custom the UI schema will preview in right, please refer to the document to get more info\"), /* @__PURE__ */ React.createElement(\n \"a\",\n {\n style: { marginLeft: \"8px\" },\n target: \"_blank\",\n href: \"https://kubevela.net/docs/reference/ui-schema\",\n rel: \"noopener noreferrer\"\n },\n /* @__PURE__ */ React.createElement(AiOutlineQuestionCircle, { size: 16 })\n )), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: \"12\", className: \"padding-left-10 padding-right-10\" }, /* @__PURE__ */ React.createElement(\n Card,\n {\n locale: locale().Card,\n contentHeight: \"auto\",\n id: \"yaml-code\",\n className: \"yaml-code\",\n style: { height: yamlHeight }\n },\n /* @__PURE__ */ React.createElement(\n DefinitionCode,\n {\n containerId: \"yaml-code\",\n language: \"yaml\",\n readOnly: false,\n ...init(\"yamlValues\"),\n ref: this.DefinitionCodeRef,\n onChange: this.onChangeYaml\n }\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: \"12\", className: \"padding-left-10 padding-right-10\" }, /* @__PURE__ */ React.createElement(If, { condition: uiSchema && uiSchema.length !== 0 }, /* @__PURE__ */ React.createElement(\"div\", { id: \"view-ui-schema\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"preview\" }, /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"Preview\"))), /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\", className: \"view-ui-schema\" }, /* @__PURE__ */ React.createElement(\n UISchema,\n {\n ...init(`properties`, {\n rules: [\n {\n validator,\n message: \"Please check UI Schema properties\"\n }\n ]\n }),\n uiSchema: this.sortUISchema(uiSchema),\n ref: this.uiSchemaRef,\n advanced: true,\n value: {},\n mode: \"edit\"\n }\n ))))))), /* @__PURE__ */ React.createElement(\"section\", { className: \"margin-top-20 text-align-center\" }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `definition:${definitionName}`,\n action: \"update\"\n },\n project: \"\"\n },\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", loading: updateUISchemaLoading, onClick: this.updateUISchema }, /* @__PURE__ */ React.createElement(Translation, null, \"Save & Online\"))\n ))))));\n }\n}\nexport default UiSchema;\n","\"use strict\";\nimport { Grid, Form, Input, Field, Button, Message, Select } from \"@alifd/next\";\nimport React from \"react\";\nimport { createUser, updateUser } from \"../../../../api/users\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkUserPassword, checkName } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { getSelectLabel } from \"../../../../utils/utils\";\nclass CreateUser extends React.Component {\n constructor(props) {\n super(props);\n this.onClose = () => {\n this.props.onClose();\n };\n this.onCreate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { isEditUser, editUser } = this.props;\n const { name, alias, email, password, roles } = values;\n const params = {\n name,\n alias,\n email,\n password,\n roles\n };\n if (isEditUser && editUser.email) {\n delete params.email;\n }\n if (isEditUser) {\n updateUser(params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"User updated successfully\"));\n this.props.onCreate();\n }\n });\n } else {\n createUser(params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"User created successfully\"));\n this.props.onCreate();\n }\n });\n }\n });\n };\n this.showTitle = () => {\n const { isEditUser } = this.props;\n if (isEditUser) {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Edit User\");\n } else {\n return /* @__PURE__ */ React.createElement(Translation, null, \"New User\");\n }\n };\n this.showClickButtons = () => {\n const { isEditUser } = this.props;\n const { loading } = this.state;\n let createEle;\n if (isEditUser) {\n createEle = /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onCreate, loading }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\"));\n } else {\n createEle = /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onCreate, loading }, /* @__PURE__ */ React.createElement(Translation, null, \"Create\"));\n }\n return [\n /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.onClose, style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")),\n createEle\n ];\n };\n this.field = new Field(this);\n this.state = {\n loading: false\n };\n }\n componentDidMount() {\n const { isEditUser, editUser } = this.props;\n if (isEditUser && editUser) {\n const { alias, createTime, email, lastLoginTime, password, name, roles } = editUser;\n const rolesName = roles?.map((item) => {\n return item.name;\n });\n this.field.setValues({\n name,\n alias,\n createTime,\n password,\n email,\n lastLoginTime,\n roles: rolesName\n });\n }\n }\n render() {\n const init = this.field.init;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const { isEditUser, editUser, rolesList } = this.props;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const rolesListSelect = getSelectLabel(rolesList);\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: this.showTitle(),\n placement: \"right\",\n width: 800,\n onClose: this.onClose,\n extButtons: this.showClickButtons()\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"), labelTextAlign: \"left\", required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n placeholder: i18n.t(\"Please enter\").toString(),\n maxLength: 32,\n disabled: isEditUser ? true : false,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please enter a valid name\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\") }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"alias\",\n placeholder: i18n.t(\"Please input the alias\").toString(),\n ...init(\"alias\", {\n rules: [\n {\n minLength: 2,\n maxLength: 64,\n message: \"Enter a string of 2 to 64 characters.\"\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, !isEditUser && /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Password\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"password\",\n htmlType: \"password\",\n autoComplete: \"new-password\",\n placeholder: i18n.t(\"Please input the password\").toString(),\n ...init(\"password\", {\n rules: [\n {\n required: true,\n pattern: checkUserPassword,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Password should be 8-16 bits and contain at least one number and one letter\")\n }\n ]\n })\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Email\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"email\",\n placeholder: i18n.t(\"Please input a email\").toString(),\n autoComplete: \"off\",\n disabled: isEditUser && editUser.email ? true : false,\n ...init(\"email\", {\n rules: [\n {\n required: true,\n format: \"email\",\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please input a valid email\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n help: i18n.t(\"Application developers should be assigned project roles instead of platform roles.\").toString(),\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Platform Roles\"),\n labelTextAlign: \"left\"\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n ...init(`roles`, {\n rules: [\n {\n required: false,\n message: \"Please select roles\"\n }\n ]\n }),\n locale: locale().Select,\n mode: \"multiple\",\n dataSource: rolesListSelect\n }\n )\n ))))\n ));\n }\n}\nexport default CreateUser;\n","\"use strict\";\nimport { Grid, Form, Input, Field, Button, Message } from \"@alifd/next\";\nimport React from \"react\";\nimport { updateUser } from \"../../../../api/users\";\nimport DrawerWithFooter from \"../../../../components/Drawer\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkUserPassword } from \"../../../../utils/common\";\nclass ResetPassword extends React.Component {\n constructor(props) {\n super(props);\n this.onClose = () => {\n this.props.onClose();\n };\n this.onCreate = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { isResetPassword, editUser } = this.props;\n const { alias, name } = editUser;\n const { password } = values;\n const params = {\n name,\n alias,\n password\n };\n if (isResetPassword) {\n updateUser(params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"update user success\"));\n this.props.onCreate();\n }\n });\n }\n });\n };\n this.showTitle = () => {\n const { isResetPassword } = this.props;\n if (isResetPassword) {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Reset Password\");\n }\n return \"\";\n };\n this.showClickButtons = () => {\n const { loading } = this.state;\n return [\n /* @__PURE__ */ React.createElement(Button, { type: \"secondary\", onClick: this.onClose, style: { marginRight: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Cancel\")),\n /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onCreate, loading }, /* @__PURE__ */ React.createElement(Translation, null, \"Update\"))\n ];\n };\n this.field = new Field(this);\n this.state = {\n loading: false\n };\n }\n render() {\n const init = this.field.init;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n DrawerWithFooter,\n {\n title: this.showTitle(),\n placement: \"right\",\n width: 800,\n onClose: this.onClose,\n extButtons: this.showClickButtons()\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Password\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"password\",\n htmlType: \"password\",\n placeholder: i18n.t(\"Please enter\").toString(),\n ...init(\"password\", {\n rules: [\n {\n required: true,\n pattern: checkUserPassword,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Password should be 8-16 bits and contain at least one number and one letter\")\n }\n ]\n })\n }\n )))))\n ));\n }\n}\nexport default ResetPassword;\n","\"use strict\";\nimport { Grid, Input } from \"@alifd/next\";\nimport React from \"react\";\nimport { AiOutlineSearch } from \"react-icons/ai\";\nimport i18n from \"../../../../i18n\";\nimport \"./index.less\";\nconst { Row, Col } = Grid;\nclass SelectSearch extends React.Component {\n constructor() {\n super(...arguments);\n this.handleChangName = (e) => {\n this.props.handleChangName(e);\n };\n this.handleChangAlias = (e) => {\n this.props.handleChangAlias(e);\n };\n this.handleChangEmail = (e) => {\n this.props.handleChangEmail(e);\n };\n }\n render() {\n const { name, alias, email } = this.props;\n return /* @__PURE__ */ React.createElement(Row, { className: \"user-select-wrapper border-radius-8\", wrap: true }, /* @__PURE__ */ React.createElement(Col, { xl: 6, m: 8, s: 12, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(AiOutlineSearch, { style: { margin: 4 } }),\n hasClear: true,\n size: \"large\",\n placeholder: i18n.t(\"Search by name\"),\n onChange: this.handleChangName,\n value: name,\n className: \"item\"\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 6, m: 8, s: 12, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(AiOutlineSearch, { style: { margin: 4 } }),\n hasClear: true,\n size: \"large\",\n placeholder: i18n.t(\"Search by alias\"),\n onChange: this.handleChangAlias,\n value: alias,\n className: \"item\"\n }\n )), /* @__PURE__ */ React.createElement(Col, { xl: 6, m: 8, s: 12, xxs: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n Input,\n {\n innerAfter: /* @__PURE__ */ React.createElement(AiOutlineSearch, { style: { margin: 4 } }),\n hasClear: true,\n size: \"large\",\n placeholder: i18n.t(\"Search by email\"),\n onChange: this.handleChangEmail,\n value: email,\n className: \"item\"\n }\n )));\n }\n}\nexport default SelectSearch;\n","\"use strict\";\nimport { Table, Button, Pagination, Message, Dialog } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { getRoleList } from \"../../api/roles\";\nimport { getUserList, deleteUser, changeUserDisable, changeUserEnable } from \"../../api/users\";\nimport { If } from \"../../components/If\";\nimport { ListTitle } from \"../../components/ListTitle\";\nimport Permission from \"../../components/Permission\";\nimport { Translation } from \"../../components/Translation\";\nimport { momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport CreateUser from \"./components/CreateUser\";\nimport ResetPassword from \"./components/ResetPassword\";\nimport SelectSearch from \"./components/SelectSearch\";\nimport \"./index.less\";\nclass Users extends Component {\n constructor(props) {\n super(props);\n this.listUser = async () => {\n const { name, alias, email, page, pageSize } = this.state;\n const params = {\n name,\n email,\n alias,\n page,\n pageSize\n };\n this.setState({ isLoading: true });\n getUserList(params).then((res) => {\n if (res) {\n this.setState({\n dataSource: res.users || [],\n total: res.total\n });\n }\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n };\n this.listRoles = async () => {\n getRoleList({}).then((res) => {\n this.setState({\n rolesList: res && res.roles || []\n });\n });\n };\n this.handleChangName = (e) => {\n this.setState(\n {\n name: e\n },\n () => {\n this.listUser();\n }\n );\n };\n this.onEdit = (record) => {\n this.onEditUser(record);\n };\n this.onResetPassword = (record) => {\n this.onEditResetPasswordUser(record);\n };\n this.onCreate = () => {\n this.setState({\n isUserDialogVisible: false\n });\n this.listUser();\n };\n this.onResetPassWord = () => {\n this.setState({\n isResetPasswordDialog: false\n });\n this.listUser();\n };\n this.onChangeStatus = (record) => {\n const { disabled, name } = record;\n if (disabled) {\n changeUserEnable({ name }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Update user status success\"));\n this.listUser();\n }\n }).catch();\n } else {\n changeUserDisable({ name }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Update user status success\"));\n this.listUser();\n }\n }).catch();\n }\n };\n this.onDelete = (record) => {\n Dialog.confirm({\n content: \"Are you sure you want to delete the user\",\n onOk: () => {\n const { name } = record;\n if (name) {\n deleteUser({ name }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Delete user success\"));\n this.listUser();\n }\n }).catch();\n }\n },\n locale: locale().Dialog\n });\n };\n this.onClose = () => {\n this.setState({\n isUserDialogVisible: false\n });\n };\n this.onResetPassWordClose = () => {\n this.setState({\n isResetPasswordDialog: false\n });\n };\n this.onEditUser = (editUser) => {\n this.setState({\n editUser,\n isEditUser: true,\n isUserDialogVisible: true\n });\n };\n this.onEditResetPasswordUser = (editUser) => {\n this.setState({\n editUser,\n isResetPasswordDialog: true,\n isResetPassword: true\n });\n };\n this.handleClickCreate = () => {\n this.setState({\n isUserDialogVisible: true,\n isEditUser: false\n });\n };\n this.handleChange = (page) => {\n this.setState(\n {\n page\n },\n () => {\n this.listUser();\n }\n );\n };\n this.isDisabledShow = (record) => {\n if (record.disabled) {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Enable\");\n } else {\n return /* @__PURE__ */ React.createElement(Translation, null, \"Disable\");\n }\n };\n this.state = {\n isUserDialogVisible: false,\n name: \"\",\n email: \"\",\n alias: \"\",\n page: 1,\n pageSize: 10,\n isLoading: false,\n total: 0,\n dataSource: [],\n rolesList: [],\n isEditUser: false,\n isResetPassword: false,\n isResetPasswordDialog: false,\n editUser: {\n name: \"\",\n email: \"\",\n disabled: false\n }\n };\n }\n componentDidMount() {\n this.listUser();\n this.listRoles();\n }\n handleChangAlias(e) {\n this.setState(\n {\n alias: e\n },\n () => {\n this.listUser();\n }\n );\n }\n handleChangEmail(e) {\n this.setState(\n {\n email: e\n },\n () => {\n this.listUser();\n }\n );\n }\n render() {\n const { Column } = Table;\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"alias\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\"),\n dataIndex: \"alias\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"roles\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Platform Roles\"),\n dataIndex: \"roles\",\n cell: (v) => {\n return (v || []).map((item) => /* @__PURE__ */ React.createElement(\"span\", { className: \"roles-permPolicies margin-right-5\" }, item.alias || item.name));\n }\n },\n {\n key: \"email\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Email\"),\n dataIndex: \"email\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"createTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"CreateTime\"),\n dataIndex: \"createTime\",\n cell: (v) => {\n if (v) {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n return \"\";\n }\n },\n {\n key: \"lastLoginTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"LastLoginTime\"),\n dataIndex: \"lastLoginTime\",\n cell: (v) => {\n if (v) {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n return \"\";\n }\n },\n {\n key: \"operation\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Actions\"),\n dataIndex: \"operation\",\n cell: (v, i, record) => {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Permission, { request: { resource: `user:${record.name}`, action: \"update\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onResetPassword(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Reset Password\")\n )), /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" }), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `user:${record.name}`, action: \"update\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onEdit(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Edit\")\n )), /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" }), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `user:${record.name}`,\n action: record.disabled ? \"enable\" : \"disable\"\n },\n project: \"\"\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onChangeStatus(record);\n }\n },\n this.isDisabledShow(record)\n )\n ), /* @__PURE__ */ React.createElement(\"span\", { className: \"line\" }), /* @__PURE__ */ React.createElement(Permission, { request: { resource: `user:${record.name}`, action: \"delete\" }, project: \"\" }, /* @__PURE__ */ React.createElement(\n Button,\n {\n text: true,\n size: \"medium\",\n component: \"a\",\n onClick: () => {\n this.onDelete(record);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Delete\")\n )));\n }\n }\n ];\n const {\n name,\n alias,\n email,\n dataSource,\n isUserDialogVisible,\n isEditUser,\n editUser,\n page,\n pageSize,\n total,\n isLoading,\n isResetPasswordDialog,\n isResetPassword,\n rolesList\n } = this.state;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"user-wrapper\" }, /* @__PURE__ */ React.createElement(\"section\", null, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: \"Users\",\n subTitle: \"Basic authorization management is provided for local users by default, but SSO authentication is strongly recommended\",\n extButtons: [\n /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"user:*\", action: \"create\" }, project: \"\" }, /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.handleClickCreate }, /* @__PURE__ */ React.createElement(Translation, null, \"New User\")), \",\")\n ]\n }\n )), /* @__PURE__ */ React.createElement(\"section\", null, /* @__PURE__ */ React.createElement(\n SelectSearch,\n {\n name,\n alias,\n email,\n handleChangName: (nameValue) => {\n this.handleChangName(nameValue);\n },\n handleChangAlias: (aliasValue) => {\n this.handleChangAlias(aliasValue);\n },\n handleChangEmail: (emailValue) => {\n this.handleChangEmail(emailValue);\n }\n }\n )), /* @__PURE__ */ React.createElement(\"section\", { className: \"margin-top-20 user-list-wrapper\" }, /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" }))), /* @__PURE__ */ React.createElement(\n Pagination,\n {\n className: \"margin-top-20 text-align-right\",\n total,\n locale: locale().Pagination,\n size: \"medium\",\n pageSize,\n current: page,\n onChange: this.handleChange\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: isUserDialogVisible }, /* @__PURE__ */ React.createElement(\n CreateUser,\n {\n visible: isUserDialogVisible,\n isEditUser,\n editUser,\n rolesList,\n onClose: this.onClose,\n onCreate: this.onCreate\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: isResetPasswordDialog }, /* @__PURE__ */ React.createElement(\n ResetPassword,\n {\n visible: isResetPasswordDialog,\n editUser,\n isResetPassword,\n onClose: this.onResetPassWordClose,\n onCreate: this.onResetPassWord\n }\n )))));\n }\n}\nexport default Users;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Dialog, Field, Form, Grid, Message, Select, Button } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport { createApplicationEnvbinding, updateApplicationEnvbinding } from \"../../../../api/application\";\nimport { getEnvs } from \"../../../../api/env\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport EnvDialog from \"../../../../pages/EnvPage/components/EnvDialog\";\nimport { showAlias } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nlet EnvBindPlanDialog = class extends Component {\n constructor(props) {\n super(props);\n this.loadEnvs = async (callback) => {\n const { applicationDetail, envbinding } = this.props;\n if (applicationDetail && applicationDetail.project?.name) {\n getEnvs({ project: applicationDetail.project?.name, page: 0 }).then((re) => {\n const existEnvs = envbinding?.map((eb) => {\n return eb.name;\n }) || [];\n const allEnvs = re.envs || [];\n const canAdd = allEnvs.filter((env) => !existEnvs.includes(env.name));\n this.setState({ envs: canAdd });\n const envOption = canAdd?.map((env) => {\n return {\n label: showAlias(env.name, env.alias),\n value: env.name\n };\n });\n if (callback) {\n callback(envOption[0]?.value || \"\");\n }\n });\n }\n };\n this.onSubmit = () => {\n const { applicationDetail } = this.props;\n if (!applicationDetail) {\n return;\n }\n const { isEdit } = this.state;\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n this.setState({ loading: true });\n const { name } = values;\n const params = {\n appName: applicationDetail && applicationDetail.name,\n name\n };\n if (isEdit) {\n this.onUpdateApplicationEnv(params);\n return;\n }\n this.onCreateApplicationEnv(params);\n });\n };\n this.getTargets = async () => {\n this.props.dispatch?.({\n type: \"target/listTargets\",\n payload: {}\n });\n };\n this.onCloseEnvDialog = () => {\n this.setState({\n visibleEnvDialog: false\n });\n };\n this.onOKEnvDialog = () => {\n this.setState(\n {\n visibleEnvDialog: false\n },\n () => {\n this.loadEnvs(this.setEnvValue);\n }\n );\n };\n this.changeEnvDialog = (visible) => {\n this.setState({\n visibleEnvDialog: visible\n });\n };\n this.setEnvValue = (name) => {\n this.field.setValues({ name });\n };\n this.field = new Field(this);\n this.state = {\n loading: false,\n isEdit: false,\n visibleEnvDialog: false\n };\n }\n componentDidMount() {\n this.loadEnvs();\n this.getTargets();\n }\n onCreateApplicationEnv(params) {\n createApplicationEnvbinding(params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Environment bound successfully\"));\n this.props.onOK();\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n onUpdateApplicationEnv(params) {\n updateApplicationEnvbinding(params).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Environment bound successfully\"));\n this.props.onOK();\n }\n }).finally(() => {\n this.setState({ loading: false });\n });\n }\n render() {\n const { loading, isEdit, envs, visibleEnvDialog } = this.state;\n const { userInfo } = this.props;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const init = this.field.init;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const envOption = envs?.map((env) => {\n return {\n label: env.alias ? `${env.alias}(${env.name})` : env.name,\n value: env.name\n };\n });\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n visible: true,\n locale: locale().Dialog,\n style: { width: \"600px\" },\n overflowScroll: true,\n footerActions: [\"ok\"],\n onClose: this.props.onClose,\n footer: /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onSubmit, loading }, !isEdit ? /* @__PURE__ */ React.createElement(Translation, null, \"Submit\") : /* @__PURE__ */ React.createElement(Translation, null, \"Save\")),\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Bind Environment\")\n },\n /* @__PURE__ */ React.createElement(Form, { ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, { className: \"font-size-14 font-weight-bold\" }, \"Environment\"),\n help: /* @__PURE__ */ React.createElement(\n \"a\",\n {\n onClick: () => {\n this.changeEnvDialog(true);\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"New Environment\")\n ),\n required: true\n },\n /* @__PURE__ */ React.createElement(\n Select,\n {\n name: \"name\",\n locale: locale().Select,\n disabled: isEdit ? true : false,\n dataSource: envOption,\n maxLength: 32,\n ...init(\"name\", {\n rules: [\n {\n required: true,\n message: \"Please select an env\"\n }\n ]\n })\n }\n )\n ))))\n ), /* @__PURE__ */ React.createElement(If, { condition: visibleEnvDialog }, /* @__PURE__ */ React.createElement(\n EnvDialog,\n {\n visible: visibleEnvDialog,\n projects: userInfo?.projects || [],\n userInfo,\n project: this.props.applicationDetail?.project?.name,\n isEdit: false,\n onClose: this.onCloseEnvDialog,\n onOK: this.onOKEnvDialog\n }\n )));\n }\n};\nEnvBindPlanDialog = __decorateClass([\n connect((store) => {\n return { ...store.application, ...store.target, ...store.user };\n })\n], EnvBindPlanDialog);\nexport default EnvBindPlanDialog;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport \"./index.less\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { beautifyTime } from \"../../../../utils/common\";\nimport AddAndEditEnvBind from \"../AddAndEditEnvBind\";\nimport { Link } from \"dva/router\";\nimport classNames from \"classnames\";\nimport { Balloon } from \"@alifd/next\";\nimport { IoMdAdd } from \"react-icons/io\";\nlet TabsContent = class extends Component {\n constructor(props) {\n super(props);\n this.handleChange = () => {\n };\n this.loadEnvbinding = async () => {\n const { applicationDetail } = this.props;\n if (applicationDetail) {\n this.props.dispatch({\n type: \"application/getApplicationEnvbinding\",\n payload: { appName: applicationDetail.name }\n });\n }\n };\n this.loadApplicationWorkflows = async () => {\n const { appName } = this.props;\n this.props.dispatch({\n type: \"application/getApplicationWorkflows\",\n payload: { appName }\n });\n };\n this.loadApplicationPolicies = async () => {\n const { appName } = this.props;\n this.props.dispatch({\n type: \"application/getApplicationPolicies\",\n payload: { appName }\n });\n };\n this.state = {\n visibleEnvPlan: false\n };\n }\n render() {\n const { activeKey, applicationDetail, envbinding } = this.props;\n const { visibleEnvPlan } = this.state;\n const projectName = applicationDetail && applicationDetail.project?.name;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(\"div\", { className: \"top-menus\" }, /* @__PURE__ */ React.createElement(\n Link,\n {\n className: classNames(\"top-menu-item\", { active: activeKey === \"basisConfig\" }),\n to: `/applications/${applicationDetail?.name}/config`\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Application Config\")\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"env-box\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"env-name\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Environments\")), envbinding?.map((item) => {\n return /* @__PURE__ */ React.createElement(\n Balloon,\n {\n key: item.name,\n trigger: /* @__PURE__ */ React.createElement(\n Link,\n {\n key: item.name + \"link\",\n className: classNames(\"top-menu-item\", \"item-env\", {\n active: activeKey === item.name\n }),\n to: `/applications/${applicationDetail?.name}/envbinding/${item.name}/workflow`\n },\n /* @__PURE__ */ React.createElement(\"span\", { title: item.description }, item.alias ? item.alias : item.name)\n )\n },\n item.description,\n /* @__PURE__ */ React.createElement(\"p\", null, \"Name: \", item.name),\n /* @__PURE__ */ React.createElement(\"p\", null, \"Bind Time: \", beautifyTime(item.createTime))\n );\n }), /* @__PURE__ */ React.createElement(If, { condition: !applicationDetail?.readOnly }, /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail?.name}/envBinding:*`,\n action: \"create\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n \"a\",\n {\n className: classNames(\"top-menu-item\"),\n style: { width: \"50px\" },\n onClick: () => {\n this.setState({ visibleEnvPlan: true });\n }\n },\n /* @__PURE__ */ React.createElement(IoMdAdd, null)\n )\n )))), /* @__PURE__ */ React.createElement(If, { condition: visibleEnvPlan }, /* @__PURE__ */ React.createElement(\n AddAndEditEnvBind,\n {\n envbinding,\n onClose: () => {\n this.setState({ visibleEnvPlan: false });\n },\n onOK: () => {\n this.loadEnvbinding();\n this.loadApplicationWorkflows();\n this.loadApplicationPolicies();\n this.setState({ visibleEnvPlan: false });\n }\n }\n )));\n }\n};\nTabsContent = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], TabsContent);\nexport default TabsContent;\n","\"use strict\";\nimport { Dialog } from \"@alifd/next\";\nimport * as React from \"react\";\nimport \"./index.less\";\nimport { v4 as uuid } from \"uuid\";\nimport DefinitionCode from \"../DefinitionCode\";\nexport const ApplicationDryRun = (props) => {\n const id = uuid();\n return /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n className: \"dryRunDialog\",\n overflowScroll: true,\n footer: /* @__PURE__ */ React.createElement(\"div\", null),\n visible: true,\n onClose: props.onClose,\n title: props.title\n },\n /* @__PURE__ */ React.createElement(\"div\", { id }, /* @__PURE__ */ React.createElement(\n DefinitionCode,\n {\n containerId: id,\n language: \"yaml\",\n readOnly: true,\n value: props.dryRun.yaml\n }\n ))\n );\n};\n","\"use strict\";\nimport { Button, Dialog, Message, Radio, Loading, Select, Form } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport _ from \"lodash\";\nimport { routerRedux } from \"dva/router\";\nimport { dryRunApplication } from \"../../../../api/application\";\nimport { ApplicationDryRun } from \"../../../../components/ApplicationDryRun\";\nimport { If } from \"../../../../components/If\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { locale } from \"../../../../utils/locale\";\nimport \"./index.less\";\nimport { DeployModes } from \"@velaux/data\";\nimport { showAlias } from \"../../../../utils/common\";\nimport { createWorkflow } from \"../../../../api/workflows\";\nimport Permission from \"../../../../components/Permission\";\nconst { Group: RadioGroup } = Radio;\nfunction checkCanaryDeployStep(w) {\n if (w.steps?.find((step) => {\n if (step.type === DeployModes.CanaryDeploy) {\n return true;\n }\n if (step.subSteps?.find((sub) => sub.type === DeployModes.CanaryDeploy)) {\n return true;\n }\n return false;\n })) {\n return true;\n }\n return false;\n}\nclass DeployConfigDialog extends Component {\n constructor(props) {\n super(props);\n this.onSubmit = () => {\n if (this.state.workflowName) {\n this.props.onOK(this.state.workflowName);\n this.props.onClose();\n } else {\n Message.notice(i18n.t(\"Please select a workflow first\"));\n }\n };\n this.onDryRun = () => {\n this.setState({ dryRunLoading: true, dryRunResult: void 0, dryRunMessage: void 0 });\n const { appName } = this.props;\n if (this.state.workflowName) {\n dryRunApplication(appName, {\n workflow: this.state.workflowName,\n dryRunType: \"APP\"\n }).then((res) => {\n this.setState({\n dryRunResult: res,\n dryRunResultState: res.success ? \"success\" : \"failure\",\n dryRunMessage: res.message\n });\n }).catch((err) => {\n console.log(err);\n this.setState({ dryRunResultState: \"failure\", dryRunMessage: err.Message });\n }).finally(() => {\n this.setState({ dryRunLoading: false });\n });\n } else {\n Message.notice(i18n.t(\"Please select a workflow first\"));\n }\n };\n this.onShowDryRunResult = () => {\n this.setState({ showDryRunResult: true });\n };\n this.onChange = (name) => {\n this.setState({ workflowName: name });\n };\n this.onCreateCanaryRolloutWorkflow = () => {\n const { applicationDetail, workflows } = this.props;\n const { env } = this.state;\n const base = workflows?.find((w) => w.envName == env);\n if (!base) {\n Message.warning(i18n.t(\"There is no workflow belong to the selected environment\"));\n return;\n }\n const createReq = _.cloneDeep(base);\n createReq.name = createReq.name + \"-canary\";\n createReq.alias = createReq.alias?.replace(\"Workflow\", \"Canary Workflow\");\n createReq.default = false;\n createWorkflow({ appName: applicationDetail.name }, createReq).then((res) => {\n if (res) {\n this.loadApplicationWorkflows();\n this.props.dispatch(\n routerRedux.push(\n `/applications/${applicationDetail.name}/envbinding/${env}/workflow/${createReq.name}/studio?setCanary`\n )\n );\n this.props.onClose();\n }\n });\n };\n this.loadApplicationWorkflows = async () => {\n const { applicationDetail } = this.props;\n this.props.dispatch({\n type: \"application/getApplicationWorkflows\",\n payload: { appName: applicationDetail.name }\n });\n };\n this.renderDryRunResult = () => {\n const { dryRunResult } = this.state;\n if (dryRunResult) {\n return /* @__PURE__ */ React.createElement(\n ApplicationDryRun,\n {\n onClose: () => {\n this.setState({ showDryRunResult: false });\n },\n title: i18n.t(\"DryRun Result\").toString(),\n dryRun: dryRunResult\n }\n );\n }\n return /* @__PURE__ */ React.createElement(\"div\", null);\n };\n let defaultEnv = props.envName;\n if (!defaultEnv && props.envBindings.length > 0) {\n defaultEnv = props.envBindings[0].name;\n }\n this.state = {\n workflowName: \"\",\n dryRunLoading: false,\n showDryRunResult: false,\n env: defaultEnv\n };\n }\n componentDidMount() {\n const { workflows } = this.props;\n workflows?.map((w) => {\n if (w.default) {\n this.setState({ workflowName: w.name });\n }\n });\n }\n render() {\n const { workflows, onClose, applicationDetail, applicationAllStatus, envBindings, loading, envName } = this.props;\n const { workflowName, dryRunLoading, showDryRunResult, dryRunResult, dryRunResultState, dryRunMessage, env } = this.state;\n const sourceOfTrust = applicationDetail?.labels && applicationDetail?.labels[\"app.oam.dev/source-of-truth\"];\n const envStatus = {};\n applicationAllStatus?.map((status2) => {\n envStatus[status2.envName] = status2.status;\n });\n const envOptions = envBindings?.map((env2) => {\n return { label: showAlias(env2), value: env2.name };\n }) || [];\n const workflowOptions = workflows?.filter((w) => w.envName === env);\n const status = env && envStatus[env] ? envStatus[env].status : \"Undeployed\";\n const haveCanaryRollout = workflowOptions?.find((workflow) => checkCanaryDeployStep(workflow)) ? true : false;\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\n Dialog,\n {\n visible: true,\n locale: locale().Dialog,\n className: \"deployConfig\",\n style: { width: \"600px\" },\n v2: true,\n overflowScroll: true,\n onClose,\n onCancel: onClose,\n onOk: this.onSubmit,\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Select Workflow\"),\n footer: /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Button, { loading: dryRunLoading, type: \"secondary\", onClick: this.onDryRun }, /* @__PURE__ */ React.createElement(Translation, null, \"DryRun\")), /* @__PURE__ */ React.createElement(Button, { style: { marginLeft: \"16px\" }, type: \"primary\", onClick: this.onSubmit }, /* @__PURE__ */ React.createElement(Translation, null, \"Deploy\")))\n },\n /* @__PURE__ */ React.createElement(If, { condition: sourceOfTrust === \"from-k8s-resource\" }, /* @__PURE__ */ React.createElement(Message, { type: \"warning\", style: { marginBottom: \"16px\" } }, /* @__PURE__ */ React.createElement(Translation, null, \"Once deployed, VelaUX hosts this application and no longer syncs the configuration from the cluster.\"))),\n /* @__PURE__ */ React.createElement(Loading, { visible: loading, style: { width: \"100%\" } }, /* @__PURE__ */ React.createElement(Form.Item, { labelAlign: \"left\", label: /* @__PURE__ */ React.createElement(Translation, null, \"Environment\") }, /* @__PURE__ */ React.createElement(\n Select,\n {\n dataSource: envOptions,\n onChange: (e) => {\n const d = workflows?.find((w) => w.envName === e && w.default);\n this.setState({ env: e, workflowName: d ? d.name : \"\" });\n },\n defaultValue: envName || (envOptions?.length > 0 ? envOptions[0].value : \"\")\n }\n )), /* @__PURE__ */ React.createElement(\"div\", { className: \"deploy-workflow-select-item\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"status\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Status\"), \": \", /* @__PURE__ */ React.createElement(Translation, null, status)), !haveCanaryRollout && /* @__PURE__ */ React.createElement(\n Permission,\n {\n project: applicationDetail.project,\n request: {\n resource: `project:${applicationDetail.project}/application:${applicationDetail.name}/workflow:*`,\n action: \"create\"\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"enable-canary-deploy\" }, /* @__PURE__ */ React.createElement(Button, { size: \"small\", type: \"secondary\", onClick: this.onCreateCanaryRolloutWorkflow }, /* @__PURE__ */ React.createElement(Translation, null, \"Enable Canary Rollout\")))\n )), haveCanaryRollout && status != \"running\" && /* @__PURE__ */ React.createElement(Message, { type: \"notice\" }, /* @__PURE__ */ React.createElement(Translation, null, \"The canary rollout workflow is available when the application is running\")), /* @__PURE__ */ React.createElement(RadioGroup, { value: workflowName, onChange: this.onChange }, workflowOptions?.map((workflow) => {\n const haveCanaryDeploy = checkCanaryDeployStep(workflow);\n return /* @__PURE__ */ React.createElement(\n Radio,\n {\n key: workflow.name,\n id: workflow.name,\n value: workflow.name,\n disabled: status != \"running\" && haveCanaryDeploy,\n onClick: () => {\n this.onChange(workflow.name);\n }\n },\n /* @__PURE__ */ React.createElement(\"div\", { className: \"deploy-workflow-select-item-title\" }, workflow.alias ? workflow.alias : workflow.name, haveCanaryDeploy ? /* @__PURE__ */ React.createElement(\"div\", { className: \"deploy-notice\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Canary Rollout\")) : /* @__PURE__ */ React.createElement(\"div\", { className: \"deploy-notice\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Default Rollout\")))\n );\n })), /* @__PURE__ */ React.createElement(If, { condition: dryRunResultState == \"success\" }, /* @__PURE__ */ React.createElement(Message, { type: \"success\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Dry run successfully\"), /* @__PURE__ */ React.createElement(\"a\", { style: { marginLeft: \"16px\" }, onClick: this.onShowDryRunResult }, /* @__PURE__ */ React.createElement(Translation, null, \"Review the result\")))), /* @__PURE__ */ React.createElement(If, { condition: dryRunResultState == \"failure\" }, /* @__PURE__ */ React.createElement(Message, { type: \"error\" }, dryRunMessage, dryRunResult && /* @__PURE__ */ React.createElement(\"a\", { style: { marginLeft: \"16px\" }, onClick: this.onShowDryRunResult }, /* @__PURE__ */ React.createElement(Translation, null, \"Review the result\")))), showDryRunResult && this.renderDryRunResult())\n ));\n }\n}\nexport default DeployConfigDialog;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid, Button, Message, Dialog } from \"@alifd/next\";\nimport classNames from \"classnames\";\nimport { connect } from \"dva\";\nimport { routerRedux } from \"dva/router\";\nimport i18n from \"i18next\";\nimport React, { Component } from \"react\";\nimport { Breadcrumb } from \"../../../../components/Breadcrumb\";\nimport { deployApplication } from \"../../../../api/application\";\nimport { If } from \"../../../../components/If\";\nimport Permission from \"../../../../components/Permission\";\nimport { Translation } from \"../../../../components/Translation\";\nimport { handleError } from \"../../../../utils/errors\";\nimport { locale } from \"../../../../utils/locale\";\nimport DeployConfig from \"../DeployConfig\";\nconst { Row, Col } = Grid;\nlet ApplicationHeader = class extends Component {\n constructor(props) {\n super(props);\n this.onDeployConfig = () => {\n this.loadApplicationStatus();\n this.setState({ showDeployConfig: true });\n };\n this.loadApplicationStatus = async () => {\n const { appName, dispatch } = this.props;\n this.setState({ loading: true });\n dispatch({\n type: \"application/getApplicationAllStatus\",\n payload: { appName },\n callback: () => {\n this.setState({ loading: false });\n }\n });\n };\n this.onGetApplicationDetails = async () => {\n const { appName, dispatch } = this.props;\n if (dispatch && appName) {\n dispatch({\n type: \"application/getApplicationDetail\",\n payload: { appName }\n });\n }\n };\n this.onDeploy = (workflowName, force) => {\n const { applicationDetail, dispatch } = this.props;\n if (applicationDetail) {\n deployApplication(\n {\n appName: applicationDetail.name,\n workflowName,\n triggerType: \"web\",\n force: force || false\n },\n true\n ).then((re) => {\n if (re) {\n Message.success(i18n.t(\"Application deployed successfully\"));\n this.onGetApplicationDetails();\n if (re.record && re.record.name && dispatch) {\n dispatch(\n routerRedux.push(\n `/applications/${applicationDetail.name}/envbinding/${re.envName}/workflow/records/${re.record.name}`\n )\n );\n }\n }\n }).catch((err) => {\n if (err.BusinessCode === 10004) {\n Dialog.confirm({\n content: i18n.t(\"Workflow is executing. Do you want to force a restart?\").toString(),\n onOk: () => {\n this.onDeploy(workflowName, true);\n },\n locale: locale().Dialog\n });\n } else {\n handleError(err);\n }\n });\n } else {\n Message.warning(\"Please wait\");\n }\n };\n this.state = {\n loading: false,\n showDeployConfig: false\n };\n }\n componentDidMount() {\n }\n componentWillUnmount() {\n }\n render() {\n const { applicationDetail, applicationAllStatus, currentPath, workflows, envbinding, appName, envName, dispatch } = this.props;\n const { showDeployConfig, loading } = this.state;\n const activeKey = currentPath.substring(currentPath.lastIndexOf(\"/\") + 1);\n let item = /* @__PURE__ */ React.createElement(Translation, null, `app-${activeKey}`);\n const projectName = applicationDetail && applicationDetail.project?.name || \"\";\n const sourceOfTrust = applicationDetail?.labels && applicationDetail?.labels[\"app.oam.dev/source-of-truth\"];\n const envPage = currentPath.startsWith(`/applications/${appName}/envbinding/`);\n if (envPage) {\n item = /* @__PURE__ */ React.createElement(Translation, null, `Environment`);\n }\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 6, className: classNames(\"padding16\") }, /* @__PURE__ */ React.createElement(\n Breadcrumb,\n {\n items: [\n {\n to: \"/projects/\" + projectName + \"/applications\",\n title: projectName\n },\n {\n to: `/applications/${applicationDetail?.name || \"\"}`,\n title: applicationDetail && (applicationDetail.alias || applicationDetail.name) || \"\"\n },\n {\n title: item\n }\n ]\n }\n )), /* @__PURE__ */ React.createElement(Col, { span: 18, className: \"flexright\", style: { padding: \"0 16px\" } }, /* @__PURE__ */ React.createElement(If, { condition: applicationDetail?.readOnly }, /* @__PURE__ */ React.createElement(\n Message,\n {\n type: \"notice\",\n title: i18n.t(\"This application is managed by the addon, and it is readonly\").toString()\n }\n )), /* @__PURE__ */ React.createElement(If, { condition: sourceOfTrust === \"from-k8s-resource\" }, /* @__PURE__ */ React.createElement(Message, { type: \"warning\", title: i18n.t(\"The application is synchronizing from the cluster.\").toString() })), /* @__PURE__ */ React.createElement(\n Permission,\n {\n request: {\n resource: `project:${projectName}/application:${applicationDetail && applicationDetail.name}`,\n action: \"deploy\"\n },\n project: projectName\n },\n /* @__PURE__ */ React.createElement(\n Button,\n {\n style: { marginLeft: \"16px\" },\n type: \"primary\",\n disabled: applicationDetail?.readOnly,\n onClick: () => this.onDeployConfig()\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Deploy\")\n )\n ))), /* @__PURE__ */ React.createElement(If, { condition: showDeployConfig }, applicationDetail && envbinding && workflows && /* @__PURE__ */ React.createElement(\n DeployConfig,\n {\n loading,\n envName,\n applicationAllStatus,\n applicationDetail,\n envBindings: envbinding,\n onClose: () => {\n this.setState({ showDeployConfig: false });\n },\n dispatch,\n appName,\n onOK: this.onDeploy,\n workflows\n }\n )));\n }\n};\nApplicationHeader = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], ApplicationHeader);\nexport default ApplicationHeader;\n","\"use strict\";\nimport { Card } from \"@alifd/next\";\nimport React, { Component } from \"react\";\nimport { Translation } from \"../../../../components/Translation\";\nimport \"./index.less\";\nimport { Link } from \"dva/router\";\nimport { locale } from \"../../../../utils/locale\";\nclass Menu extends Component {\n constructor(props) {\n super(props);\n this.state = {\n loading: true\n };\n }\n componentDidMount() {\n }\n render() {\n const { envName, appName, currentPath } = this.props;\n const isEnvPage = envName != void 0;\n const menuItems = {\n configPage: [\n {\n key: \"config\",\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Properties\"),\n to: `/applications/${appName}/config`\n },\n {\n key: \"revisions\",\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Revisions\"),\n to: `/applications/${appName}/revisions`\n },\n {\n key: \"workflows\",\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Workflows\"),\n to: `/applications/${appName}/workflows`\n }\n ],\n envPage: [\n {\n key: \"workflow\",\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Workflow\"),\n to: `/applications/${appName}/envbinding/${envName}/workflow`\n },\n {\n key: \"status\",\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Status\"),\n to: `/applications/${appName}/envbinding/${envName}/status`\n },\n {\n key: \"instances\",\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Instances\"),\n to: `/applications/${appName}/envbinding/${envName}/instances`\n },\n {\n key: \"logs\",\n label: /* @__PURE__ */ React.createElement(Translation, null, \"Logs\"),\n to: `/applications/${appName}/envbinding/${envName}/logs`\n }\n ]\n };\n let activeItems = menuItems.configPage;\n if (isEnvPage) {\n activeItems = menuItems.envPage;\n }\n const activeKey = currentPath.substring(currentPath.lastIndexOf(\"/\") + 1);\n return /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"100px\", className: \"app-menu\" }, activeItems.map((item) => {\n return /* @__PURE__ */ React.createElement(\n Link,\n {\n key: item.key,\n to: item.to,\n className: item.key === activeKey || currentPath.startsWith(item.to) ? \"menu-item-active\" : \"menu-item\"\n },\n item.label\n );\n }));\n }\n}\nexport default Menu;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Loading, Grid } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport EnvTabs from \"./components/EnvTabs\";\nimport Header from \"./components/Header\";\nimport Menus from \"./components/Menus\";\nimport \"./index.less\";\nconst { Row } = Grid;\nlet ApplicationLayout = class extends Component {\n constructor(props) {\n super(props);\n this.onGetApplicationDetails = async () => {\n const {\n params: { appName }\n } = this.props.match;\n this.setState({ activeName: appName, loading: true });\n this.props.dispatch({\n type: \"application/getApplicationDetail\",\n payload: { appName },\n callback: () => {\n this.setState({ loading: false }, () => {\n this.loadApplicationComponents();\n this.loadApplicationEnvbinding();\n this.loadApplicationWorkflows();\n this.loadApplicationPolicies();\n this.loadApplicationStatus();\n });\n }\n });\n };\n this.getNamespaceList = async () => {\n this.props.dispatch({\n type: \"application/getNamespaceList\",\n payload: {}\n });\n };\n this.loadApplicationEnvbinding = async () => {\n const {\n params: { appName }\n } = this.props.match;\n if (appName) {\n this.props.dispatch({\n type: \"application/getApplicationEnvbinding\",\n payload: { appName }\n });\n }\n };\n this.loadApplicationComponents = async () => {\n const {\n params: { appName }\n } = this.props.match;\n this.props.dispatch({\n type: \"application/getApplicationComponents\",\n payload: { appName }\n });\n };\n this.loadApplicationPolicies = async () => {\n const {\n params: { appName }\n } = this.props.match;\n this.props.dispatch({\n type: \"application/getApplicationPolicies\",\n payload: { appName }\n });\n };\n this.loadApplicationWorkflows = async () => {\n const {\n params: { appName }\n } = this.props.match;\n this.props.dispatch({\n type: \"application/getApplicationWorkflows\",\n payload: { appName }\n });\n };\n this.loadApplicationStatus = async () => {\n const {\n params: { appName }\n } = this.props.match;\n this.props.dispatch({\n type: \"application/getApplicationAllStatus\",\n payload: { appName }\n });\n };\n this.state = {\n loading: false,\n activeName: \"\"\n };\n }\n componentDidMount() {\n this.onGetApplicationDetails();\n this.getNamespaceList();\n }\n shouldComponentUpdate(nextProps) {\n return nextProps.location.pathname !== this.props.location.pathname;\n }\n render() {\n const { activeName } = this.state;\n const { children, dispatch, applicationDetail } = this.props;\n const {\n url,\n params: { appName, envName }\n } = this.props.match;\n const loadingDom = /* @__PURE__ */ React.createElement(Loading, { style: { width: \"100%\", minHeight: \"200px\" } });\n if (activeName !== \"\" && appName != activeName) {\n this.onGetApplicationDetails();\n return loadingDom;\n }\n if (!applicationDetail) {\n return loadingDom;\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"app-layout\" }, /* @__PURE__ */ React.createElement(Header, { dispatch, appName, envName, currentPath: url }), /* @__PURE__ */ React.createElement(EnvTabs, { dispatch, appName, activeKey: envName ? envName : \"basisConfig\" }), /* @__PURE__ */ React.createElement(Row, { className: \"padding16 main\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"menu\" }, /* @__PURE__ */ React.createElement(Menus, { currentPath: url, appName, envName })), /* @__PURE__ */ React.createElement(\"div\", { className: \"content\" }, children)));\n }\n};\nApplicationLayout = __decorateClass([\n connect((store) => {\n return { ...store.application };\n })\n], ApplicationLayout);\nexport default ApplicationLayout;\n","\"use strict\";\nimport { Icon, Grid } from \"@alifd/next\";\nimport { Link } from \"dva/router\";\nimport _ from \"lodash\";\nimport React, { Component } from \"react\";\nimport aliyunImg from \"../../../../assets/aliyun.svg\";\nimport awsImg from \"../../../../assets/aws.svg\";\nimport azureImg from \"../../../../assets/azure.svg\";\nimport defaultConfigSVG from \"../../../../assets/config.svg\";\nimport dockerImg from \"../../../../assets/docker.svg\";\nimport gitImg from \"../../../../assets/git.svg\";\nimport grafanaImg from \"../../../../assets/grafana.svg\";\nimport helmImg from \"../../../../assets/helm.svg\";\nimport nacosImg from \"../../../../assets/nacos.svg\";\nimport prometheusImg from \"../../../../assets/prometheus.svg\";\nimport ssoImg from \"../../../../assets/sso.svg\";\nimport terraformImg from \"../../../../assets/terraform.svg\";\nimport \"./index.less\";\nconst imgDate = [\n {\n id: \"helm-repository\",\n img: helmImg\n },\n {\n id: \"image-registry\",\n img: dockerImg\n },\n {\n id: \"dex-connector\",\n img: ssoImg\n },\n {\n id: \"git\",\n img: gitImg\n },\n {\n id: \"alibaba\",\n img: aliyunImg\n },\n {\n id: \"aws\",\n img: awsImg\n },\n {\n id: \"azure\",\n img: azureImg\n },\n {\n id: \"terraform\",\n img: terraformImg\n },\n {\n id: \"nacos\",\n img: nacosImg\n },\n {\n id: \"grafana\",\n img: grafanaImg\n },\n {\n id: \"loki\",\n img: grafanaImg\n },\n {\n id: \"prometheus\",\n img: prometheusImg\n }\n];\nclass Menu extends Component {\n constructor() {\n super(...arguments);\n this.matchMenuData = (name) => {\n return _.find(imgDate, (item) => {\n if (name.indexOf(item.id) != -1) {\n return item;\n } else {\n return null;\n }\n });\n };\n this.transMenuData = () => {\n const { menuData } = this.props;\n return menuData.map((item) => {\n const findMatchData = this.matchMenuData(item.name);\n if (findMatchData) {\n return Object.assign(item, { iconType: \"arrow-right\", img: findMatchData.img });\n } else {\n return Object.assign(item, { iconType: \"arrow-right\", img: defaultConfigSVG });\n }\n });\n };\n this.getMenuItem = () => {\n const { Row, Col } = Grid;\n const { activeName } = this.props;\n const transMenuData = this.transMenuData();\n const result = (transMenuData || []).map((item) => {\n const isActive = activeName === item.name ? \"active-menu-item\" : \"\";\n return /* @__PURE__ */ React.createElement(\"li\", { key: item.name }, /* @__PURE__ */ React.createElement(Link, { to: `/configs/${item.name}/config` }, /* @__PURE__ */ React.createElement(Row, { className: `menu-item-wrapper ${isActive}` }, /* @__PURE__ */ React.createElement(Col, { span: \"5\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"menu-item-img-wrapper\" }, /* @__PURE__ */ React.createElement(\"img\", { src: item.img, className: \"menu-item-img\" }))), /* @__PURE__ */ React.createElement(Col, { span: \"17\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"menu-item-description\" }, item.alias || item.name)), /* @__PURE__ */ React.createElement(Col, { span: \"2\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"menu-item-icon\" }, /* @__PURE__ */ React.createElement(Icon, { type: item.iconType }))))));\n });\n return result;\n };\n }\n render() {\n const menuItem = this.getMenuItem();\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"menu-content\" }, /* @__PURE__ */ React.createElement(\"ul\", null, menuItem));\n }\n}\nexport default Menu;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport Empty from \"../../components/Empty\";\nimport { ListTitle } from \"../../components/ListTitle\";\nimport { getMatchParamObj } from \"../../utils/utils\";\nimport Menu from \"./components/Menu\";\nimport \"./index.less\";\nimport { If } from \"../../components/If\";\nlet ConfigsLayout = class extends Component {\n constructor(props) {\n super(props);\n this.listTemplates = () => {\n this.props.dispatch({\n type: \"configs/loadTemplates\",\n payload: {}\n });\n };\n this.getTemplateName = () => {\n return getMatchParamObj(this.props.match, \"templateName\");\n };\n this.getConfigsFirstMenuName = (data) => {\n return data && data[0] && data[0].name || \"\";\n };\n this.initMenuRoute = (pathname) => {\n if (pathname) {\n const link = `/configs/${pathname}`;\n this.props.history.push(link);\n }\n };\n this.state = {\n activeName: this.getTemplateName()\n };\n }\n componentDidMount() {\n this.listTemplates();\n }\n componentWillReceiveProps(nextProps) {\n const { configTemplates } = nextProps;\n if (nextProps.location.pathname != this.props.location.pathname) {\n const nextPropsParams = nextProps.match.params || {};\n this.setState({\n activeName: nextPropsParams.templateName\n });\n }\n if (nextProps.match.path === \"/configs\" && configTemplates.length != 0) {\n const pathname = this.getConfigsFirstMenuName(configTemplates);\n this.initMenuRoute(pathname);\n }\n }\n render() {\n const { Row, Col } = Grid;\n const { configTemplates } = this.props;\n const { activeName } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"configs-wrapper\" }, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: \"Configs\",\n subTitle: \"Offering templated and extensible configuration management capabilities.\"\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: !activeName }, /* @__PURE__ */ React.createElement(Empty, { style: { marginTop: \"40px\" } })), /* @__PURE__ */ React.createElement(If, { condition: activeName }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: \"5\" }, /* @__PURE__ */ React.createElement(Menu, { activeName, menuData: configTemplates })), /* @__PURE__ */ React.createElement(Col, { span: \"19\" }, this.props.children))));\n }\n};\nConfigsLayout = __decorateClass([\n connect((store) => {\n return { ...store.configs };\n })\n], ConfigsLayout);\nexport default ConfigsLayout;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport _ from \"lodash\";\nimport React, { Component, Fragment } from \"react\";\nimport { Translation } from \"../../components/Translation\";\nimport { Breadcrumb } from \"../../components/Breadcrumb\";\nimport \"./index.less\";\nimport classNames from \"classnames\";\nconst { Row, Col } = Grid;\nlet DefinitionDetailsLayout = class extends Component {\n constructor() {\n super(...arguments);\n this.getNavList = () => {\n const { params = { definitionType: \"\", definitionName: \"\" } } = this.props.match;\n const { definitionType, definitionName } = params;\n const list = [\n {\n id: \"uiSchema\",\n name: /* @__PURE__ */ React.createElement(Translation, null, \"UI Schema\"),\n to: `/definitions/${definitionType}/${definitionName}/ui-schema`\n }\n ];\n const nav = list.map((item) => {\n const active = this.props.activeId === item.id ? \"active\" : \"\";\n return /* @__PURE__ */ React.createElement(Link, { key: item.id, className: active, to: item.to }, item.name);\n });\n return nav;\n };\n this.matchDefinitionName = (definitionType) => {\n const { definitionTypes } = this.props;\n const matchDefinition = _.find(definitionTypes, (item) => {\n return item.type === definitionType;\n });\n return matchDefinition && matchDefinition.name || \"\";\n };\n }\n render() {\n const menu = this.getNavList();\n const { params = { definitionType: \"\", definitionName: \"\" } } = this.props.match;\n const { definitionType, definitionName } = params;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 6, className: classNames(\"padding16\", \"breadcrumb\") }, /* @__PURE__ */ React.createElement(\n Breadcrumb,\n {\n items: [\n {\n to: `/definitions/${definitionType}/config`,\n title: \"Definitions\"\n },\n {\n title: definitionName\n }\n ]\n }\n ))), /* @__PURE__ */ React.createElement(\"nav\", { className: \"definitions-detail-wrapper\" }, /* @__PURE__ */ React.createElement(\"ul\", null, menu)), this.props.children);\n }\n};\nDefinitionDetailsLayout = __decorateClass([\n connect((store) => {\n return { ...store.definitions, ...store.user };\n })\n], DefinitionDetailsLayout);\nexport default DefinitionDetailsLayout;\n","\"use strict\";\nimport { Icon, Grid } from \"@alifd/next\";\nimport { Link } from \"dva/router\";\nimport React, { Component } from \"react\";\nimport \"./index.less\";\nclass Menu extends Component {\n constructor() {\n super(...arguments);\n this.getMenuItem = () => {\n const { Row, Col } = Grid;\n const { activeType, definitionTypes } = this.props;\n const result = (definitionTypes || []).map((item) => {\n const isActive = activeType === item.type ? \"active-menu-item\" : \"\";\n return /* @__PURE__ */ React.createElement(\"li\", { key: item.type }, /* @__PURE__ */ React.createElement(Link, { to: `/definitions/${item.type}/config` }, /* @__PURE__ */ React.createElement(Row, { className: `menu-item-wrapper ${isActive}` }, /* @__PURE__ */ React.createElement(Col, { span: \"22\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"menu-item-description\" }, /* @__PURE__ */ React.createElement(\"span\", { className: \"padding-left-15\" }, \" \", item.name))), /* @__PURE__ */ React.createElement(Col, { span: \"2\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"menu-item-icon\" }, /* @__PURE__ */ React.createElement(Icon, { type: \"arrow-right\" }))))));\n });\n return result;\n };\n }\n render() {\n const menuItem = this.getMenuItem();\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"definitions-menu-content\" }, /* @__PURE__ */ React.createElement(\"ul\", null, menuItem));\n }\n}\nexport default Menu;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport Empty from \"../../components/Empty\";\nimport { ListTitle } from \"../../components/ListTitle\";\nimport { getMatchParamObj } from \"../../utils/utils\";\nimport Menu from \"./components/Menu\";\nimport \"./index.less\";\nimport { If } from \"../../components/If\";\nlet DefinitionsLayout = class extends Component {\n constructor(props) {\n super(props);\n this.getDefinitionType = () => {\n return getMatchParamObj(this.props.match, \"definitionType\");\n };\n this.state = {\n activeType: this.getDefinitionType(),\n definitionTypes: props.definitionTypes\n };\n }\n componentWillReceiveProps(nextProps) {\n if (nextProps.location.pathname != this.props.location.pathname) {\n const nextPropsParams = nextProps.match.params || {};\n this.setState({\n activeType: nextPropsParams.definitionType\n });\n }\n }\n render() {\n const { Row, Col } = Grid;\n const { definitionTypes } = this.state;\n const { activeType } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"definitions-wrapper\" }, /* @__PURE__ */ React.createElement(\n ListTitle,\n {\n title: \"Definitions\",\n subTitle: \"This is achieved by implementing its application model as programmable entities\"\n }\n ), /* @__PURE__ */ React.createElement(If, { condition: !activeType }, /* @__PURE__ */ React.createElement(Empty, { style: { marginTop: \"40px\" } })), /* @__PURE__ */ React.createElement(If, { condition: activeType }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: \"5\" }, /* @__PURE__ */ React.createElement(Menu, { activeType, definitionTypes })), /* @__PURE__ */ React.createElement(Col, { span: \"19\" }, this.props.children))));\n }\n};\nDefinitionsLayout = __decorateClass([\n connect((store) => {\n return { ...store.definitions };\n })\n], DefinitionsLayout);\nexport default DefinitionsLayout;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Grid } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport React, { Component, Fragment } from \"react\";\nimport { Translation } from \"../../components/Translation\";\nimport { Breadcrumb } from \"../../components/Breadcrumb\";\nimport \"./index.less\";\nimport { checkPermission } from \"../../utils/permission\";\nimport classNames from \"classnames\";\nconst { Row, Col } = Grid;\nlet ProjectLayout = class extends Component {\n constructor() {\n super(...arguments);\n this.loadProjectDetail = async (projectName) => {\n this.props.dispatch({\n type: \"project/getProjectDetails\",\n payload: { projectName }\n });\n };\n this.getNavList = () => {\n const { params = { projectName: \"\" } } = this.props.match;\n const { projectName } = params;\n const { userInfo } = this.props;\n const list = [\n {\n id: \"summary\",\n name: /* @__PURE__ */ React.createElement(Translation, null, \"Summary\"),\n to: `/projects/${projectName}/summary`\n },\n {\n id: \"applications\",\n name: /* @__PURE__ */ React.createElement(Translation, null, \"Applications\"),\n to: `/projects/${projectName}/applications`\n },\n {\n id: \"pipelines\",\n name: /* @__PURE__ */ React.createElement(Translation, null, \"Pipelines\"),\n to: `/projects/${projectName}/pipelines`\n }\n ];\n if (checkPermission({ resource: `project:${projectName}/role:*`, action: \"list\" }, projectName, userInfo)) {\n list.push({\n id: \"roles\",\n name: /* @__PURE__ */ React.createElement(Translation, null, \"Roles\"),\n to: `/projects/${projectName}/roles`\n });\n }\n if (checkPermission({ resource: `project:${projectName}/projectUser:*`, action: \"list\" }, projectName, userInfo)) {\n list.push({\n id: \"members\",\n name: /* @__PURE__ */ React.createElement(Translation, null, \"Members\"),\n to: `/projects/${projectName}/members`\n });\n }\n const nav = list.map((item) => {\n const active = this.props.activeId === item.id ? \"active\" : \"\";\n return /* @__PURE__ */ React.createElement(Link, { key: item.id, className: active, to: item.to }, item.name);\n });\n return nav;\n };\n }\n componentDidMount() {\n const { params = { projectName: \"\" } } = this.props.match;\n this.loadProjectDetail(params.projectName);\n }\n shouldComponentUpdate(nextProps) {\n const change = nextProps.match.params.projectName !== this.props.match.params.projectName;\n if (change) {\n const { params = { projectName: \"\" } } = nextProps.match;\n this.loadProjectDetail(params.projectName);\n }\n return true;\n }\n render() {\n const menu = this.getNavList();\n const { projectDetails } = this.props;\n const projectName = projectDetails?.alias || projectDetails?.name || \"\";\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 6, className: classNames(\"breadcrumb\") }, /* @__PURE__ */ React.createElement(\n Breadcrumb,\n {\n items: [\n {\n to: \"/projects\",\n title: \"Projects\"\n },\n {\n title: projectName\n }\n ]\n }\n ))), /* @__PURE__ */ React.createElement(\"nav\", { className: \"project-detail-wrapper\" }, /* @__PURE__ */ React.createElement(\"ul\", null, menu)), this.props.children);\n }\n};\nProjectLayout = __decorateClass([\n connect((store) => {\n return { ...store.project, ...store.user };\n })\n], ProjectLayout);\nexport default ProjectLayout;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Table, Dialog, Message, Tag } from \"@alifd/next\";\nimport { Link } from \"dva/router\";\nimport React, { Fragment, Component } from \"react\";\nimport { deleteProject } from \"../../api/project\";\nimport { ListTitle as Title } from \"../../components/ListTitle\";\nimport { Translation } from \"../../components/Translation\";\nimport { momentDate } from \"../../utils/common\";\nimport { locale } from \"../../utils/locale\";\nimport { connect } from \"dva\";\nimport i18n from \"../../i18n\";\nlet MyProjectList = class extends Component {\n constructor(props) {\n super(props);\n this.loadUserInfo = () => {\n this.setState({ isLoading: true });\n this.props.dispatch({\n type: \"user/getLoginUserInfo\",\n callback: () => {\n this.setState({ isLoading: false });\n }\n });\n };\n this.onDelete = (record) => {\n Dialog.confirm({\n content: \"Are you sure you want to delete the project\",\n onOk: () => {\n const { name } = record;\n if (name) {\n deleteProject({ name }).then((res) => {\n if (res) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Project deleted successfully\"));\n this.loadUserInfo();\n }\n }).catch();\n }\n },\n locale: locale().Dialog\n });\n };\n this.state = {\n isLoading: false\n };\n }\n componentDidMount() {\n }\n render() {\n const columns = [\n {\n key: \"name\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Name\"),\n dataIndex: \"name\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Link, { to: `/projects/${v}` }, v));\n }\n },\n {\n key: \"alias\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Alias\"),\n dataIndex: \"alias\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"description\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Description\"),\n dataIndex: \"description\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v);\n }\n },\n {\n key: \"owner\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Owner\"),\n dataIndex: \"owner\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, v && v.alias ? `${v.alias}(${v.name})` : v.name);\n }\n },\n {\n key: \"joinTime\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Join Time\"),\n dataIndex: \"joinTime\",\n cell: (v) => {\n return /* @__PURE__ */ React.createElement(\"span\", null, momentDate(v));\n }\n },\n {\n key: \"roles\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"Roles\"),\n dataIndex: \"roles\",\n cell: (v) => {\n if (!v) {\n return /* @__PURE__ */ React.createElement(\"span\", null);\n }\n return /* @__PURE__ */ React.createElement(\"div\", null, v.map((role) => {\n return /* @__PURE__ */ React.createElement(Tag, { key: role.name }, role.alias || role.name);\n }));\n }\n }\n ];\n const { Column } = Table;\n const { isLoading } = this.state;\n const { userInfo } = this.props;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"project-list-content\" }, /* @__PURE__ */ React.createElement(Title, { title: \"Projects\", subTitle: i18n.t(\"Project are used for users and applications isolation\") }), /* @__PURE__ */ React.createElement(Table, { locale: locale().Table, dataSource: userInfo?.projects, loading: isLoading }, columns.map((col, key) => /* @__PURE__ */ React.createElement(Column, { ...col, key, align: \"left\" })))));\n }\n};\nMyProjectList = __decorateClass([\n connect((store) => {\n return { ...store.user };\n })\n], MyProjectList);\nexport default MyProjectList;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Field, Grid, Radio, Input, Message, Switch, Select, Dialog, Card, Button, Form } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport { routerRedux } from \"dva/router\";\nimport React from \"react\";\nimport { AiOutlineDelete, AiOutlinePlus } from \"react-icons/ai\";\nimport { v4 as uuid } from \"uuid\";\nimport { MdOutlineHelpCenter } from \"react-icons/md\";\nimport { getDexConfig } from \"../../api/authentication\";\nimport { getProjectList, getProjectRoles } from \"../../api/project\";\nimport { updateSystemInfo } from \"../../api/system_config\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport { locale } from \"../../utils/locale\";\nimport { checkPermission } from \"../../utils/permission\";\nimport { CustomSelect } from \"../../components/CustomSelect\";\nimport { If } from \"../../components/If\";\nimport Item from \"../../components/Item\";\nconst { Col, Row } = Grid;\nlet PlatformSetting = class extends React.Component {\n constructor(props) {\n super(props);\n this.onGetDexConfig = () => {\n getDexConfig().then((res) => {\n if (res) {\n this.setState({\n dexConfig: res\n });\n }\n });\n };\n this.loadSystemInfo = () => {\n this.props.dispatch({\n type: \"user/getSystemInfo\",\n callback: (systemInfo) => {\n this.field.setValues({\n loginType: systemInfo.loginType,\n enableCollection: systemInfo.enableCollection\n });\n const items = [];\n systemInfo.dexUserDefaultProjects?.map((item) => {\n items.push({ id: uuid(), ...item });\n });\n this.setState({ defaultProjectItems: items });\n }\n });\n };\n this.onUpdate = () => {\n this.field.validate((errs, values) => {\n if (errs) {\n return;\n }\n const { enableCollection, loginType, velaAddress } = values;\n const projectMaps = {};\n Object.keys(values).map((key) => {\n if (key.endsWith(\"-name\")) {\n const infos = key.split(\"-\");\n if (!projectMaps[infos[0]]) {\n projectMaps[infos[0]] = { name: values[key], roles: [] };\n } else {\n projectMaps[infos[0]].name = values[key];\n }\n }\n if (key.endsWith(\"-roles\")) {\n const infos = key.split(\"-\");\n if (!projectMaps[infos[0]]) {\n projectMaps[infos[0]] = { roles: values[key], name: \"\" };\n } else {\n projectMaps[infos[0]].roles = values[key];\n }\n }\n });\n const param = {\n enableCollection,\n loginType,\n velaAddress,\n dexUserDefaultProjects: Object.keys(projectMaps).map((key) => {\n return projectMaps[key];\n })\n };\n updateSystemInfo(param).then((res) => {\n if (res) {\n Message.success(i18n.t(\"Platform settings updated successfully\"));\n this.loadSystemInfo();\n }\n }).catch((err) => {\n const businessGuideCode = err?.BusinessCode || 0;\n this.setState(\n {\n businessGuideCode\n },\n () => {\n if (this.state.businessGuideCode === 12011) {\n this.renderDexGuideDialog();\n } else if (this.state.businessGuideCode === 14010) {\n this.renderUserGuideDialog();\n } else {\n Message.error(err?.Message);\n }\n }\n );\n });\n });\n };\n this.renderUserGuideDialog = () => {\n this.dialogGuideUser = Dialog.alert({\n title: i18n.t(\"The email address of administrator is empty\").toString(),\n content: i18n.t(\"Please set a email address for the administrator, it must same as the SSO account.\").toString(),\n footerActions: [\"ok\"],\n footer: this.getGuideUserButton()\n });\n return this.dialogGuideUser;\n };\n this.renderDexGuideDialog = () => {\n this.dialogGuideDex = Dialog.alert({\n title: i18n.t(\"No dex connector configurations\").toString(),\n content: i18n.t(\"Before enabling SSO, you must add at least one dex connector configuration.\").toString(),\n footerActions: [\"ok\"],\n footer: this.getGuideDexButton()\n });\n return this.dialogGuideDex;\n };\n this.getGuideUserButton = () => {\n const { userInfo } = this.props;\n const request = { resource: \"user:*\", action: \"list\" };\n const project = \"\";\n if (checkPermission(request, project, userInfo)) {\n return /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onOKGuide }, /* @__PURE__ */ React.createElement(Translation, null, \"OK\"));\n } else {\n return null;\n }\n };\n this.getGuideDexButton = () => {\n const { userInfo } = this.props;\n const request = { resource: \"configType:*\", action: \"list\" };\n const project = \"\";\n if (checkPermission(request, project, userInfo)) {\n return /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onOKGuide }, /* @__PURE__ */ React.createElement(Translation, null, \"OK\"));\n } else {\n return null;\n }\n };\n this.onOKGuide = () => {\n const { businessGuideCode } = this.state;\n if (businessGuideCode === 12011) {\n this.dialogGuideDex?.hide();\n this.props.dispatch(\n routerRedux.push({\n pathname: \"/configs/dex-connector/config\"\n })\n );\n } else if (businessGuideCode === 14010) {\n this.dialogGuideUser?.hide();\n this.props.dispatch(\n routerRedux.push({\n pathname: \"/users\"\n })\n );\n }\n };\n this.generateDexAddress = () => {\n if (!this.state.dexConfig) {\n return;\n }\n const { clientID, redirectURL } = this.state.dexConfig;\n const newRedirectURl = encodeURIComponent(redirectURL);\n return `${this.field.getValue(\n \"velaAddress\"\n )}/dex/auth?client_id=${clientID}&redirect_uri=${newRedirectURl}&response_type=code&scope=openid+profile+email+offline_access&state=velaux`;\n };\n this.onAddItem = () => {\n this.setState((prevState) => ({\n defaultProjectItems: [...prevState.defaultProjectItems, { id: uuid() }]\n }));\n };\n this.onRemoveItem = (id) => {\n this.setState((prevState) => ({\n defaultProjectItems: prevState.defaultProjectItems.filter((cp) => cp.id != id) || []\n }));\n this.field.remove(`${id}-name`);\n this.field.remove(`${id}-roles`);\n };\n this.getIssuerDefaultValue = () => {\n const domain = `${window.location.protocol}//${window.location.host}`;\n return domain;\n };\n this.generateProjectOptions = () => {\n return this.state.projects?.map((item) => {\n return {\n label: `${item.name}(${item.alias || \"-\"})`,\n value: item.name\n };\n });\n };\n this.generateProjectRoleOptions = () => {\n return this.state.roles?.map((item) => {\n return {\n label: `${item.name}(${item.alias || \"-\"})`,\n value: item.name\n };\n });\n };\n this.listProjects = async () => {\n getProjectList({ page: 0, pageSize: 0 }).then((res) => {\n this.setState({\n projects: res.projects || []\n });\n });\n };\n this.loadProjectRoles = async (name) => {\n getProjectRoles({ projectName: name }).then((res) => {\n this.setState({ roles: res?.roles || [] });\n });\n };\n this.field = new Field(this, {\n onChange: (name, value) => {\n if (name.endsWith(\"-name\")) {\n this.loadProjectRoles(value);\n }\n }\n });\n this.state = {\n businessGuideCode: 0,\n defaultProjectItems: []\n };\n }\n componentDidMount() {\n this.loadSystemInfo();\n this.listProjects();\n this.onGetDexConfig();\n }\n render() {\n const { systemInfo } = this.props;\n const { defaultProjectItems } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"container\" }, /* @__PURE__ */ React.createElement(Card, { locale: locale().Card, contentHeight: \"auto\", style: { marginBottom: \"var(--spacing-4)\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"setting-version\" }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 12 }, /* @__PURE__ */ React.createElement(Item, { label: \"Version\", value: systemInfo.systemVersion?.velaVersion })), /* @__PURE__ */ React.createElement(Col, { span: 12 }, /* @__PURE__ */ React.createElement(Item, { label: \"GitVersion\", value: systemInfo.systemVersion?.gitVersion }))))), /* @__PURE__ */ React.createElement(Form, { field: this.field, labelCol: { fixedSpan: 8 }, wrapperCol: { span: 16 } }, /* @__PURE__ */ React.createElement(\n Card,\n {\n style: { marginBottom: \"16px\" },\n locale: locale().Card,\n contentHeight: \"200px\",\n title: /* @__PURE__ */ React.createElement(Translation, null, \"User authentication configuration\")\n },\n /* @__PURE__ */ React.createElement(Row, { wrap: true }, /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Form.Item, { required: true, label: i18n.t(\"User login mode\").toString() }, /* @__PURE__ */ React.createElement(\n Radio.Group,\n {\n ...this.field.init(\"loginType\", {\n rules: [{ required: true }]\n })\n },\n /* @__PURE__ */ React.createElement(Radio, { value: \"local\", id: \"local\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Local\")),\n /* @__PURE__ */ React.createElement(Radio, { value: \"dex\", id: \"dex\" }, /* @__PURE__ */ React.createElement(Translation, null, \"SSO by dex\"))\n )), /* @__PURE__ */ React.createElement(If, { condition: this.field.getValue(\"loginType\") == \"dex\" }, /* @__PURE__ */ React.createElement(\"a\", { href: this.generateDexAddress(), target: \"_blank\", rel: \"noopener noreferrer\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Click me to open the dex login page\")))), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(\n Form.Item,\n {\n required: true,\n label: i18n.t(\"VelaUX address\").toString(),\n help: i18n.t(\"There will auto get the domain for access the VelaUX\").toString()\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n ...this.field.init(\"velaAddress\", {\n initValue: this.getIssuerDefaultValue(),\n rules: [{ required: true }]\n })\n }\n )\n )), /* @__PURE__ */ React.createElement(Col, { span: 24 }, /* @__PURE__ */ React.createElement(Form.Item, { label: i18n.t(\"Setting the default projects for the dex login user\").toString() }, /* @__PURE__ */ React.createElement(\"div\", { className: \"flexright\", style: { marginBottom: \"8px\" } }, /* @__PURE__ */ React.createElement(Button, { onClick: this.onAddItem }, /* @__PURE__ */ React.createElement(AiOutlinePlus, null))), defaultProjectItems.map((item) => {\n return /* @__PURE__ */ React.createElement(Row, { id: item.id, key: item.id }, /* @__PURE__ */ React.createElement(Col, { span: 8, style: { padding: \"0 4px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { labelAlign: \"inset\", required: true, label: i18n.t(\"Project\").toString() }, /* @__PURE__ */ React.createElement(\n Select,\n {\n locale: locale().Select,\n ...this.field.init(`${item.id}-name`, {\n rules: [{ required: true }],\n initValue: item.name\n }),\n dataSource: this.generateProjectOptions()\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 12, style: { padding: \"0 4px\" } }, /* @__PURE__ */ React.createElement(Form.Item, { labelAlign: \"inset\", required: true, label: i18n.t(\"Roles\").toString() }, /* @__PURE__ */ React.createElement(\n CustomSelect,\n {\n locale: locale().Select,\n ...this.field.init(`${item.id}-roles`, {\n rules: [{ required: true }],\n initValue: item.roles\n }),\n dataSource: this.generateProjectRoleOptions(),\n mode: \"multiple\"\n }\n ))), /* @__PURE__ */ React.createElement(Col, { span: 4 }, /* @__PURE__ */ React.createElement(\"div\", { className: \"flexright\" }, /* @__PURE__ */ React.createElement(Button, { onClick: () => this.onRemoveItem(item.id) }, /* @__PURE__ */ React.createElement(AiOutlineDelete, null)))));\n }))))\n ), /* @__PURE__ */ React.createElement(\n Card,\n {\n style: { marginBottom: \"16px\" },\n locale: locale().Card,\n contentHeight: \"200px\",\n title: /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, \"User experience improvement plan\"), /* @__PURE__ */ React.createElement(\n \"a\",\n {\n target: \"_blank\",\n href: \"https://kubevela.io/docs/reference/user-improvement-plan\",\n rel: \"noopener noreferrer\"\n },\n /* @__PURE__ */ React.createElement(MdOutlineHelpCenter, { size: 16, style: { marginLeft: \"4px\" } })\n ))\n },\n /* @__PURE__ */ React.createElement(\n Item,\n {\n label: i18n.t(\"Contribution\"),\n value: /* @__PURE__ */ React.createElement(\n Switch,\n {\n size: \"medium\",\n ...this.field.init(\"enableCollection\", {\n rules: [{ required: true }],\n initValue: systemInfo.enableCollection\n }),\n checked: this.field.getValue(\"enableCollection\")\n }\n )\n }\n )\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"flexright\" }, /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: this.onUpdate }, /* @__PURE__ */ React.createElement(Translation, null, \"Submit\")))));\n }\n};\nPlatformSetting = __decorateClass([\n connect((store) => {\n return { ...store.user };\n })\n], PlatformSetting);\nexport default PlatformSetting;\n","\"use strict\";\nconst builtInPlugins = {};\nexport default builtInPlugins;\n","\"use strict\";\nimport { getBackendSrv } from \"../BackendService\";\nimport { managePlugin } from \"../../api/productionLink\";\nconst cache = {};\nconst initializedAt = Date.now();\nconst pluginInfoCache = {};\nfunction formatPluginId(pluginId) {\n return \"$\" + pluginId;\n}\nexport function getPluginInfo(id) {\n const pluginId = formatPluginId(id);\n const v = pluginInfoCache[pluginId];\n if (v) {\n return Promise.resolve(v);\n }\n return getBackendSrv().get(`${managePlugin}/${id}`).then((settings) => {\n pluginInfoCache[pluginId] = settings;\n return settings;\n }).catch((err) => {\n return Promise.reject(new Error(\"Unknown Plugin\"));\n });\n}\nexport const clearPluginSettingsCache = (id) => {\n const pluginId = formatPluginId(id);\n if (pluginId) {\n return delete pluginInfoCache[pluginId];\n }\n return Object.keys(pluginInfoCache).forEach((key) => delete pluginInfoCache[key]);\n};\nexport function registerPluginInCache({ path, version }) {\n if (!cache[path]) {\n cache[path] = encodeURI(version);\n }\n}\nexport function invalidatePluginInCache(pluginId) {\n const path = `plugins/${pluginId}/module`;\n if (cache[path]) {\n delete cache[path];\n }\n clearPluginSettingsCache(pluginId);\n}\nexport function locateWithCache(load, defaultBust = initializedAt) {\n const { address } = load;\n const path = extractPath(address);\n if (!path) {\n return `${address}?_cache=${defaultBust}`;\n }\n const version = cache[path];\n const bust = version || defaultBust;\n return `${address}?_cache=${bust}`;\n}\nfunction extractPath(address) {\n const match = /\\/public\\/(plugins\\/.+\\/module)\\.js/i.exec(address);\n if (!match) {\n return;\n }\n const [_, path] = match;\n if (!path) {\n return;\n }\n return path;\n}\n","\"use strict\";\nimport System from \"systemjs/dist/system.js\";\nimport _ from \"lodash\";\nimport moment from \"moment\";\nimport react from \"react\";\nimport * as velauxData from \"@velaux/data\";\nimport { AppPagePlugin, PluginType } from \"@velaux/data\";\nimport * as velauxUI from \"../types\";\nimport * as ReactDom from \"react-dom\";\nimport * as DvaRouter from \"dva/router\";\nimport * as Redux from \"redux\";\nimport builtInPlugins from \"./plugin/BuiltInPlugins\";\nimport { getPluginInfo, locateWithCache, registerPluginInCache } from \"./plugin/PluginCache\";\nimport { getBackendSrv } from \"./BackendService\";\nexport const SystemJS = System;\nSystemJS.registry.set(\"plugin-loader\", SystemJS.newModule({ locate: locateWithCache }));\nSystemJS.config({\n baseURL: \"/public\",\n defaultExtension: \"js\",\n packages: {\n plugins: {\n defaultExtension: \"js\"\n }\n },\n meta: {\n \"/*\": {\n esModule: true,\n authorization: false,\n loader: \"plugin-loader\"\n }\n }\n});\nexport function exposeToPlugin(name, component) {\n SystemJS.registerDynamic(name, [], true, (require, exports, module) => {\n module.exports = component;\n });\n}\nexposeToPlugin(\"lodash\", _);\nexposeToPlugin(\"moment\", moment);\nexposeToPlugin(\"@velaux/data\", velauxData);\nexposeToPlugin(\"@velaux/ui\", velauxUI);\nexposeToPlugin(\"react\", react);\nexposeToPlugin(\"react-dom\", ReactDom);\nexposeToPlugin(\"redux\", Redux);\nexposeToPlugin(\"dva/router\", DvaRouter);\nexport async function importPluginModule(path, version) {\n if (version) {\n registerPluginInCache({ path, version });\n }\n const builtIn = builtInPlugins[path];\n if (builtIn) {\n if (typeof builtIn === \"function\") {\n return await builtIn();\n } else {\n return builtIn;\n }\n }\n return SystemJS.import(path);\n}\nexport function importAppPagePlugin(meta) {\n return importPluginModule(meta.module, meta.info?.version).then((pluginExports) => {\n const plugin = pluginExports.plugin ? pluginExports.plugin : new AppPagePlugin();\n plugin.init(meta);\n plugin.meta = meta;\n return plugin;\n });\n}\nexport class PluginWrapper {\n constructor() {\n }\n listAppPagePlugins() {\n return getBackendSrv().get(\"/api/v1/plugins\").then((res) => {\n if (res) {\n const plugins = res.plugins ? res.plugins : [];\n return Promise.resolve(plugins.filter((p) => p.type === PluginType.PageApp));\n }\n return Promise.reject(new Error(\"Unknown Plugins\"));\n });\n }\n async loadMeta(pluginID) {\n return getPluginInfo(pluginID);\n }\n}\nlet pluginService = new PluginWrapper();\nexport const getPluginSrv = () => pluginService;\n","\"use strict\";\nimport { MenuTypes } from \"@velaux/data\";\nimport * as React from \"react\";\nimport _ from \"lodash\";\nimport { FaLayerGroup } from \"react-icons/fa\";\nimport {\n AiFillCodeSandboxCircle,\n AiFillEnvironment,\n AiFillProject,\n AiFillSetting,\n AiOutlineCluster\n} from \"react-icons/ai\";\nimport { BsFileEarmarkPerson, BsFillFileCodeFill, BsHddNetworkFill, BsPlugin } from \"react-icons/bs\";\nimport { RiUserSettingsFill } from \"react-icons/ri\";\nimport { MdConfirmationNumber } from \"react-icons/md\";\nimport { locationService } from \"./LocationService\";\nimport { checkPermission } from \"../utils/permission\";\nimport { getPluginSrv } from \"./PluginService\";\nconst defaultWorkspaces = [\n {\n name: \"continuous-delivery\",\n label: \"Continuous Delivery\",\n rootRoute: \"/applications\",\n icon: /* @__PURE__ */ React.createElement(FaLayerGroup, null)\n },\n {\n name: \"extension\",\n label: \"Extension\",\n rootRoute: \"/addons\",\n icon: /* @__PURE__ */ React.createElement(BsPlugin, null)\n },\n {\n name: \"admin\",\n label: \"Admin Dashboard\",\n rootRoute: \"/clusters\",\n icon: /* @__PURE__ */ React.createElement(AiFillSetting, null)\n }\n];\nconst defaultWorkspaceMenus = [\n {\n workspace: \"continuous-delivery\",\n type: MenuTypes.Workspace,\n icon: /* @__PURE__ */ React.createElement(FaLayerGroup, null),\n name: \"applications\",\n label: \"Applications\",\n to: \"/applications\",\n permission: { resource: \"project:?/application:*\", action: \"list\" },\n relatedRoute: [\"/applications\"]\n },\n {\n workspace: \"continuous-delivery\",\n type: MenuTypes.Workspace,\n name: \"pipeline-list\",\n to: \"/pipelines\",\n relatedRoute: [/projects\\/.*\\/pipelines\\/.*/, \"/pipelines\"],\n icon: /* @__PURE__ */ React.createElement(BsHddNetworkFill, null),\n label: \"Pipelines\",\n permission: { resource: \"project:?/pipeline:*\", action: \"list\" }\n },\n {\n workspace: \"continuous-delivery\",\n to: \"/envs\",\n type: MenuTypes.Workspace,\n icon: /* @__PURE__ */ React.createElement(AiFillEnvironment, null),\n label: \"Environments\",\n name: \"env-list\",\n permission: { resource: \"project:?/environment:*\", action: \"list\" },\n relatedRoute: [\"/envs\"]\n },\n {\n workspace: \"continuous-delivery\",\n type: MenuTypes.Workspace,\n to: \"/targets\",\n icon: /* @__PURE__ */ React.createElement(AiFillCodeSandboxCircle, null),\n label: \"Targets\",\n name: \"target-list\",\n permission: { resource: \"target:*\", action: \"list\" },\n relatedRoute: [\"/targets\"]\n },\n {\n workspace: \"continuous-delivery\",\n type: MenuTypes.Workspace,\n icon: /* @__PURE__ */ React.createElement(AiFillProject, null),\n name: \"projects\",\n label: \"Projects\",\n to: \"/projects\",\n relatedRoute: [\"/projects\"]\n },\n {\n workspace: \"extension\",\n type: MenuTypes.Workspace,\n to: \"/addons\",\n icon: /* @__PURE__ */ React.createElement(BsPlugin, null),\n label: \"Addons\",\n name: \"addon-list\",\n permission: { resource: \"addon:*\", action: \"list\" },\n relatedRoute: [\"/addons\", /\\/manage\\/plugins.*/]\n },\n {\n workspace: \"extension\",\n type: MenuTypes.Workspace,\n to: \"/definitions\",\n icon: /* @__PURE__ */ React.createElement(BsFillFileCodeFill, null),\n label: \"Definitions\",\n name: \"definition-list\",\n permission: { resource: \"definition:*\", action: \"list\" },\n relatedRoute: [\"/definitions\"]\n },\n {\n type: MenuTypes.Workspace,\n workspace: \"admin\",\n to: \"/clusters\",\n icon: /* @__PURE__ */ React.createElement(AiOutlineCluster, null),\n label: \"Clusters\",\n name: \"cluster-list\",\n permission: { resource: \"cluster:*\", action: \"list\" },\n relatedRoute: [\"/clusters\"]\n },\n {\n workspace: \"admin\",\n type: MenuTypes.Workspace,\n to: \"/configs\",\n icon: /* @__PURE__ */ React.createElement(MdConfirmationNumber, null),\n label: \"Global Configs\",\n name: \"configs\",\n permission: { resource: \"config:*\", action: \"list\" },\n relatedRoute: [\"/configs\"]\n },\n {\n workspace: \"admin\",\n type: MenuTypes.Workspace,\n to: \"/platform/projects\",\n icon: /* @__PURE__ */ React.createElement(AiFillProject, null),\n label: \"Projects\",\n name: \"project-list\",\n permission: { resource: \"project:*\", action: \"list\" },\n relatedRoute: [\"/platform/projects$\"]\n },\n {\n workspace: \"admin\",\n type: MenuTypes.Workspace,\n to: \"/users\",\n icon: /* @__PURE__ */ React.createElement(RiUserSettingsFill, null),\n label: \"Users\",\n name: \"user-list\",\n permission: { resource: \"user:*\", action: \"list\" },\n relatedRoute: [\"/users\"]\n },\n {\n workspace: \"admin\",\n type: MenuTypes.Workspace,\n to: \"/roles\",\n icon: /* @__PURE__ */ React.createElement(BsFileEarmarkPerson, null),\n label: \"Platform Roles\",\n name: \"role-list\",\n permission: { resource: \"role:*\", action: \"list\" },\n relatedRoute: [\"^/roles$\"]\n },\n {\n workspace: \"admin\",\n type: MenuTypes.Workspace,\n to: \"/settings\",\n icon: /* @__PURE__ */ React.createElement(AiFillSetting, null),\n label: \"Settings\",\n name: \"settings\",\n permission: { resource: \"systemSetting\", action: \"update\" },\n relatedRoute: [\"/settings\"]\n }\n];\nexport class MenuWrapper {\n constructor() {\n this.loadPluginMenus = () => {\n if (this.pluginLoaded) {\n return Promise.resolve(this.menus);\n }\n return getPluginSrv().listAppPagePlugins().then((plugins) => {\n plugins.map((plugin) => {\n plugin.includes?.map((include) => {\n if (!this.workspaces.find((w) => w.name === include.workspace.name)) {\n include.workspace.rootRoute = include.to;\n this.workspaces.push(include.workspace);\n }\n if (!this.menus.find((m) => m.name == include.name)) {\n const pluginMenu = {\n workspace: include.workspace.name,\n type: include.type,\n name: include.name,\n label: include.label,\n to: include.to,\n relatedRoute: include.relatedRoute,\n permission: include.permission,\n catalog: include.catalog\n };\n this.menus.push(pluginMenu);\n }\n });\n });\n this.pluginLoaded = true;\n return Promise.resolve(this.menus);\n });\n };\n this.resetPluginMenus = () => {\n this.pluginLoaded = false;\n this.menus = _.cloneDeep(defaultWorkspaceMenus);\n this.workspaces = _.cloneDeep(defaultWorkspaces);\n };\n this.menus = _.cloneDeep(defaultWorkspaceMenus);\n this.workspaces = _.cloneDeep(defaultWorkspaces);\n this.pluginLoaded = false;\n }\n getWorkspace(name) {\n return this.workspaces.find((w) => w.name == name);\n }\n // This function should be called after calling the loadPluginMenus function\n loadCurrentWorkspace() {\n let w = void 0;\n this.menus.map((m) => {\n if (!w && this.matchMenu(m)) {\n w = this.getWorkspace(m.workspace);\n }\n });\n return w;\n }\n loadWorkspaces(user) {\n const availableWorkspaces = this.workspaces.filter((ws) => this.loadMenus(ws, user).length > 0);\n return availableWorkspaces;\n }\n // This function should be called after calling the loadPluginMenus function\n loadMenus(workspace, user) {\n let menus = [];\n this.menus.filter((menu) => menu.workspace == workspace.name).map((menu) => {\n if (!checkPermission(menu.permission, \"?\", user)) {\n return;\n }\n const catalog = menus.filter((m) => m.catalog == menu.catalog);\n const newMenu = Object.assign(menu, { active: this.matchMenu(menu) });\n if (catalog && catalog.length > 0) {\n catalog[0].menus.push(newMenu);\n } else {\n menus.push({ catalog: menu.catalog, menus: [newMenu] });\n }\n });\n return menus;\n }\n matchMenu(menu) {\n const currentPath = locationService.getPathName();\n let matched = false;\n menu.relatedRoute?.map((route) => {\n if (currentPath.match(route)) {\n matched = true;\n }\n });\n return matched;\n }\n loadProjectMenus(p) {\n return [];\n }\n loadApplicationEnvMenus(p, app, env) {\n return [];\n }\n}\nexport let menuService = new MenuWrapper();\n","\"use strict\";\nimport React from \"react\";\nconst nameUpper = (name) => {\n return name.split(\"-\").map((sep) => {\n if (sep.length > 0) {\n return sep.toUpperCase()[0];\n }\n return sep;\n }).toString().replace(\",\", \"\");\n};\nexport const renderIcon = (name, icon, size) => {\n console.log(icon);\n if (icon !== \"\" && icon !== \"null\" && icon !== void 0) {\n if (!icon.startsWith(\"/\")) {\n icon = \"/\" + icon;\n }\n return /* @__PURE__ */ React.createElement(\"img\", { style: { width: size ?? \"60px\", height: size ?? \"60px\" }, src: icon });\n } else {\n return /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n display: \"inline-block\",\n verticalAlign: \"middle\",\n padding: `2px 4px`,\n width: \"60px\",\n height: \"60px\",\n borderRadius: \"50%\",\n backgroundColor: \"#fff\",\n textAlign: \"center\",\n lineHeight: \"60px\"\n }\n },\n /* @__PURE__ */ React.createElement(\"span\", { style: { color: \"#1b58f4\", fontSize: `2em` } }, nameUpper(name))\n );\n }\n};\n","\"use strict\";\nimport * as React from \"react\";\nimport { Translation } from \"../../components\";\nimport { locationService } from \"../../services\";\nimport { getPluginSrv, importAppPagePlugin } from \"../../services/PluginService\";\nimport { Box, Button, Divider, Grid, Loading, Message, Tab } from \"@alifd/next\";\nimport \"./index.less\";\nimport { connect } from \"dva\";\nimport { renderIcon } from \"../../utils/icon\";\nfunction RootPage({ pluginId }) {\n const [app, setApp] = React.useState();\n React.useEffect(() => {\n loadAppPlugin(pluginId, setApp);\n }, [pluginId]);\n if (!app || !app.root) {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Translation, null, \"No root app page component found\"));\n }\n const AppRootPage2 = app.root;\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(AppRootPage2, { meta: app.meta, basename: locationService.getLocation().pathname }));\n}\nvar types = /* @__PURE__ */ ((types2) => {\n types2[types2[\"UPDATE_META\"] = 0] = \"UPDATE_META\";\n return types2;\n})(types || {});\nfunction ConfigPage({ pluginId, dispatch, pluginList, loading }) {\n const [app, setApp] = React.useState();\n const _meta = pluginList.filter((item) => item.id === pluginId)[0];\n const updateMeta = (previousState, action) => {\n if (action.type == 0 /* UPDATE_META */) {\n return { ...previousState, ...action.payload };\n }\n throw new Error(\"Unknown action type\");\n };\n const [meta, dispatchMeta] = React.useReducer(updateMeta, _meta);\n const handleJSONChange = (key, value) => {\n const newJsonData = { ...meta.jsonSetting };\n newJsonData[key] = value;\n meta.jsonSetting = newJsonData;\n setApp({ ...app, meta });\n };\n const handleSecureJSONChange = (key, value) => {\n const newSecureJsonData = { ...meta.secureJsonData };\n newSecureJsonData[key] = value;\n meta.secureJsonData = newSecureJsonData;\n setApp({ ...app, meta });\n };\n React.useEffect(() => {\n if (!meta) {\n getPluginSrv().loadMeta(pluginId).then(\n (m) => {\n dispatchMeta({\n type: 0 /* UPDATE_META */,\n payload: m\n });\n }\n );\n }\n }, [meta, pluginId]);\n React.useEffect(() => {\n if (!meta) {\n return;\n }\n importAppPagePlugin(meta).then((pageApp) => {\n setApp(pageApp);\n }).catch((err) => {\n console.log(err);\n });\n }, [meta]);\n if (!meta || !app || !app.configPages || !app.configPages.body) {\n return /* @__PURE__ */ React.createElement(\"div\", null, /* @__PURE__ */ React.createElement(Translation, null, \"No config app page component found\"));\n }\n const { Col, Row } = Grid;\n const isEnabled = meta.enabled;\n const isInstalled = !!meta.info;\n const saveSetting = () => {\n dispatch({\n type: \"plugins/setPlugin\",\n payload: {\n id: pluginId,\n jsonData: meta.jsonSetting,\n secureJsonData: meta.secureJsonData\n },\n callback: () => {\n Message.success(\"Setting saved\");\n }\n });\n };\n const saveAndEnable = () => {\n dispatch({\n type: \"plugins/enablePlugin\",\n payload: {\n id: pluginId,\n jsonData: meta.jsonSetting,\n secureJsonData: meta.secureJsonData\n },\n callback: () => {\n meta.enabled = true;\n Message.success(\"Plugin enabled\");\n }\n });\n };\n const disablePlugin = (id) => {\n dispatch({\n type: \"plugins/disablePlugin\",\n payload: { id },\n callback: () => {\n meta.enabled = false;\n Message.success(\"Plugin disabled\");\n }\n });\n };\n const uninstallPlugin = (id) => {\n dispatch({\n type: \"plugins/uninstallPlugin\",\n payload: { id },\n callback: () => {\n const history = locationService.getHistory();\n history.push(\"/plugins\");\n }\n });\n };\n const handleGotoPlugins = () => {\n const history = locationService.getHistory();\n history.push(\"/manage/plugins\");\n };\n const AppConfigPage2 = app.configPages.body;\n return /* @__PURE__ */ React.createElement(Box, null, /* @__PURE__ */ React.createElement(Loading, { visible: loading.models.plugins ?? false, fullScreen: true }), /* @__PURE__ */ React.createElement(Box, { className: \"container\" }, /* @__PURE__ */ React.createElement(Box, { className: \"page-header\", direction: \"row\", spacing: 12 }, /* @__PURE__ */ React.createElement(\"span\", { className: \"page-header-logo\" }, renderIcon(meta.id, meta.info?.logos.large, \"80px\")), /* @__PURE__ */ React.createElement(Box, { direction: \"column\" }, /* @__PURE__ */ React.createElement(\"h1\", { className: \"page-header-title\" }, /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(\"a\", { onClick: handleGotoPlugins }, \"Plugins\"), \" / \", meta.name)), /* @__PURE__ */ React.createElement(\"h4\", { className: \"font-size-14\" }, meta.info.description ?? \"No descriptions\")), /* @__PURE__ */ React.createElement(Box, { style: { marginLeft: \"auto\" }, align: \"flex-end\", direction: \"row\", justify: \"flex-end\" }, /* @__PURE__ */ React.createElement(Box, { justify: \"space-between\", style: { height: \"100%\" } }, /* @__PURE__ */ React.createElement(Row, { className: \"basic-info font-size-16\", justify: \"end\" }, /* @__PURE__ */ React.createElement(Col, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"info-item-title\" }, \"Version\"), /* @__PURE__ */ React.createElement(\"div\", null, meta.info.version)), /* @__PURE__ */ React.createElement(Col, null, /* @__PURE__ */ React.createElement(Divider, { direction: \"ver\", style: { height: \"100%\" } })), /* @__PURE__ */ React.createElement(Col, null, /* @__PURE__ */ React.createElement(Box, { direction: \"column\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"info-item-title\" }, \"Author\"), /* @__PURE__ */ React.createElement(\"div\", null, meta.info.author?.name ?? \"Unknown\"))), /* @__PURE__ */ React.createElement(Col, null, /* @__PURE__ */ React.createElement(Divider, { direction: \"ver\", style: { height: \"100%\" } })), /* @__PURE__ */ React.createElement(Col, { className: \"info-item\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"info-item-title\" }, \"Status\"), /* @__PURE__ */ React.createElement(\"div\", null, meta.enabled ? /* @__PURE__ */ React.createElement(Translation, { className: \"status-enabled\" }, \"Enabled\") : /* @__PURE__ */ React.createElement(Translation, { className: \"status-disabled\" }, \"Disabled\")))), /* @__PURE__ */ React.createElement(Box, { direction: \"row\", justify: \"flex-end\", spacing: 8 }, isInstalled && /* @__PURE__ */ React.createElement(\n Button,\n {\n disabled: meta?.addon === void 0,\n warning: true,\n onClick: () => uninstallPlugin(pluginId)\n },\n \"Uninstall\"\n )))))), /* @__PURE__ */ React.createElement(Box, { className: \"container\" }, /* @__PURE__ */ React.createElement(Tab, null, /* @__PURE__ */ React.createElement(Tab.Item, { title: \"Config\" }, /* @__PURE__ */ React.createElement(Box, { style: { backgroundColor: \"#FFF\", padding: \"0 10px\" } }, /* @__PURE__ */ React.createElement(\n AppConfigPage2,\n {\n plugin: app,\n query: {},\n onJSONDataChange: handleJSONChange,\n onSecureJSONDataChange: handleSecureJSONChange\n }\n ), /* @__PURE__ */ React.createElement(Box, { direction: \"row\", justify: \"center\", spacing: 10, margin: 20 }, !isEnabled && /* @__PURE__ */ React.createElement(Button, { type: \"normal\", onClick: saveSetting }, \"Save\"), !isEnabled && /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: saveAndEnable }, \"Save & Enable\"), isEnabled && /* @__PURE__ */ React.createElement(Button, { type: \"primary\", onClick: saveSetting }, \"Save\"), isEnabled && /* @__PURE__ */ React.createElement(Button, { type: \"normal\", warning: true, onClick: () => disablePlugin(pluginId) }, \"Disable\")))))));\n}\nasync function loadAppPlugin(pluginId, setApp) {\n try {\n const app = await getPluginSrv().loadMeta(pluginId);\n if (app && \"type\" in app) {\n return importAppPagePlugin(app).then((pageApp) => {\n setApp(pageApp);\n }).catch((err) => {\n console.log(err);\n });\n }\n } catch (err) {\n console.log(err);\n }\n}\nconst mapStateToProps = (store) => ({\n ...store.plugins,\n loading: store.loading\n});\nexport const AppConfigPage = connect(mapStateToProps)(ConfigPage);\nexport const AppRootPage = connect(mapStateToProps)(RootPage);\n","\"use strict\";\nimport { Redirect, Route, Switch } from \"dva/router\";\nimport React from \"react\";\nimport Addons from \"../../pages/Addons/index\";\nimport ApplicationConfig from \"../../pages/ApplicationConfig\";\nimport ApplicationEnvRoute from \"../../pages/ApplicationEnvRoute\";\nimport ApplicationInstanceList from \"../../pages/ApplicationInstanceList\";\nimport Application from \"../../pages/ApplicationList\";\nimport ApplicationLog from \"../../pages/ApplicationLog\";\nimport ApplicationRevisionList from \"../../pages/ApplicationRevisionList\";\nimport ApplicationStatus from \"../../pages/ApplicationStatus\";\nimport ApplicationWorkflowList from \"../../pages/ApplicationWorkflowList\";\nimport ApplicationWorkflowStatus from \"../../pages/ApplicationWorkflowStatus/index\";\nimport ApplicationWorkflowStudio from \"../../pages/ApplicationWorkflowStudio\";\nimport Clusters from \"../../pages/Cluster/index\";\nimport Configs from \"../../pages/Configs\";\nimport Definitions from \"../../pages/Definitions\";\nimport EnvPage from \"../../pages/EnvPage\";\nimport NotFound from \"../../pages/NotFound\";\nimport PipelineListPage from \"../../pages/PipelineListPage\";\nimport PipelineRunPage from \"../../pages/PipelineRunPage\";\nimport PipelineStudio from \"../../pages/PipelineStudio\";\nimport ProjectApplications from \"../../pages/ProjectApplications\";\nimport ProjectMembers from \"../../pages/ProjectMembers\";\nimport ProjectPipelines from \"../../pages/ProjectPipelines\";\nimport ProjectRoles from \"../../pages/ProjectRoles\";\nimport ProjectSummary from \"../../pages/ProjectSummary\";\nimport Projects from \"../../pages/Projects\";\nimport Roles from \"../../pages/Roles\";\nimport TargetList from \"../../pages/TargetList\";\nimport UiSchema from \"../../pages/UiSchema\";\nimport Users from \"../../pages/Users\";\nimport ApplicationLayout from \"../Application\";\nimport ConfigsLayout from \"../Configs\";\nimport DefinitionDetails from \"../DefinitionDetails\";\nimport DefinitionsLayout from \"../Definitions\";\nimport ProjectLayout from \"../Project\";\nimport MyProjectList from \"../../pages/MyProjectList\";\nimport PlatformSetting from \"../../pages/PlatformSetting\";\nimport { AppConfigPage, AppRootPage } from \"../AppRootPage\";\nexport default function Router() {\n return /* @__PURE__ */ React.createElement(Switch, null, /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/\",\n render: () => {\n return /* @__PURE__ */ React.createElement(Redirect, { to: \"/applications\" });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(MyProjectList, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Application, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Redirect, { to: `/applications/${props.match.params.appName}/config` });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/config\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationConfig, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/revisions\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationRevisionList, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/envbinding\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationEnvRoute, { ...props }), \";\");\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/workflows\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationWorkflowList, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/envbinding/:envName\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(\n Redirect,\n {\n to: `/applications/${props.match.params.appName}/envbinding/${props.match.params.envName}/status`\n }\n );\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/envbinding/:envName/instances\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationInstanceList, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/envbinding/:envName/status\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationStatus, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/envbinding/:envName/workflow\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationWorkflowStatus, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/envbinding/:envName/workflow/records/:record\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationWorkflowStatus, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/envbinding/:envName/workflow/:workflowName/studio\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationWorkflowStudio, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/applications/:appName/envbinding/:envName/logs\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ApplicationLayout, { ...props }, /* @__PURE__ */ React.createElement(ApplicationLog, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/envs\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(EnvPage, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/pipelines\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(PipelineListPage, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects/:projectName/pipelines/:pipelineName/runs/:runName\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(PipelineRunPage, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects/:projectName/pipelines/:pipelineName/studio\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(PipelineStudio, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n path: \"/targets\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(TargetList, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n path: \"/clusters\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Clusters, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n path: \"/addons/:addonName\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Addons, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n path: \"/addons\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Addons, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n path: \"/users\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Users, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/platform/projects\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Projects, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects/:projectName\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Redirect, { to: `/projects/${props.match.params.projectName}/summary` });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects/:projectName/summary\",\n render: (props) => {\n const mergeProps = { ...props, ...{ activeId: \"summary\" } };\n return /* @__PURE__ */ React.createElement(ProjectLayout, { ...mergeProps }, /* @__PURE__ */ React.createElement(ProjectSummary, { ...mergeProps }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects/:projectName/applications\",\n render: (props) => {\n const mergeProps = { ...props, ...{ activeId: \"applications\" } };\n return /* @__PURE__ */ React.createElement(ProjectLayout, { ...mergeProps }, /* @__PURE__ */ React.createElement(ProjectApplications, { ...mergeProps }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects/:projectName/pipelines\",\n render: (props) => {\n const mergeProps = { ...props, ...{ activeId: \"pipelines\" } };\n return /* @__PURE__ */ React.createElement(ProjectLayout, { ...mergeProps }, /* @__PURE__ */ React.createElement(ProjectPipelines, { ...mergeProps }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects/:projectName/roles\",\n render: (props) => {\n const mergeProps = { ...props, ...{ activeId: \"roles\" } };\n return /* @__PURE__ */ React.createElement(ProjectLayout, { ...mergeProps }, /* @__PURE__ */ React.createElement(ProjectRoles, { ...mergeProps }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/projects/:projectName/members\",\n render: (props) => {\n const mergeProps = { ...props, ...{ activeId: \"members\" } };\n return /* @__PURE__ */ React.createElement(ProjectLayout, { ...mergeProps }, /* @__PURE__ */ React.createElement(ProjectMembers, { ...mergeProps }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/roles\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Roles, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/configs\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ConfigsLayout, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/configs/:templateName\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Redirect, { to: `/configs/${props.match.params.templateName}/config` });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/configs/:templateName/config\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(ConfigsLayout, { ...props }, /* @__PURE__ */ React.createElement(Configs, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/definitions\",\n render: () => {\n return /* @__PURE__ */ React.createElement(Redirect, { to: `/definitions/component/config` });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/definitions/:definitionType\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Redirect, { to: `/definitions/${props.match.params.definitionType}/config` });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/definitions/:definitionType/config\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(DefinitionsLayout, { ...props }, /* @__PURE__ */ React.createElement(Definitions, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/definitions/:definitionType/:definitionName/ui-schema\",\n render: (props) => {\n const mergeProps = { ...props, ...{ activeId: \"uiSchema\" } };\n return /* @__PURE__ */ React.createElement(DefinitionDetails, { ...mergeProps }, /* @__PURE__ */ React.createElement(UiSchema, { ...props }));\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n path: \"/settings\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(PlatformSetting, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/manage/plugins\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(Addons, { plugin: true, ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n path: \"/manage/plugins/:pluginId/config\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(AppConfigPage, { pluginId: props.match.params.pluginId });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n path: \"/plugins/:pluginId\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(AppRootPage, { pluginId: props.match.params.pluginId });\n }\n }\n ), /* @__PURE__ */ React.createElement(Route, { path: \"/notFound\", component: NotFound }), /* @__PURE__ */ React.createElement(Redirect, { to: \"/notFound\" }));\n}\n","\"use strict\";\nimport { connect } from \"dva\";\nimport { Link } from \"dva/router\";\nimport React, { useEffect, useState } from \"react\";\nimport { locationService } from \"../../services/LocationService\";\nimport { Translation } from \"../../components/Translation\";\nimport { menuService } from \"../../services/MenuService\";\nimport \"./index.less\";\nimport { checkPermission } from \"../../types\";\nimport { getConfigs } from \"../../api/config\";\nimport { MenuTypes } from \"@velaux/data\";\nimport { MdOutlineMonitorHeart } from \"react-icons/md\";\nimport { If } from \"../../components/If\";\nconst LeftMenuModule = (props) => {\n const path = locationService.getPathName();\n const [menus, setMenus] = useState();\n const [grafanaConfigs, setGrafanaConfigs] = useState();\n useEffect(() => {\n if (checkPermission({ resource: \"config\", action: \"list\" }, \"\", props.userInfo)) {\n getConfigs(\"grafana\").then((res) => {\n if (res) {\n setGrafanaConfigs(res.configs || []);\n }\n });\n }\n }, [props.userInfo]);\n useEffect(() => {\n menuService.resetPluginMenus();\n menuService.loadPluginMenus().then(() => {\n const workspace = menuService.loadCurrentWorkspace();\n const menus2 = workspace && props.userInfo ? menuService.loadMenus(workspace, props.userInfo) : [];\n if (grafanaConfigs && workspace?.name === \"extension\") {\n const grafanaLeftMenu = { catalog: \"Grafana\", menus: [] };\n grafanaConfigs.map((g) => {\n if (g.properties && g.properties[\"endpoint\"]) {\n grafanaLeftMenu.menus.push({\n name: g.name,\n workspace: \"extension\",\n label: g.alias || g.name,\n to: \"\",\n href: g.properties[\"endpoint\"],\n relatedRoute: [],\n type: MenuTypes.Workspace,\n icon: /* @__PURE__ */ React.createElement(MdOutlineMonitorHeart, null)\n });\n }\n });\n menus2.push(grafanaLeftMenu);\n }\n setMenus(menus2);\n });\n }, [props.userInfo, path, grafanaConfigs, props.pluginList]);\n if (!props.userInfo) {\n return /* @__PURE__ */ React.createElement(\"div\", null);\n }\n let fallBackCatalog = 0;\n const childrenSlider = menus?.map((item) => {\n const ele = [];\n if (item.menus && item.menus.length > 0) {\n item.menus.map((childrenItem) => {\n const item2 = /* @__PURE__ */ React.createElement(\n \"div\",\n {\n style: {\n display: \"flex\",\n alignItems: \"center\"\n }\n },\n childrenItem.icon,\n /* @__PURE__ */ React.createElement(\"span\", { className: \"menu-item-text\" }, /* @__PURE__ */ React.createElement(Translation, null, childrenItem.label))\n );\n const childrenArr = /* @__PURE__ */ React.createElement(\"li\", { className: \"nav-item\", key: childrenItem.name }, /* @__PURE__ */ React.createElement(If, { condition: childrenItem.href }, /* @__PURE__ */ React.createElement(\n \"a\",\n {\n rel: \"noopener noreferrer\",\n target: \"_blank\",\n className: childrenItem.active ? \"menu-item-active\" : \"menu-item\",\n href: childrenItem.href\n },\n item2\n )), /* @__PURE__ */ React.createElement(If, { condition: childrenItem.to && !childrenItem.href }, /* @__PURE__ */ React.createElement(Link, { to: childrenItem.to, className: childrenItem.active ? \"menu-item-active\" : \"menu-item\" }, item2)));\n ele.push(childrenArr);\n });\n }\n if (ele.length > 0) {\n return /* @__PURE__ */ React.createElement(\"li\", { className: \"nav-container\", key: item.catalog ? item.catalog : fallBackCatalog++ }, item.catalog && /* @__PURE__ */ React.createElement(\"div\", { className: \"main-nav padding-left-32\" }, /* @__PURE__ */ React.createElement(Translation, null, item.catalog)), /* @__PURE__ */ React.createElement(\"ul\", { className: \"sub-wrapper\" }, ele));\n }\n return null;\n });\n return /* @__PURE__ */ React.createElement(\"div\", { style: { position: \"relative\", height: \"100%\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"slide-wrapper\" }, /* @__PURE__ */ React.createElement(\"ul\", { className: \"ul-wrapper\" }, childrenSlider)));\n};\nexport default connect(\n (store) => {\n return { ...store.user, ...store.plugins };\n },\n void 0,\n void 0,\n { pure: false }\n)(LeftMenuModule);\n","\"use strict\";\nimport React, { useState } from \"react\";\nimport \"./index.less\";\nimport { Dropdown, Menu } from \"@alifd/next\";\nimport { useTranslation } from \"react-i18next\";\nimport { TbLanguage } from \"react-icons/tb\";\nimport { getLanguage } from \"../../utils/common\";\nconst SwitchLanguage = () => {\n const { i18n } = useTranslation();\n const _isEnglish = getLanguage() === \"en\";\n const [isEnglish, setIsEnglish] = useState(_isEnglish);\n return /* @__PURE__ */ React.createElement(Dropdown, { trigger: /* @__PURE__ */ React.createElement(TbLanguage, { size: \"18\" }) }, /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(\n Menu.Item,\n {\n onClick: () => {\n i18n.changeLanguage(\"en\");\n localStorage.setItem(\"lang\", \"en\");\n setIsEnglish(true);\n }\n },\n \"English \",\n isEnglish ? \"(Now)\" : \"\"\n ), /* @__PURE__ */ React.createElement(\n Menu.Item,\n {\n onClick: () => {\n i18n.changeLanguage(\"zh\");\n localStorage.setItem(\"lang\", \"zh\");\n setIsEnglish(false);\n }\n },\n \"\\u4E2D\\u6587\",\n !isEnglish ? \"(\\u5F53\\u524D)\" : \"\"\n )));\n};\nexport default SwitchLanguage;\n","\"use strict\";\nimport cookie from \"react-cookies\";\nexport function setData(key, value, expire) {\n cookie.save(key, value, { expires: expire });\n}\nexport function getData(key) {\n return cookie.load(key);\n}\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport { Drawer } from \"@alifd/next\";\nimport { connect } from \"dva\";\nimport React, { Component } from \"react\";\nimport { AiOutlineFullscreen } from \"react-icons/ai\";\nimport { prepareCloudShell } from \"../../api/users\";\nimport { If } from \"../../components/If\";\nimport { getToken } from \"../../utils/storage\";\nimport \"./index.less\";\nlet CloudShell = class extends Component {\n constructor(props) {\n super(props);\n this.prepare = () => {\n prepareCloudShell().then((res) => {\n this.setState({ prepare: res, preparePadding: res.status != \"Completed\" });\n if (res.status == \"Preparing\") {\n setTimeout(() => {\n this.prepare();\n }, 2e3);\n }\n });\n };\n this.onClose = () => {\n if (this.props.dispatch) {\n this.props.dispatch({\n type: \"cloudshell/close\"\n });\n }\n };\n this.loadFullScreenAddress = () => {\n const { BASE_DOMAIN } = process.env;\n let domain = BASE_DOMAIN || \"\";\n if (!domain) {\n domain = document.location.origin;\n }\n return `${domain}/view/cloudshell?token=${getToken()}`;\n };\n this.state = {\n preparePadding: true\n };\n }\n componentDidMount() {\n this.prepare();\n }\n renderPrepareView() {\n const { prepare } = this.state;\n const message = prepare?.message ? `${prepare?.status}:${prepare?.message}` : prepare?.status;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"prepare\" }, /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\",\n viewBox: \"0 0 1024 1024\",\n color: \"#fff\",\n height: \"60\",\n width: \"60\",\n xmlns: \"http://www.w3.org/2000/svg\",\n style: { color: \"rgb(255, 255, 255)\" }\n },\n /* @__PURE__ */ React.createElement(\"path\", { d: \"M924.8 625.7l-65.5-56c3.1-19 4.7-38.4 4.7-57.8s-1.6-38.8-4.7-57.8l65.5-56a32.03 32.03 0 0 0 9.3-35.2l-.9-2.6a443.74 443.74 0 0 0-79.7-137.9l-1.8-2.1a32.12 32.12 0 0 0-35.1-9.5l-81.3 28.9c-30-24.6-63.5-44-99.7-57.6l-15.7-85a32.05 32.05 0 0 0-25.8-25.7l-2.7-.5c-52.1-9.4-106.9-9.4-159 0l-2.7.5a32.05 32.05 0 0 0-25.8 25.7l-15.8 85.4a351.86 351.86 0 0 0-99 57.4l-81.9-29.1a32 32 0 0 0-35.1 9.5l-1.8 2.1a446.02 446.02 0 0 0-79.7 137.9l-.9 2.6c-4.5 12.5-.8 26.5 9.3 35.2l66.3 56.6c-3.1 18.8-4.6 38-4.6 57.1 0 19.2 1.5 38.4 4.6 57.1L99 625.5a32.03 32.03 0 0 0-9.3 35.2l.9 2.6c18.1 50.4 44.9 96.9 79.7 137.9l1.8 2.1a32.12 32.12 0 0 0 35.1 9.5l81.9-29.1c29.8 24.5 63.1 43.9 99 57.4l15.8 85.4a32.05 32.05 0 0 0 25.8 25.7l2.7.5a449.4 449.4 0 0 0 159 0l2.7-.5a32.05 32.05 0 0 0 25.8-25.7l15.7-85a350 350 0 0 0 99.7-57.6l81.3 28.9a32 32 0 0 0 35.1-9.5l1.8-2.1c34.8-41.1 61.6-87.5 79.7-137.9l.9-2.6c4.5-12.3.8-26.3-9.3-35zM788.3 465.9c2.5 15.1 3.8 30.6 3.8 46.1s-1.3 31-3.8 46.1l-6.6 40.1 74.7 63.9a370.03 370.03 0 0 1-42.6 73.6L721 702.8l-31.4 25.8c-23.9 19.6-50.5 35-79.3 45.8l-38.1 14.3-17.9 97a377.5 377.5 0 0 1-85 0l-17.9-97.2-37.8-14.5c-28.5-10.8-55-26.2-78.7-45.7l-31.4-25.9-93.4 33.2c-17-22.9-31.2-47.6-42.6-73.6l75.5-64.5-6.5-40c-2.4-14.9-3.7-30.3-3.7-45.5 0-15.3 1.2-30.6 3.7-45.5l6.5-40-75.5-64.5c11.3-26.1 25.6-50.7 42.6-73.6l93.4 33.2 31.4-25.9c23.7-19.5 50.2-34.9 78.7-45.7l37.9-14.3 17.9-97.2c28.1-3.2 56.8-3.2 85 0l17.9 97 38.1 14.3c28.7 10.8 55.4 26.2 79.3 45.8l31.4 25.8 92.8-32.9c17 22.9 31.2 47.6 42.6 73.6L781.8 426l6.5 39.9zM512 326c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm79.2 255.2A111.6 111.6 0 0 1 512 614c-29.9 0-58-11.7-79.2-32.8A111.6 111.6 0 0 1 400 502c0-29.9 11.7-58 32.8-79.2C454 401.6 482.1 390 512 390c29.9 0 58 11.6 79.2 32.8A111.6 111.6 0 0 1 624 502c0 29.9-11.7 58-32.8 79.2z\" }),\n /* @__PURE__ */ React.createElement(\n \"animateTransform\",\n {\n attributeName: \"transform\",\n type: \"rotate\",\n from: \"0\",\n to: \"360\",\n dur: \"3s\",\n repeatCount: \"indefinite\"\n }\n )\n ), /* @__PURE__ */ React.createElement(\"span\", { style: { marginTop: \"8px\", fontWeight: 500 } }, \"Prepare The Cloud Shell\"), /* @__PURE__ */ React.createElement(\"span\", { style: { marginTop: \"8px\" } }, message));\n }\n renderCloudShellView() {\n const { BASE_DOMAIN } = process.env;\n return /* @__PURE__ */ React.createElement(\n \"iframe\",\n {\n width: \"100%\",\n height: \"100%\",\n src: `${BASE_DOMAIN || \"\"}/view/cloudshell?token=${getToken()}`\n }\n );\n }\n render() {\n const { show } = this.props;\n const { preparePadding } = this.state;\n return /* @__PURE__ */ React.createElement(\n Drawer,\n {\n visible: show,\n closeMode: \"close\",\n closeable: \"close\",\n className: \"cloudshell-layout\",\n placement: \"bottom\",\n height: \"500px\",\n width: \"100%\",\n onClose: this.onClose\n },\n /* @__PURE__ */ React.createElement(If, { condition: !preparePadding }, /* @__PURE__ */ React.createElement(\n \"a\",\n {\n className: \"full-screen\",\n target: \"_blank\",\n href: this.loadFullScreenAddress(),\n rel: \"noopener noreferrer\",\n title: \"Full Screen\"\n },\n /* @__PURE__ */ React.createElement(AiOutlineFullscreen, { color: \"#fff\" })\n )),\n /* @__PURE__ */ React.createElement(If, { condition: preparePadding }, this.renderPrepareView()),\n /* @__PURE__ */ React.createElement(If, { condition: !preparePadding }, this.renderCloudShellView())\n );\n }\n};\nCloudShell = __decorateClass([\n connect((store) => {\n return { ...store.cloudshell };\n })\n], CloudShell);\nexport default CloudShell;\n","\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __decorateClass = (decorators, target, key, kind) => {\n var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;\n for (var i = decorators.length - 1, decorator; i >= 0; i--)\n if (decorator = decorators[i])\n result = (kind ? decorator(target, key, result) : decorator(result)) || result;\n if (kind && result)\n __defProp(target, key, result);\n return result;\n};\nimport React, { Component } from \"react\";\nimport \"./index.less\";\nimport { Button, Dialog, Dropdown, Grid, Menu } from \"@alifd/next\";\nimport axios from \"axios\";\nimport { connect } from \"dva\";\nimport { Link, routerRedux } from \"dva/router\";\nimport {\n AiFillSetting,\n AiOutlineCode,\n AiOutlinePicLeft,\n AiOutlinePicRight\n} from \"react-icons/ai\";\nimport logo from \"../../assets/kubevela-logo-white.png\";\nimport { If } from \"../../components/If\";\nimport Permission from \"../../components/Permission\";\nimport SwitchLanguage from \"../../components/SwitchButton/index\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport { getData, setData } from \"../../utils/cache\";\nimport { locale } from \"../../utils/locale\";\nimport { getBrowserNameAndVersion } from \"../../utils/utils\";\nimport CloudShell from \"../CloudShell\";\nimport { locationService } from \"../../services/LocationService\";\nimport { menuService } from \"../../services/MenuService\";\nimport classNames from \"classnames\";\nconst TelemetryDataCollectionKey = \"telemetryDataCollection\";\nconst TelemetryDataCollectionServer = \"https://telemetry.kubevela.net/collecting\";\nlet Header = class extends Component {\n constructor(props) {\n super(props);\n this.loadWorkspaces = () => {\n const { userInfo } = this.props;\n menuService.loadPluginMenus().then(() => {\n this.setState({\n workspaces: menuService.loadWorkspaces(userInfo)\n });\n });\n };\n this.loadSystemInfo = () => {\n this.props.dispatch({\n type: \"user/getSystemInfo\",\n callback: () => {\n this.telemetryDataCollection();\n }\n });\n };\n this.loadEnabledAddons = () => {\n this.props.dispatch({\n type: \"addons/getEnabledAddons\",\n payload: {}\n });\n };\n this.telemetryDataCollection = async () => {\n const { systemInfo } = this.props;\n if (!getData(TelemetryDataCollectionKey) && systemInfo?.enableCollection) {\n try {\n axios.post(TelemetryDataCollectionServer, this.buildTelemetryData()).catch().then(() => {\n this.setCache();\n });\n } catch {\n }\n }\n };\n this.buildTelemetryData = () => {\n const { systemInfo } = this.props;\n return {\n platformID: systemInfo?.platformID,\n installTime: systemInfo?.installTime,\n version: (systemInfo?.systemVersion?.velaVersion || \"\") + +\"/\" + (systemInfo?.systemVersion?.gitVersion || \"\"),\n clusterCount: systemInfo?.statisticInfo.clusterCount || \"\",\n appCount: systemInfo?.statisticInfo.appCount || \"\",\n enableAddonList: systemInfo?.statisticInfo.enableAddonList || {},\n componentDefinitionTopList: systemInfo?.statisticInfo.componentDefinitionTopList,\n traitDefinitionTopList: systemInfo?.statisticInfo.traitDefinitionTopList,\n workflowStepDefinitionTopList: systemInfo?.statisticInfo.workflowDefinitionTopList,\n policyDefinitionTopList: systemInfo?.statisticInfo.policyDefinitionTopList,\n browserInfo: {\n language: navigator.language,\n nameAndVersion: getBrowserNameAndVersion(),\n screenWidth: window.screen.width,\n screenHeight: window.screen.height\n }\n };\n };\n this.setCache = () => {\n const now = new Date();\n now.setHours(now.getHours() + 24);\n setData(TelemetryDataCollectionKey, \"true\", now);\n };\n this.loadUserInfo = () => {\n this.props.dispatch({\n type: \"user/getLoginUserInfo\",\n callback: () => {\n this.loadWorkspaces();\n }\n });\n };\n this.onLogout = () => {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"refreshToken\");\n this.props.dispatch(\n routerRedux.push({\n pathname: \"/login\"\n })\n );\n };\n this.checkEnabledAddon = (addonName) => {\n const { enabledAddons } = this.props;\n if (!enabledAddons) {\n return false;\n }\n const addonNames = enabledAddons.map((addon) => {\n return addon.name;\n });\n if (addonNames.includes(addonName)) {\n return true;\n }\n return false;\n };\n this.onOpenCloudShell = () => {\n if (!this.checkEnabledAddon(\"cloudshell\")) {\n Dialog.alert({\n title: i18n.t(\"CloudShell feature is not enabled\").toString(),\n content: i18n.t(\"You must enable the CloudShell addon\").toString(),\n locale: locale().Dialog,\n footer: /* @__PURE__ */ React.createElement(\n Button,\n {\n type: \"secondary\",\n onClick: () => {\n this.props.dispatch(\n routerRedux.push({\n pathname: \"/addons/cloudshell\"\n })\n );\n }\n },\n /* @__PURE__ */ React.createElement(Translation, null, \"Go to enable\")\n )\n });\n return;\n }\n this.props.dispatch({\n type: \"cloudshell/open\"\n });\n };\n this.state = {\n platformSetting: false,\n workspaces: []\n };\n }\n componentDidMount() {\n this.loadSystemInfo();\n this.loadUserInfo();\n this.loadEnabledAddons();\n }\n render() {\n const { Row } = Grid;\n const { show, userInfo, mode, currentWorkspace } = this.props;\n const { workspaces } = this.state;\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"layout-top-bar\", id: \"layout-top-bar\" }, /* @__PURE__ */ React.createElement(Row, { className: \"nav-wrapper\" }, /* @__PURE__ */ React.createElement(\n \"div\",\n {\n className: \"cycle-mode\",\n onClick: () => {\n switch (mode) {\n case \"default\":\n locationService.partial({ \"layout-mode\": \"neat\" });\n break;\n default:\n locationService.partial({ \"layout-mode\": \"default\" });\n }\n }\n },\n mode === \"default\" && /* @__PURE__ */ React.createElement(AiOutlinePicLeft, { size: 20 }),\n mode === \"neat\" && /* @__PURE__ */ React.createElement(AiOutlinePicRight, { size: 20 })\n ), /* @__PURE__ */ React.createElement(\"div\", { className: \"logo\" }, /* @__PURE__ */ React.createElement(\"img\", { src: logo, title: \"Make shipping applications more enjoyable.\" })), /* @__PURE__ */ React.createElement(\"div\", { style: { flex: \"1 1 0%\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"workspace-items\" }, workspaces.map((ws) => {\n return /* @__PURE__ */ React.createElement(\n Link,\n {\n className: classNames(\"item\", { active: currentWorkspace?.name === ws.name }),\n to: ws.rootRoute,\n key: \"workspace\" + ws.name\n },\n /* @__PURE__ */ React.createElement(\"div\", null, ws.icon, /* @__PURE__ */ React.createElement(\"span\", null, /* @__PURE__ */ React.createElement(Translation, null, ws.label || ws.name)))\n );\n }))), /* @__PURE__ */ React.createElement(\"div\", { className: \"right\" }, /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"cloudshell\", action: \"create\" } }, /* @__PURE__ */ React.createElement(\"div\", { className: \"vela-item\", title: \"Open Cloud Shell\", onClick: this.onOpenCloudShell }, /* @__PURE__ */ React.createElement(AiOutlineCode, { size: 18 }))), /* @__PURE__ */ React.createElement(Permission, { request: { resource: \"systemSetting\", action: \"update\" } }, /* @__PURE__ */ React.createElement(Link, { to: \"/settings\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"vela-item\" }, /* @__PURE__ */ React.createElement(AiFillSetting, { size: 18, title: \"Platform Settings\" })))), /* @__PURE__ */ React.createElement(If, { condition: userInfo }, /* @__PURE__ */ React.createElement(\n Dropdown,\n {\n trigger: /* @__PURE__ */ React.createElement(\"div\", { className: \"user-item vela-item\", title: userInfo?.alias ? userInfo.alias : userInfo?.name }, /* @__PURE__ */ React.createElement(\n \"svg\",\n {\n viewBox: \"0 0 1024 1024\",\n version: \"1.1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": \"3724\",\n width: \"24\",\n height: \"24\"\n },\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M528.517527 1005.894564l-4.436089-5.158243zM528.517527 1005.894564l3.301276-4.487672-3.301276 4.487672zM512.011148 1023.742088a517.784506 517.784506 0 0 0 52.871998-2.682287H458.984402a517.732924 517.732924 0 0 0 53.026746 2.682287zM1023.863673 511.889562a511.852526 511.852526 0 1 0-781.886585 434.839947c32.754848-51.582437 90.1661-82.5319 146.545705-107.704129a3.765518 3.765518 0 0 1 1.083231-0.257913 1.134814 1.134814 0 0 1 0.567407-0.773736h0.464241a1.134814 1.134814 0 0 1 1.134814 0.567407l0.773737 1.392726a3.146529 3.146529 0 0 1 0.722154 1.237978c32.961177 59.165056 85.007857 109.20002 130.864643 159.905556l7.737366 0.464242c19.240249-26.203878 38.893158-52.149844 58.391319-78.198975 21.251964-28.421923 46.424194-55.45112 58.339737-89.443947a2.063297 2.063297 0 0 1 2.682286-1.083231 2.630704 2.630704 0 0 1 2.166463-1.031649h0.825319c38.067839 13.153522 82.5319 27.183944 115.183582 51.582438a144.430825 144.430825 0 0 1 38.377334 46.424193 511.233537 511.233537 0 0 0 216.027247-417.920907z\",\n fill: \"#65D5A5\",\n \"p-id\": \"3725\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M653.450191 831.442761a2.630704 2.630704 0 0 0-2.166463 1.031649 2.630704 2.630704 0 0 1 2.166463-1.031649zM651.283728 832.629157a2.063297 2.063297 0 0 0-0.773736 0 2.063297 2.063297 0 0 1 0.773736 0zM391.720904 838.457973l0.773736 1.392726a3.146529 3.146529 0 0 1 0.722154 1.237978c32.961177 59.165056 85.007857 109.20002 130.864644 159.905556-45.805204-50.705536-98.006631-100.7405-130.864644-159.905556a3.146529 3.146529 0 0 0-0.722154-1.237978l-0.773736-1.392726a1.134814 1.134814 0 0 0-1.134814-0.567407 1.134814 1.134814 0 0 1 1.134814 0.567407zM388.522793 839.076962a3.765518 3.765518 0 0 1 1.083231-0.257912 1.134814 1.134814 0 0 1 0.567407-0.773737h0.412659-0.464242a1.134814 1.134814 0 0 0-0.567407 0.773737 3.765518 3.765518 0 0 0-1.083231 0.257912c-56.328022 25.378559-113.739274 56.070109-146.494122 107.704129 32.754848-51.63402 90.1661-82.32557 146.545705-107.704129zM769.459092 883.334693c-32.548518-24.398493-77.115744-38.480498-115.183582-51.582437h-0.825319 0.825319c38.067839 13.153522 82.5319 27.183944 115.183582 51.582437a144.430825 144.430825 0 0 1 38.377334 46.424194 144.430825 144.430825 0 0 0-38.377334-46.424194zM531.818803 1001.664805l-7.737365-0.464242 4.436089 5.158243z\",\n fill: \"#3A4942\",\n \"p-id\": \"3726\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M769.40751 883.334693c-32.548518-24.398493-77.115744-38.480498-115.183583-51.582437h-0.825319a2.630704 2.630704 0 0 0-2.11488 1.031649 2.011715 2.011715 0 0 0-2.682286 1.083231c-11.709213 33.992826-37.139355 61.022023-58.339737 89.443946-19.498161 25.791219-39.15107 51.995097-58.391319 78.198975l-3.301276 4.487672-4.43609-5.158243c-45.805204-50.705536-98.006631-100.7405-130.864643-159.905556a3.146529 3.146529 0 0 0-0.722154-1.237979l-0.773737-1.392725a1.134814 1.134814 0 0 0-1.134814-0.567407h-0.412659a1.134814 1.134814 0 0 0-0.567407 0.773736 3.765518 3.765518 0 0 0-1.083231 0.257912c-56.431186 25.688054-113.842439 56.379604-146.597287 108.013624a508.190173 508.190173 0 0 0 217.007314 74.27871h105.847161a509.376569 509.376569 0 0 0 242.95328-91.610409 144.430825 144.430825 0 0 0-38.377333-46.114699z\",\n fill: \"#3A4942\",\n \"p-id\": \"3727\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M590.210123 923.2595c21.251964-28.421923 46.424194-55.45112 58.339736-89.443947a2.063297 2.063297 0 0 1 1.90855-1.237978 2.063297 2.063297 0 0 0-1.90855 1.237978c-11.709213 33.992826-37.139355 61.022023-58.339736 89.443947-19.498161 25.791219-39.15107 51.995097-58.39132 78.198975 19.240249-26.255461 38.893158-52.149844 58.39132-78.198975z\",\n fill: \"#3A4942\",\n \"p-id\": \"3728\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M637.253305 811.893018c-24.862735-36.107706-39.460565-71.132181-38.53208-115.75099a12.534532 12.534532 0 0 0-15.474731-12.637697 13.978841 13.978841 0 0 0-3.146529-2.785452c-37.44885-23.831086-85.884758-17.847523-125.91273-3.559188a10.316487 10.316487 0 0 0-6.241475 6.860464 8.717432 8.717432 0 0 0-7.273123 11.296554c12.225038 52.304591-6.396222 87.071154-30.639968 131.174138a96.149663 96.149663 0 0 0-9.645916 75.310359c17.692776 59.990375 79.746448 87.690143 138.550427 84.285703 56.740681-3.198111 113.481362-31.620034 122.095629-93.157882 4.281342-30.846298-6.602552-56.070109-23.779504-81.036009z\",\n fill: \"#DED8B9\",\n \"p-id\": \"3729\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M742.584642 450.145384a346.479232 346.479232 0 0 0 0.670572-81.603415c-17.176952-134.475414-196.529086-119.980749-294.948377-119.258596-59.113473 0.412659-94.705355 29.453572-110.541163 85.987924a434.582035 434.582035 0 0 0-14.855742 120.187079 28.937747 28.937747 0 0 0-26.152296 8.769014c-10.316487 11.141806-10.832312 28.473505-9.130091 42.710258s7.118376 29.505154 20.168733 37.190937a30.382056 30.382056 0 0 0 22.902602 3.559189c0.361077 2.166462 0.670572 4.332925 1.031649 6.499387a7.531036 7.531036 0 0 0 1.444308 3.40444 262.554606 262.554606 0 0 0 45.392545 107.033558c61.898925 84.182538 176.257188 107.755712 258.324846 38.480498 43.58716-36.778278 69.275213-89.031287 83.769879-143.296011 1.186396-4.43609 2.372792-8.923762 3.507605-13.514598a10.935477 10.935477 0 0 0 4.43609 0.618989c42.452346-2.32121 50.292876-86.297418 13.97884-96.768653z\",\n fill: \"#EBE6CB\",\n \"p-id\": \"3730\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M652.779619 834.950367a4.539254 4.539254 0 0 0 0-1.753803 49.622305 49.622305 0 0 0-9.594333-16.248468 81.964493 81.964493 0 0 0-12.637697-14.030422 3.094946 3.094946 0 0 0-2.837034-0.61899 4.745584 4.745584 0 0 0-8.201608-2.11488 102.442721 102.442721 0 0 1-45.186215 28.164011 4.642419 4.642419 0 0 0-6.035145-2.011715 118.639606 118.639606 0 0 1-42.916588 8.511102c-11.915543 0-23.470009-3.971848-35.179222-2.269627h-0.361078a141.490626 141.490626 0 0 1-28.37034-7.427871c-13.153522-5.158244-22.799437-14.855742-35.024475-21.200382a4.590837 4.590837 0 0 0-8.356355-2.940199c-46.424194 61.898925-67.057169 124.055762-55.24479 200.552517a522.478508 522.478508 0 0 0 168.313493 22.077283 528.049411 528.049411 0 0 0 172.543253-37.139355c5.570903-65.561278-12.947192-97.645554-50.911866-151.549201z\",\n fill: \"#F5F4F4\",\n \"p-id\": \"3731\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M761.102738 458.604904a3.765518 3.765518 0 0 0 0.257912-1.134813c3.920265-52.871998 6.499387-108.735778-15.474732-158.409665-19.033919-44.154566-55.812197-69.481543-99.760433-86.606913-53.800482-20.632975-116.731056-34.044409-174.658133-27.854516-38.428916 4.22976-84.801527 22.128866-93.312629 63.962222-95.427509-6.13831-81.706581 128.956093-79.694866 197.715483-0.618989 2.940199-1.134814 5.880398-1.599056 8.820596a5.158244 5.158244 0 0 0 1.753803 4.487673v3.146528l-0.567407 0.618989a1.392726 1.392726 0 0 0 2.166463 1.650638c10.316487-9.439586 24.037416-3.456023 29.505154 7.685784s2.063297 22.180448 2.888616 33.580166a1.70222 1.70222 0 0 0 1.805386 1.599056 2.11488 2.11488 0 0 0 2.321209 1.289561 88.824957 88.824957 0 0 1 9.078509-1.237979 18.260183 18.260183 0 0 0 7.479454-1.083231 1.856968 1.856968 0 0 0 1.031649-1.90855 1.444308 1.444308 0 0 0 2.166462-1.289561c1.650638-29.401989 25.223812-43.1745 41.884939-63.807475a167.797669 167.797669 0 0 0 22.954185-37.552014 171.305274 171.305274 0 0 0 11.967125-39.3574c13.153522 26.564955 51.118195 42.865005 77.373656 53.078328a259.356495 259.356495 0 0 0 89.495529 17.486446c27.441857 0.722154 58.752396 1.392726 82.5319 14.288335l0.412659 0.309495 2.682287 1.444308a63.549563 63.549563 0 0 1 25.017482 27.751352c0.464242 3.404441 0.773737 6.808882 1.134814 10.316487 0 1.856968 0 3.8171 0.361077 5.570903a1.90855 1.90855 0 0 0 0.876901 2.991782h0.464242l0.464242 0.722154a1.960133 1.960133 0 0 0 2.630704 0 17.486446 17.486446 0 0 0 11.244972 0.722154 1.753803 1.753803 0 0 0 0.670571-0.618989 2.063297 2.063297 0 0 0 3.404441-1.547474 77.373656 77.373656 0 0 1 3.249694-28.060845 15.784226 15.784226 0 0 1 9.336421-10.316488 9.749081 9.749081 0 0 1 11.451301 7.118376 1.134814 1.134814 0 0 0 2.11488-0.257912 8.820597 8.820597 0 0 0 0-1.289561l1.444308 1.031649c2.785452 1.960133 5.467738-2.630704 2.682287-4.539254z\",\n fill: \"#333333\",\n \"p-id\": \"3732\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M486.219929 827.883573c-14.3915-1.90855-53.54257-12.27662-61.898925-29.556736a6.602552 6.602552 0 0 0-0.773737-2.218045 13.617763 13.617763 0 0 1-0.464241-1.495891 2.888616 2.888616 0 0 0-4.281343-1.856968 4.745584 4.745584 0 0 0-4.075012 1.960133c-17.950688 22.077283-31.465287 34.302321-14.752577 61.898925a212.313312 212.313312 0 0 0 60.867276 62.982156 5.622486 5.622486 0 0 0 8.407937-4.797167 154.747312 154.747312 0 0 1 21.097217-79.230624 5.158244 5.158244 0 0 0-4.281342-7.479453z m147.009946-32.548518a5.93198 5.93198 0 0 0-1.341143-0.722154 5.622486 5.622486 0 0 0-9.233256-2.579122 135.042821 135.042821 0 0 1-53.852065 30.949463 4.02343 4.02343 0 0 0-2.579122 5.880398 3.352858 3.352858 0 0 0 0.361077 2.682286c12.586115 21.509876 20.117151 42.400764 15.216819 67.469828a5.622486 5.622486 0 0 0 6.808882 6.808882c38.119421-14.855742 86.710077-74.949281 44.618808-110.437998z\",\n fill: \"#EBEAEA\",\n \"p-id\": \"3733\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M624.306114 1011.259138c-0.412659-21.613041-2.218045-33.477002-4.281343-54.728966a222.990877 222.990877 0 0 0 54.264724-15.784226 2.888616 2.888616 0 0 0 1.753803-3.301276 1.186396 1.186396 0 0 0 0-0.567407c3.559188-33.270672-11.296554-71.699588-19.652908-103.474369a3.105263 3.105263 0 0 0-5.983563 1.650638c9.594333 32.290606 10.677565 69.223631 22.85102 100.379423h-0.567407c-18.2086 6.293057-36.984608 10.316487-55.296373 16.248468a3.094946 3.094946 0 0 0-4.43609 2.940199c1.031649 22.128866 1.805385 36.107706 3.971848 58.184989M430.768809 1017.139536c4.539254-18.724425 3.868683-47.765337 0-73.504973a1.495891 1.495891 0 0 0-1.650638-1.341144 3.146529 3.146529 0 0 0-2.52754-1.753803c-11.606048-1.444308-23.160514-2.527539-34.611815-5.158243-7.995278-1.753803-15.784226-4.281342-23.882669-5.158244 6.55097-16.919039 10.987059-34.869728 16.042138-52.253009 2.940199-10.316487 11.348136-25.791219 7.737366-36.107706a2.11488 2.11488 0 0 0-4.126595 0.567407c-1.083231 14.030423-8.975344 30.020979-13.050357 43.638742-4.539254 15.062072-9.749081 30.175726-12.740862 45.598874a2.579122 2.579122 0 0 0 1.753803 3.146529c17.641194 9.439586 42.916588 11.502884 62.724244 12.07029a601.863879 601.863879 0 0 0-4.332925 69.172049\",\n fill: \"#1A1B19\",\n \"p-id\": \"3734\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M581.389526 1019.460746a1354.709552 1354.709552 0 0 0-32.342188-134.475415 3.868683 3.868683 0 0 0 3.301276-2.630704c5.158244-14.855742 11.863961-33.786496 9.284838-50.034964a5.158244 5.158244 0 0 0-2.682286-6.55097 5.158244 5.158244 0 0 0-2.837035-0.309494c-3.043364 0.722154-6.086728 1.237978-9.130091 1.650638a156.294785 156.294785 0 0 1-17.383281 0.928484 106.311403 106.311403 0 0 1-18.002271-1.960133 3.559188 3.559188 0 0 0-3.662353 1.289561l-6.808882-0.309495a1.599056 1.599056 0 0 0-1.753803 1.392726 1.650638 1.650638 0 0 0 0 0.309495 3.198111 3.198111 0 0 0-1.031648 2.991781 184.510378 184.510378 0 0 0 7.943695 25.791219 111.985471 111.985471 0 0 0 8.872179 22.696272 3.043364 3.043364 0 0 0 0.876902 0.928484 2.063297 2.063297 0 0 0 1.083231 1.753803l0.515824 0.361077a2.424375 2.424375 0 0 0-0.309494 0.773736 1220.646797 1220.646797 0 0 0-19.807656 138.859922 418.591479 418.591479 0 0 0 43.587159 0.464242 373.766341 373.766341 0 0 0 40.285884-3.920265z\",\n fill: \"\",\n \"p-id\": \"3735\"\n }\n ),\n /* @__PURE__ */ React.createElement(\n \"path\",\n {\n d: \"M541.155225 1023.329428c19.859238-0.618989 40.027971-5.158244 40.234301-3.868682a1354.709552 1354.709552 0 0 0-32.342188-134.475415\",\n fill: \"\",\n \"p-id\": \"3736\"\n }\n )\n ), /* @__PURE__ */ React.createElement(\"span\", null, userInfo?.alias ? userInfo.alias : userInfo?.name))\n },\n /* @__PURE__ */ React.createElement(Menu, null, /* @__PURE__ */ React.createElement(Menu.Item, { onClick: this.onLogout }, /* @__PURE__ */ React.createElement(Translation, null, \"Logout\")))\n )), /* @__PURE__ */ React.createElement(\"div\", { className: \"vela-item\" }, /* @__PURE__ */ React.createElement(SwitchLanguage, null)))), /* @__PURE__ */ React.createElement(If, { condition: show }, /* @__PURE__ */ React.createElement(CloudShell, null)));\n }\n};\nHeader = __decorateClass([\n connect((store) => {\n return { ...store.user, ...store.cloudshell, ...store.addons };\n })\n], Header);\nexport default Header;\n","\"use strict\";\nimport * as React from \"react\";\nimport { captureException } from \"@sentry/browser\";\nexport class ErrorBoundary extends React.PureComponent {\n constructor() {\n super(...arguments);\n this.state = {\n error: null,\n errorInfo: null\n };\n }\n componentDidCatch(error, errorInfo) {\n captureException(error, { contexts: { react: { componentStack: errorInfo.componentStack } } });\n this.setState({ error, errorInfo });\n if (this.props.onError) {\n this.props.onError(error);\n }\n }\n componentDidUpdate(prevProps) {\n const { dependencies, onRecover } = this.props;\n if (this.state.error) {\n if (dependencies && prevProps.dependencies) {\n for (let i = 0; i < dependencies.length; i++) {\n if (dependencies[i] !== prevProps.dependencies[i]) {\n this.setState({ error: null, errorInfo: null });\n if (onRecover) {\n onRecover();\n }\n break;\n }\n }\n }\n }\n }\n render() {\n const { children } = this.props;\n const { error, errorInfo } = this.state;\n return children({\n error,\n errorInfo\n });\n }\n}\n","\"use strict\";\nimport React from \"react\";\nimport { Translation } from \"../Translation\";\nexport function ErrorShow({ error, errorInfo }) {\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"container\", style: { padding: \"64px\" } }, /* @__PURE__ */ React.createElement(\"h2\", null, /* @__PURE__ */ React.createElement(Translation, null, \"An unexpected error happened\")), /* @__PURE__ */ React.createElement(\"details\", { style: { whiteSpace: \"pre-wrap\" } }, error && error.toString(), /* @__PURE__ */ React.createElement(\"br\", null), errorInfo && errorInfo.componentStack));\n}\n","\"use strict\";\nimport { ConfigProvider } from \"@alifd/next\";\nimport React, { useEffect, useState } from \"react\";\nimport LayoutRouter from \"./LayoutRouter\";\nimport LeftMenu from \"./LeftMenu\";\nimport Header from \"./Header\";\nimport \"./index.less\";\nimport { LayoutModes } from \"@velaux/data\";\nimport { locationService } from \"../services/LocationService\";\nimport { menuService } from \"../services/MenuService\";\nimport { ErrorBoundary } from \"../components/ErrorBoundary\";\nimport { ErrorShow } from \"../components/ErrorShow\";\nexport default function MainLayout(props) {\n const [workspace, setWorkspace] = useState();\n const [mode, setMode] = useState(LayoutModes.Default);\n const query = locationService.getSearchObject();\n const path = locationService.getPathName();\n useEffect(() => {\n const layoutMode = query[\"layout-mode\"];\n if (layoutMode && [LayoutModes.Neat, LayoutModes.NeatPro, LayoutModes.Default].includes(layoutMode)) {\n setMode(layoutMode);\n }\n menuService.loadPluginMenus().then(() => {\n setWorkspace(menuService.loadCurrentWorkspace());\n });\n }, [query, path]);\n return /* @__PURE__ */ React.createElement(ConfigProvider, null, /* @__PURE__ */ React.createElement(ErrorBoundary, null, ({ error, errorInfo }) => {\n if (error) {\n return /* @__PURE__ */ React.createElement(ErrorShow, { error, errorInfo });\n }\n return /* @__PURE__ */ React.createElement(\"div\", { className: \"layout\" }, mode !== LayoutModes.NeatPro && /* @__PURE__ */ React.createElement(Header, { currentWorkspace: workspace, mode, ...props }), /* @__PURE__ */ React.createElement(\"div\", { className: \"layout-shell\" }, mode === LayoutModes.Default && /* @__PURE__ */ React.createElement(\"div\", { className: \"layout-navigation\" }, /* @__PURE__ */ React.createElement(LeftMenu, { ...props })), /* @__PURE__ */ React.createElement(\"div\", { className: \"layout-content\" }, /* @__PURE__ */ React.createElement(LayoutRouter, null))));\n }));\n}\n","\"use strict\";\nimport BasicLayout from \"../layout/index\";\nexport default [\n {\n path: \"/\",\n name: \"basicLayout\",\n component: BasicLayout,\n auth: true\n }\n];\n","\"use strict\";\nimport { Dialog, Button } from \"@alifd/next\";\nimport querystring from \"query-string\";\nimport React from \"react\";\nimport { loginSSO } from \"../../api/authentication\";\nimport i18n from \"../../i18n\";\nexport default class CallBackPage extends React.Component {\n constructor() {\n super(...arguments);\n this.getCode = () => {\n if (window.location.href.indexOf(\"/callback?code=\") != -1) {\n const { search } = window.location;\n const params = querystring.parse(search);\n const code = params.code;\n if (code) {\n this.onLogonSSO(code);\n }\n }\n };\n this.onLogonSSO = (code) => {\n loginSSO({ code }).then((res) => {\n if (res && res.accessToken) {\n localStorage.setItem(\"token\", res.accessToken);\n localStorage.setItem(\"refreshToken\", res.refreshToken);\n this.props.history.push(\"/applications\");\n }\n }).catch((err) => {\n let customErrorMessage = \"\";\n if (err.BusinessCode) {\n customErrorMessage = `${err.Message}(${err.BusinessCode})`;\n } else {\n customErrorMessage = \"Please check the network or contact the administrator!\";\n }\n return Dialog.alert({\n title: i18n.t(\"Dex Error\").toString(),\n content: `${i18n.t(customErrorMessage)}`,\n closeable: true,\n closeMode: [],\n footer: /* @__PURE__ */ React.createElement(Button, { onClick: this.handleClickRetry }, i18n.t(\"Retry\").toString())\n });\n });\n };\n this.handleClickRetry = () => {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"refreshToken\");\n window.location.href = \"/login\";\n };\n }\n componentDidMount() {\n this.getCode();\n }\n render() {\n return null;\n }\n}\n","\"use strict\";\nimport { Dialog, Field, Form, Grid, Input, Message } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { AiOutlineEye } from \"react-icons/ai\";\nimport { Translation } from \"../../../../components/Translation\";\nimport i18n from \"../../../../i18n\";\nimport { checkName, checkUserPassword } from \"../../../../utils/common\";\nimport { locale } from \"../../../../utils/locale\";\nimport { initAdmin } from \"../../../../api/authentication\";\nclass EditPlatFormUserDialog extends Component {\n constructor(props) {\n super(props);\n this.onInitAdmin = async () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n const { name, password, email } = values;\n const params = {\n name,\n email,\n password\n };\n this.setState({\n isLoading: true\n });\n initAdmin(params).then((res) => {\n if (res && res.success) {\n Message.success(/* @__PURE__ */ React.createElement(Translation, null, \"Admin User Initialized Successfully\"));\n this.props.onClose();\n }\n }).finally(() => {\n this.setState({\n isLoading: false\n });\n });\n });\n };\n this.handleClickLook = () => {\n this.setState({\n isLookPassword: !this.state.isLookPassword\n });\n };\n this.field = new Field(this);\n this.state = {\n isLoading: false,\n isLookPassword: false\n };\n }\n showTitle() {\n return i18n.t(\"Reset the password and email for the administrator account\");\n }\n render() {\n const init = this.field.init;\n const { isLoading } = this.state;\n const { Row, Col } = Grid;\n const FormItem = Form.Item;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\n Dialog,\n {\n v2: true,\n visible: true,\n title: this.showTitle(),\n style: { width: \"600px\" },\n onOk: this.onInitAdmin,\n locale: locale().Dialog,\n footerActions: [\"ok\"],\n okProps: {\n loading: isLoading\n }\n },\n /* @__PURE__ */ React.createElement(Form, { loading: isLoading, ...formItemLayout, field: this.field }, /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Admin Username\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"name\",\n htmlType: \"\",\n placeholder: i18n.t(\"Please input the admin username\").toString(),\n ...init(\"name\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"You must input a valid name\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Password\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"password\",\n htmlType: this.state.isLookPassword ? \"passwordInput\" : \"password\",\n addonTextAfter: /* @__PURE__ */ React.createElement(\n AiOutlineEye,\n {\n style: {\n cursor: \"pointer\"\n },\n onClick: this.handleClickLook\n }\n ),\n placeholder: i18n.t(\"Please input the password\").toString(),\n ...init(\"password\", {\n rules: [\n {\n required: true,\n pattern: checkUserPassword,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Password should be 8-16 bits and contain at least one number and one letter\")\n }\n ]\n })\n }\n )))), /* @__PURE__ */ React.createElement(Row, null, /* @__PURE__ */ React.createElement(Col, { span: 24, style: { padding: \"0 8px\" } }, /* @__PURE__ */ React.createElement(FormItem, { label: /* @__PURE__ */ React.createElement(Translation, null, \"Email\"), required: true }, /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"email\",\n placeholder: i18n.t(\"Please input a email\").toString(),\n ...init(\"email\", {\n rules: [\n {\n required: true,\n format: \"email\",\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please input a valid email\")\n }\n ]\n })\n }\n )))))\n ));\n }\n}\nexport default EditPlatFormUserDialog;\n","\"use strict\";\nimport { Button, Card, Field, Form, Grid, Icon, Input } from \"@alifd/next\";\nimport React, { Component, Fragment } from \"react\";\nimport { getDexConfig, getLoginType, isAdminConfigured, loginLocal } from \"../../api/authentication\";\nimport LogoWhite from \"../../assets/kubevela-logo-white.png\";\nimport Logo from \"../../assets/kubevela-logo.png\";\nimport { If } from \"../../components/If\";\nimport SwitchLanguage from \"../../components/SwitchButton/index\";\nimport { Translation } from \"../../components/Translation\";\nimport i18n from \"../../i18n\";\nimport \"./index.less\";\nimport { checkName, checkUserPassword } from \"../../utils/common\";\nimport EditPlatFormUserDialog from \"../../layout/Header/components/EditPlatFormUserDialog\";\nexport default class LoginPage extends Component {\n constructor(props) {\n super(props);\n this.onGetLoginType = () => {\n getLoginType().then((res) => {\n if (res && res.loginType) {\n this.setState(\n {\n loginType: res.loginType\n },\n () => {\n const { loginType } = this.state;\n if (loginType === \"dex\") {\n this.ontDexConfig();\n }\n }\n );\n }\n }).catch();\n };\n this.isFirstLogin = () => {\n isAdminConfigured().then((res) => {\n if (res && !res.configured) {\n this.setState({\n firstTimeLogin: true\n });\n }\n });\n };\n this.ontDexConfig = () => {\n getDexConfig().then((res) => {\n if (res) {\n this.setState(\n {\n dexConfig: res\n },\n () => {\n this.onGetDexCode();\n }\n );\n }\n }).catch();\n };\n this.handleSubmit = () => {\n this.field.validate((error, values) => {\n if (error) {\n return;\n }\n this.setState({ loginLoading: true, loginErrorMessage: \"\" });\n const { username, password } = values;\n const params = {\n username,\n password\n };\n loginLocal(params).then((res) => {\n if (res && res.accessToken) {\n localStorage.setItem(\"token\", res.accessToken);\n localStorage.setItem(\"refreshToken\", res.refreshToken);\n this.props.history.push(\"/\");\n }\n }).catch((err) => {\n let customErrorMessage = \"\";\n if (err.BusinessCode) {\n customErrorMessage = `${err.Message}(${err.BusinessCode})`;\n } else {\n customErrorMessage = \"Please check the network or contact the administrator!\";\n }\n this.setState({\n loginErrorMessage: customErrorMessage,\n loginLoading: false\n });\n });\n });\n };\n this.onGetDexCode = () => {\n if (this.state.dexConfig) {\n const { clientID, issuer, redirectURL } = this.state.dexConfig;\n const newRedirectURl = encodeURIComponent(redirectURL);\n const dexClientURL = `${issuer}/auth?client_id=${clientID}&redirect_uri=${newRedirectURl}&response_type=code&scope=openid+profile+email+offline_access&state=velaux`;\n window.location.href = dexClientURL;\n }\n };\n this.onCloseEditAdminUser = () => {\n this.setState({ firstTimeLogin: false });\n };\n this.field = new Field(this);\n this.state = {\n firstTimeLogin: false,\n loginType: \"\",\n loginErrorMessage: \"\",\n loginLoading: false\n };\n }\n componentDidMount() {\n this.isFirstLogin();\n this.onGetLoginType();\n }\n render() {\n const FormItem = Form.Item;\n const init = this.field.init;\n const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 20\n }\n };\n const { loginType, loginErrorMessage, loginLoading, firstTimeLogin } = this.state;\n const { Row, Col } = Grid;\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\"div\", { className: \"login-topbar\" }, /* @__PURE__ */ React.createElement(Row, { className: \"nav-wrapper\" }, /* @__PURE__ */ React.createElement(Col, { span: \"4\", className: \"logo\" }, /* @__PURE__ */ React.createElement(\"img\", { src: LogoWhite, title: \"Make shipping applications more enjoyable.\" })), /* @__PURE__ */ React.createElement(\"div\", { style: { flex: \"1 1 0%\" } }), /* @__PURE__ */ React.createElement(\"div\", { className: \"right\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"vela-item\" }), /* @__PURE__ */ React.createElement(\"div\", { className: \"vela-item\" }, /* @__PURE__ */ React.createElement(SwitchLanguage, null))))), /* @__PURE__ */ React.createElement(\"div\", { className: \"full\" }, /* @__PURE__ */ React.createElement(If, { condition: !firstTimeLogin }, /* @__PURE__ */ React.createElement(\"div\", { className: \"login-wrapper\" }, /* @__PURE__ */ React.createElement(If, { condition: loginType === \"dex\" }, /* @__PURE__ */ React.createElement(\"div\", null)), /* @__PURE__ */ React.createElement(If, { condition: loginType === \"local\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"login-card-wrapper\" }, /* @__PURE__ */ React.createElement(Card, { contentHeight: \"auto\" }, /* @__PURE__ */ React.createElement(\"div\", { className: \"logo-img-wrapper\" }, /* @__PURE__ */ React.createElement(\"img\", { src: Logo })), /* @__PURE__ */ React.createElement(\"h3\", { className: \"login-title-description\" }, /* @__PURE__ */ React.createElement(Translation, null, \"Make shipping applications more enjoyable\")), /* @__PURE__ */ React.createElement(\n Form,\n {\n onSubmitCapture: (e) => {\n e.preventDefault();\n },\n onSubmit: this.handleSubmit,\n ...formItemLayout,\n field: this.field\n },\n /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, { className: \"label-title\" }, \"Username\"),\n labelAlign: \"top\",\n required: true\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"username\",\n placeholder: i18n.t(\"Please input the username\").toString(),\n ...init(\"username\", {\n rules: [\n {\n required: true,\n pattern: checkName,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"Please input the username\")\n }\n ]\n })\n }\n )\n ),\n /* @__PURE__ */ React.createElement(\n FormItem,\n {\n label: /* @__PURE__ */ React.createElement(Translation, { className: \"label-title\" }, \"Password\"),\n labelAlign: \"top\",\n required: true\n },\n /* @__PURE__ */ React.createElement(\n Input,\n {\n name: \"password\",\n htmlType: \"password\",\n placeholder: i18n.t(\"Please input the password\").toString(),\n ...init(\"password\", {\n rules: [\n {\n required: true,\n pattern: checkUserPassword,\n message: /* @__PURE__ */ React.createElement(Translation, null, \"The password should be 8-16 bits and contain at least one number and one letter\")\n }\n ]\n })\n }\n )\n ),\n /* @__PURE__ */ React.createElement(Button, { loading: loginLoading, type: \"primary\", htmlType: \"submit\", onClick: this.handleSubmit }, /* @__PURE__ */ React.createElement(Translation, null, \"Sign in\"))\n ), /* @__PURE__ */ React.createElement(If, { condition: loginErrorMessage }, /* @__PURE__ */ React.createElement(\"div\", { className: \"logo-error-wrapper\" }, /* @__PURE__ */ React.createElement(Icon, { type: \"warning1\" }), \" \", /* @__PURE__ */ React.createElement(Translation, null, loginErrorMessage)))))))), /* @__PURE__ */ React.createElement(If, { condition: firstTimeLogin }, /* @__PURE__ */ React.createElement(EditPlatFormUserDialog, { onClose: this.onCloseEditAdminUser }))));\n }\n}\n","\"use strict\";\nimport { Route } from \"dva/router\";\nimport React, { Fragment, Component } from \"react\";\nimport CallBackPage from \"../../pages/CallBackPage\";\nimport LoginPage from \"../../pages/Login\";\nimport { hasToken } from \"../../utils/storage\";\nexport default class AuthRoute extends Component {\n constructor() {\n super(...arguments);\n this.checkAuth = () => {\n if (!hasToken() && window.location.href.indexOf(\"/callback?code=\") == -1) {\n this.props.history.push(\"/login\");\n }\n };\n }\n componentDidMount() {\n this.checkAuth();\n }\n render() {\n const Components = this.props.component;\n return /* @__PURE__ */ React.createElement(\n Route,\n {\n path: this.props.path,\n render: () => {\n if (hasToken()) {\n return /* @__PURE__ */ React.createElement(Components, null);\n } else {\n return /* @__PURE__ */ React.createElement(Fragment, null, /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/callback\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(CallBackPage, { ...props });\n }\n }\n ), /* @__PURE__ */ React.createElement(\n Route,\n {\n exact: true,\n path: \"/login\",\n render: (props) => {\n return /* @__PURE__ */ React.createElement(LoginPage, { ...props });\n }\n }\n ));\n }\n }\n }\n );\n }\n}\n","\"use strict\";\nimport React from \"react\";\nimport { Router, Switch, Redirect } from \"dva/router\";\nimport Routes from \"./routes\";\nimport AuthRoute from \"../components/AuthRoute\";\nfunction RouterView(props) {\n const routes = props.routes ? props.routes : Routes;\n const { history } = props;\n const defaultRoute = /* @__PURE__ */ React.createElement(Redirect, { from: \"/\", to: \"/applications\", key: \"default\", exact: true });\n return /* @__PURE__ */ React.createElement(Router, { history }, /* @__PURE__ */ React.createElement(Switch, null, routes.map((item) => {\n const Comp = item.component;\n return /* @__PURE__ */ React.createElement(\n AuthRoute,\n {\n key: item.name,\n path: item.path,\n history,\n component: () => {\n return /* @__PURE__ */ React.createElement(Comp, { history });\n }\n }\n );\n }).concat([defaultRoute])));\n}\nexport default RouterView;\n","\"use strict\";\nconst context = require.context(\"../model\", false, /\\.(js|ts|jsx|tsx)$/);\nconst getModel = context.keys().map((key) => context(key));\nexport const createModel = function(app) {\n return getModel.map((model) => app.model(model.default));\n};\n","\"use strict\";\nimport dva from \"dva\";\nimport createLoading from \"dva-loading\";\nimport RouterView from \"./router\";\nimport { createModel } from \"./store\";\nimport { locationService } from \"./services/LocationService\";\nimport \"./i18n\";\nconst app = dva({\n history: locationService.getHistory()\n});\napp.use(createLoading());\ncreateModel(app);\napp.router(RouterView);\napp.start(\"#root\");\n","\"use strict\";\nconst definitions = {\n namespace: \"definitions\",\n state: {\n definitionTypes: [\n { name: \"ComponentDefinition\", type: \"component\" },\n { name: \"PolicyDefinition\", type: \"policy\" },\n { name: \"TraitDefinition\", type: \"trait\" },\n { name: \"WorkflowStepDefinition\", type: \"workflowstep\" }\n ]\n },\n reducers: {},\n effects: {}\n};\nexport default definitions;\n","\"use strict\";\nimport { getEnvs } from \"../api/env\";\nconst envs = {\n namespace: \"env\",\n state: {\n envs: [],\n envTotal: 0\n },\n reducers: {\n updateEnvs(state, { payload }) {\n return {\n ...state,\n envs: payload.envs,\n envTotal: payload.total || 0\n };\n }\n },\n effects: {\n *listEnvs(action, { call, put }) {\n const result = yield call(getEnvs, action.payload);\n yield put({ type: \"updateEnvs\", payload: result || {} });\n }\n }\n};\nexport default envs;\n","\"use strict\";\nimport { listTemplates } from \"../api/config\";\nconst configs = {\n namespace: \"configs\",\n state: {\n configTemplates: []\n },\n reducers: {\n updateTemplates(state, { payload }) {\n return {\n ...state,\n configTemplates: payload.templates || []\n };\n }\n },\n effects: {\n *loadTemplates(action, { call, put }) {\n const result = yield call(listTemplates);\n if (result) {\n yield put({ type: \"updateTemplates\", payload: result });\n }\n }\n }\n};\nexport default configs;\n","\"use strict\";\nimport { getProjectDetail } from \"../api/project\";\nconst project = {\n namespace: \"project\",\n state: {\n projectDetails: {}\n },\n reducers: {\n updateProjectDetail(state, { payload }) {\n return {\n ...state,\n projectDetails: payload\n };\n }\n },\n effects: {\n *getProjectDetails(action, { call, put }) {\n const result = yield call(getProjectDetail, action.payload);\n yield put({ type: \"updateProjectDetail\", payload: result || {} });\n }\n }\n};\nexport default project;\n","\"use strict\";\nimport { getTarget } from \"../api/target\";\nconst targets = {\n namespace: \"target\",\n state: {\n targets: [],\n total: 0\n },\n reducers: {\n updateTargets(state, { payload }) {\n return {\n ...state,\n targets: payload.targets,\n total: payload.total\n };\n }\n },\n effects: {\n *listTargets(action, { call, put }) {\n const result = yield call(getTarget, action.payload);\n yield put({ type: \"updateTargets\", payload: result || {} });\n }\n }\n};\nexport default targets;\n","\"use strict\";\nimport { getLoginUserInfo } from \"../api/authentication\";\nimport { loadSystemInfo } from \"../api/system_config\";\nconst user = {\n namespace: \"user\",\n state: {\n userInfo: {},\n systemInfo: {}\n },\n reducers: {\n updateUserInfo(state, { payload }) {\n return {\n ...state,\n userInfo: payload\n };\n },\n updateSystemInfo(state, { payload }) {\n return {\n ...state,\n systemInfo: payload\n };\n }\n },\n effects: {\n *getLoginUserInfo(action, { call, put }) {\n const result = yield call(getLoginUserInfo, action.payload);\n yield put({ type: \"updateUserInfo\", payload: result || {} });\n if (action.callback && result) {\n action.callback(result);\n }\n },\n *getSystemInfo(action, { call, put }) {\n const result = yield call(loadSystemInfo, action.payload);\n yield put({ type: \"updateSystemInfo\", payload: result || {} });\n if (result && action.callback) {\n action.callback(result);\n }\n }\n }\n};\nexport default user;\n","\"use strict\";\nexport const getMessage = (status) => {\n let message = \"\";\n switch (status) {\n case 400:\n message = \"BadRequest(400)\";\n break;\n case 401:\n message = \"Unauthorized(401)\";\n break;\n case 403:\n message = \"Forbidden(403)\";\n break;\n case 404:\n message = \"NotFound(404)\";\n break;\n case 408:\n message = \"TimeOut(408)\";\n break;\n case 500:\n message = \"InternalServerError(500)\";\n break;\n case 501:\n message = \"ServerNotImplements(501)\";\n break;\n case 502:\n message = \"GatewayError(502)\";\n break;\n case 503:\n message = \"InternalServerUnavailable(503)\";\n break;\n case 504:\n message = \"GatewayTimeout(504)\";\n break;\n default:\n message = `connect error(${status})!`;\n }\n return `${message}, please check the network or contact the administrator!`;\n};\n","\"use strict\";\nimport { Dialog } from \"@alifd/next\";\nimport i18n from \"../i18n\";\nimport { locale } from \"./locale\";\nclass ResetLogin {\n constructor() {\n this.reset = this.resetDom();\n }\n resetDom() {\n if (window.location.href.indexOf(\"/login\") === -1) {\n return Dialog.alert({\n title: i18n.t(\"The token is expired(12010)\").toString(),\n content: i18n.t(\"Authentication failed, please log in again\").toString(),\n closeable: true,\n closeMode: [],\n locale: locale().Dialog,\n footerActions: [\"ok\"],\n onOk: () => {\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"refreshToken\");\n window.location.href = \"/login\";\n }\n });\n } else {\n return null;\n }\n }\n static getInstance() {\n if (!ResetLogin.singleton) {\n ResetLogin.singleton = new ResetLogin();\n }\n return ResetLogin.singleton;\n }\n}\nexport default ResetLogin;\n","\"use strict\";\nimport axios from \"axios\";\nimport { Message } from \"@alifd/next\";\nimport { getDomain } from \"../utils/common\";\nimport { getMessage } from \"../api/status\";\nimport ResetLogin from \"../utils/resetLogin\";\nimport { getToken } from \"../utils/storage\";\nimport { handleError } from \"../utils/errors\";\nconst domainObj = getDomain();\nlet baseURL = domainObj.APIBASE;\nlet isRefreshing = false;\nlet retryRequests = [];\nexport const handleAPIError = (err, customError) => {\n const { data, status } = err;\n if (customError) {\n throw data;\n } else if (data && data.BusinessCode) {\n handleError(data);\n } else {\n Message.error(getMessage(status));\n }\n};\nasync function getRefreshTokenFunc() {\n const refreshToken = localStorage.getItem(\"refreshToken\") || \"\";\n return await axios({\n url: `${baseURL}/api/v1/auth/refresh_token`,\n method: \"GET\",\n headers: {\n RefreshToken: refreshToken\n }\n });\n}\nexport class BackendWrapper {\n constructor() {\n this.axiosInstance = axios.create({\n baseURL,\n timeout: 3e4,\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\"\n },\n transformRequest: [\n function(data) {\n return JSON.stringify(data);\n }\n ]\n });\n this.axiosInstance.interceptors.response.use(\n (response) => {\n if (response.status === 200) {\n return response;\n } else {\n Message.show(getMessage(response.status));\n return response;\n }\n },\n async (error) => {\n if (!error.response) {\n return Promise.reject(error);\n }\n const { data, config } = error.response;\n if (data.BusinessCode === 12002) {\n if (!isRefreshing) {\n isRefreshing = true;\n return getRefreshTokenFunc().then((res) => {\n const refreshData = res && res.data;\n if (refreshData && refreshData.accessToken) {\n localStorage.setItem(\"token\", refreshData.accessToken);\n localStorage.setItem(\"refreshToken\", refreshData.refreshToken);\n config.headers.Authorization = \"Bearer \" + getToken();\n retryRequests.forEach((cb) => {\n cb(getToken());\n });\n retryRequests = [];\n return this.axiosInstance(config);\n }\n return null;\n }).catch(() => {\n return ResetLogin.getInstance().reset;\n }).finally(() => {\n isRefreshing = false;\n });\n } else {\n return new Promise((resolve) => {\n retryRequests.push((token) => {\n config.headers.Authorization = \"Bearer \" + token;\n resolve(this.axiosInstance(config));\n });\n });\n }\n } else if (data.BusinessCode === 12010 || data.BusinessCode === 12004) {\n return ResetLogin.getInstance().reset;\n } else {\n return Promise.reject(error.response || error);\n }\n }\n );\n this.axiosInstance.interceptors.request.use(\n (config) => {\n if (getToken()) {\n config.headers.Authorization = \"Bearer \" + getToken();\n }\n return config;\n },\n (error) => {\n return Promise.reject(error);\n }\n );\n }\n getAxiosInstance() {\n return this.axiosInstance;\n }\n post(url, params, customError) {\n return this.axiosInstance.post(baseURL + url, params).then((res) => {\n return res && res.data;\n }).catch((err) => {\n handleAPIError(err, params.customError || customError);\n });\n }\n get(url, params, customError) {\n return this.axiosInstance.get(baseURL + url, params).then((res) => {\n return res && res.data;\n }).catch((err) => {\n handleAPIError(err, params.customError || customError);\n });\n }\n delete(url, params, customError) {\n return this.axiosInstance.delete(baseURL + url, params).then((res) => {\n return res && res.data;\n }).catch((err) => {\n handleAPIError(err, params.customError || customError);\n });\n }\n put(url, params, customError) {\n return this.axiosInstance.put(baseURL + url, params).then((res) => {\n return res && res.data;\n }).catch((err) => {\n handleAPIError(err, params.customError || customError);\n });\n }\n}\nlet pluginService = new BackendWrapper();\nexport const getBackendSrv = () => pluginService;\n","\"use strict\";\nimport moment from \"moment\";\nexport function getLanguage() {\n const navigator = window.navigator;\n const lang = navigator.language || \"en\";\n return localStorage.getItem(\"lang\") || lang.split(\"-\")[0];\n}\nexport function isMock() {\n return process.env.MOCK ? true : false;\n}\nexport function getDomain() {\n const { MOCK, BASE_DOMAIN } = process.env;\n return {\n MOCK: MOCK || \"\",\n APIBASE: BASE_DOMAIN || \"\"\n };\n}\nexport function isApplicationPath(pathname) {\n return (pathname || \"\").startsWith(\"/applications\");\n}\nexport function isClustersPath(pathname) {\n return (pathname || \"\").startsWith(\"/clusters\");\n}\nexport function isAddonsPath(pathname) {\n return (pathname || \"\").startsWith(\"/addons\");\n}\nexport function isOperationPath(pathname) {\n return (pathname || \"\").startsWith(\"/operation\");\n}\nexport function isModelPath(pathname) {\n return (pathname || \"\").startsWith(\"/model\");\n}\nexport function isAPPStorePath(pathname) {\n return (pathname || \"\").startsWith(\"/appstores\");\n}\nexport function isTargetURL(pathname) {\n return (pathname || \"\").startsWith(\"/targets\");\n}\nexport function isEnvPath(pathname) {\n return (pathname || \"\").startsWith(\"/envs\");\n}\nexport function isPipelinePath(pathname) {\n if ((pathname || \"\").startsWith(\"/pipelines\")) {\n return true;\n }\n const re = new RegExp(\"^/projects/.*./pipelines.*\");\n return re.test(pathname);\n}\nexport function isUsersPath(pathname) {\n return (pathname || \"\").startsWith(\"/users\");\n}\nexport function isProjectPath(pathname) {\n const re = new RegExp(\"^/projects/.*./pipelines.*\");\n if (re.test(pathname)) {\n return false;\n }\n return (pathname || \"\").startsWith(\"/projects\");\n}\nexport function isRolesPath(pathname) {\n return (pathname || \"\").startsWith(\"/roles\");\n}\nexport function isConfigPath(pathname) {\n return (pathname || \"\").startsWith(\"/config\");\n}\nexport function isDefinitionsPath(pathname) {\n return (pathname || \"\").startsWith(\"/definitions\");\n}\nexport const APPLICATION_PATH = \"applications\";\nexport const CLUSTERS_PATH = \"clusters\";\nexport const ADDONS_PATH = \"addons\";\nexport const WORKFLOWS_PATH = \"workflows\";\nexport function momentDate(time) {\n if (!time) {\n return \"\";\n }\n return moment(time).format(\"YYYY/MM/DD HH:mm:ss\");\n}\nexport function momentShortDate(time) {\n if (!time) {\n return \"\";\n }\n return moment(time).format(\"YYYY/MM/DD\");\n}\nexport function beautifyTime(time) {\n if (!time || time === \"0001-01-01T00:00:00Z\") {\n return \"\";\n }\n const timestamp = moment(time).unix();\n const now = new Date();\n let mistiming = Math.round(now.getTime() / 1e3) - timestamp;\n const postfix = mistiming > 0 ? \"ago\" : \"later\";\n mistiming = Math.abs(mistiming);\n const arrr = [\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n const arrn = [31536e3, 2592e3, 604800, 86400, 3600, 60, 1];\n for (let i = 0; i < 7; i++) {\n const inm = Math.floor(mistiming / arrn[i]);\n if (inm != 0) {\n return inm + \" \" + arrr[i] + \" \" + postfix;\n }\n }\n return \"\";\n}\nexport function timeDiff(start, end) {\n if (!start || start == \"0001-01-01T00:00:00Z\") {\n return \"-\";\n }\n let endTime = moment(moment.now());\n if (end && end != \"0001-01-01T00:00:00Z\") {\n endTime = moment(end);\n }\n const seconds = endTime.diff(moment(start), \"seconds\");\n if (seconds > 60) {\n return `${Math.floor(seconds / 60)}m ${seconds % 60}s`;\n }\n return `${seconds}s`;\n}\nexport function beautifyBinarySize(value) {\n if (null == value || value == 0) {\n return \"0 Bytes\";\n }\n const unitArr = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"];\n let index = 0;\n index = Math.floor(Math.log(value) / Math.log(1024));\n const size = value / Math.pow(1024, index);\n let sizeStr = \"\";\n if (size % 1 === 0) {\n sizeStr = size.toFixed(0);\n } else {\n sizeStr = size.toFixed(2);\n }\n return sizeStr + unitArr[index];\n}\nexport const checkName = /^[a-z]([-a-z0-9]*[a-z0-9])?(\\\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$/;\nexport const urlRegular = /(https|http|ftp|file):\\/\\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/g;\nexport const checkImageName = /^[^\\u4e00-\\u9fa5 ]{0,512}$/;\nexport const formItemLayout = {\n labelCol: {\n fixedSpan: 6\n },\n wrapperCol: {\n span: 18\n }\n};\nexport const ACKClusterStatus = [\n {\n key: \"initial\",\n value: \"\\u96C6\\u7FA4\\u521B\\u5EFA\\u4E2D\",\n color: \"#98af88\"\n },\n {\n key: \"failed\",\n value: \"\\u96C6\\u7FA4\\u521B\\u5EFA\\u5931\\u8D25\",\n color: \"#ef1111\"\n },\n {\n key: \"running\",\n value: \"\\u96C6\\u7FA4\\u8FD0\\u884C\\u4E2D\",\n color: \"#10e60e\"\n },\n {\n key: \"updating\",\n value: \"\\u96C6\\u7FA4\\u5347\\u7EA7\\u4E2D\",\n color: \"#10e60e\"\n },\n {\n key: \"updating_failed\",\n value: \"\\u96C6\\u7FA4\\u5347\\u7EA7\\u5931\\u8D25\",\n color: \"#ef1111\"\n },\n {\n key: \"scaling\",\n value: \"\\u96C6\\u7FA4\\u4F38\\u7F29\\u4E2D\",\n color: \"#10e60e\"\n },\n {\n key: \"stopped\",\n value: \"\\u96C6\\u7FA4\\u5DF2\\u7ECF\\u505C\\u6B62\\u8FD0\\u884C\",\n color: \"#3a3e3a\"\n },\n {\n key: \"deleting\",\n value: \"\\u96C6\\u7FA4\\u5220\\u9664\\u4E2D\",\n color: \"#fd940f\"\n },\n {\n key: \"deleted\",\n value: \"\\u96C6\\u7FA4\\u5DF2\\u7ECF\\u88AB\\u5220\\u9664\",\n color: \"#3a3e3a\"\n },\n {\n key: \"delete_failed\",\n value: \"\\u96C6\\u7FA4\\u5220\\u9664\\u5931\\u8D25\",\n color: \"#ef1111\"\n }\n];\nexport const replaceUrl = function(text) {\n const re = /(http[s]?:\\/\\/([\\w-]+.)+([:\\d+])?(\\/[\\w-\\.\\/\\?%&=]*)?)/gi;\n const str = text.replace(re, function(a) {\n return '' + a + \"\";\n });\n return str;\n};\nexport const checkUserPassword = /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]{8,16})$/;\nexport function isMatchBusinessCode(businessCode) {\n const tokenExpiredList = [12002, 12010];\n return tokenExpiredList.includes(businessCode);\n}\nexport function equalArray(a, b) {\n if (a === void 0 && b === void 0) {\n return true;\n }\n if (b === void 0 || a === void 0) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n } else {\n const sa = a.sort();\n const sb = b.sort();\n for (let i = 0; i < sa.length; i++) {\n if (sa[i] !== sb[i]) {\n return false;\n }\n }\n return true;\n }\n}\nexport function intersectionArray(a, b) {\n if (a == void 0 || b == void 0) {\n return void 0;\n }\n return a.filter((v) => b.indexOf(v) > -1);\n}\nexport function checkEnabledAddon(addonName, enabledAddons) {\n if (!enabledAddons) {\n return false;\n }\n const addonNames = enabledAddons.map((addon) => {\n return addon.name;\n });\n if (addonNames.includes(addonName)) {\n return true;\n }\n return false;\n}\nexport function convertAny(data) {\n if (!data) {\n return \"\";\n }\n switch (typeof data) {\n case \"string\":\n return data;\n case \"boolean\":\n return data === true ? \"true\" : \"false\";\n case \"object\":\n return JSON.stringify(data);\n case \"number\":\n return data.toString();\n default:\n return \"\";\n }\n}\nexport function showAlias(item, alias) {\n if (typeof item === \"string\") {\n if (alias) {\n return `${item}(${alias})`;\n }\n return item;\n }\n if (!item) {\n return \"\";\n }\n if (item.alias) {\n return `${item.name}(${item.alias})`;\n }\n return item.name;\n}\n","\"use strict\";\nimport { Message } from \"@alifd/next\";\nimport { isMatchBusinessCode } from \"./common\";\nexport function handleError(err) {\n const isShowErrFlag = isMatchBusinessCode(err.BusinessCode);\n if (err && !isShowErrFlag) {\n Message.error({ title: err.Message, duration: 3e3 });\n }\n}\n","\"use strict\";\nimport { getLanguage } from \"../utils/common\";\nconst localeData = {\n en: {\n Timeline: {\n expand: \"Expand\",\n fold: \"Fold\"\n },\n Balloon: {\n close: \"Close\"\n },\n Card: {\n expand: \"Expand\",\n fold: \"Fold\"\n },\n Dialog: {\n close: \"Close\",\n ok: \"OK\",\n cancel: \"Cancel\"\n },\n Drawer: {\n close: \"Close\"\n },\n Message: {\n closeAriaLabel: \"Close\"\n },\n Pagination: {\n prev: \"Prev\",\n next: \"Next\",\n goTo: \"Go To\",\n page: \"Page\",\n go: \"Go\",\n total: \"Page {current} of {total} pages.\",\n labelPrev: \"Prev page, current page {current}\",\n labelNext: \"Next page, current page {current}\",\n inputAriaLabel: \"Please enter the page to jump to\",\n selectAriaLabel: \"Please select page size\",\n pageSize: \"Page Size:\"\n },\n Input: {\n clear: \"Clear\"\n },\n List: {\n empty: \"No Data\"\n },\n Select: {\n selectPlaceholder: \"Please select\",\n autoCompletePlaceholder: \"Please enter\",\n notFoundContent: \"No Options\",\n maxTagPlaceholder: \"{selected}/{total} items have been selected.\",\n selectAll: \"Select All\"\n },\n Table: {\n empty: \"No Data\",\n ok: \"OK\",\n reset: \"Reset\",\n asc: \"Asc\",\n desc: \"Desc\",\n expanded: \"Expanded\",\n folded: \"Folded\",\n filter: \"Filter\",\n selectAll: \"Select All\"\n },\n Upload: {\n card: {\n cancel: \"Cancel\",\n delete: \"Delete\"\n },\n upload: {\n delete: \"Delete\"\n }\n },\n Search: {\n buttonText: \"Search\"\n },\n Tag: {\n delete: \"Delete\"\n },\n Switch: {\n on: \"On\",\n off: \"Off\"\n },\n Tab: {\n closeAriaLabel: \"Close\"\n }\n },\n zh: {\n Timeline: {\n expand: \"\\u5C55\\u5F00\",\n fold: \"\\u6536\\u8D77\"\n },\n Balloon: {\n close: \"\\u5173\\u95ED\"\n },\n Card: {\n expand: \"\\u5C55\\u5F00\",\n fold: \"\\u6536\\u8D77\"\n },\n Dialog: {\n close: \"\\u5173\\u95ED\",\n ok: \"\\u786E\\u8BA4\",\n cancel: \"\\u53D6\\u6D88\"\n },\n Drawer: {\n close: \"\\u5173\\u95ED\"\n },\n Message: {\n closeAriaLabel: \"\\u5173\\u95ED\\u6807\\u7B7E\"\n },\n Pagination: {\n prev: \"\\u524D\\u4E00\\u9875\",\n next: \"\\u4E0B\\u4E00\\u9875\",\n goTo: \"\\u53BB\\u5F80\",\n page: \"\\u5206\\u9875\",\n go: \"\\u53BB\",\n total: \"Page {current} of {total} pages.\",\n labelPrev: \"\\u524D\\u4E00\\u9875, \\u5F53\\u524D\\u9875 {current}\",\n labelNext: \"\\u4E0B\\u4E00\\u9875, \\u5F53\\u524D\\u9875 {current}\",\n inputAriaLabel: \"\\u8BF7\\u8F93\\u5165\\u8981\\u8DF3\\u8F6C\\u5230\\u7684\\u9875\\u9762\",\n selectAriaLabel: \"\\u8BF7\\u9009\\u62E9\\u9875\\u9762\\u5C55\\u793A\\u7684\\u6570\\u91CF\",\n pageSize: \"\\u6BCF\\u9875\\u663E\\u793A\\u591A\\u5C11\\u6761:\"\n },\n Input: {\n clear: \"\\u6E05\\u7A7A\"\n },\n List: {\n empty: \"\\u6CA1\\u6709\\u6570\\u636E\"\n },\n Select: {\n selectPlaceholder: \"\\u8BF7\\u9009\\u62E9\",\n autoCompletePlaceholder: \"\\u8BF7\\u8F93\\u5165\",\n notFoundContent: \"\\u6CA1\\u6709\\u53EF\\u9009\\u9879\",\n maxTagPlaceholder: \"{selected}/{total} \\u6761\\u76EE\\u5DF2\\u9009\\u62E9.\",\n selectAll: \"\\u5168\\u9009\"\n },\n Table: {\n empty: \"\\u6CA1\\u6709\\u6570\\u636E\",\n ok: \"\\u786E\\u8BA4\",\n reset: \"\\u91CD\\u7F6E\",\n asc: \"\\u751F\\u5E8F\",\n desc: \"\\u964D\\u5E8F\",\n expanded: \"\\u5C55\\u5F00\",\n folded: \"\\u6536\\u8D77\",\n filter: \"\\u8FC7\\u6EE4\",\n selectAll: \"\\u5168\\u9009\"\n },\n Upload: {\n card: {\n cancel: \"\\u53D6\\u6D88\",\n delete: \"\\u5220\\u9664\"\n },\n upload: {\n delete: \"\\u5220\\u9664\"\n }\n },\n Search: {\n buttonText: \"\\u641C\\u7D22\"\n },\n Tag: {\n delete: \"\\u5220\\u9664\"\n },\n Switch: {\n on: \"\\u6253\\u5F00\",\n off: \"\\u5173\\u95ED\"\n },\n Tab: {\n closeAriaLabel: \"\\u5173\\u95ED\"\n }\n }\n};\nconst _SingletonLocal = class {\n constructor() {\n }\n static getInstance() {\n this.instance = this.instance || new _SingletonLocal();\n return this.instance;\n }\n setLocal(value) {\n this.local = value;\n }\n getLocal() {\n return () => {\n const language = getLanguage();\n return this.local[language] ?? this.local.en;\n };\n }\n};\nlet SingletonLocal = _SingletonLocal;\nSingletonLocal.instance = null;\nSingletonLocal.getInstance().setLocal(localeData);\nexport const locale = SingletonLocal.getInstance().getLocal();\n","\"use strict\";\nconst token_key = \"token\";\nexport function getToken() {\n return localStorage.getItem(token_key) || \"\";\n}\nexport function setToken(token) {\n if (Array.isArray(token)) {\n localStorage.setItem(token_key, token[0]);\n } else if (typeof token === \"string\") {\n localStorage.setItem(token_key, token);\n }\n}\nexport function removeToken() {\n localStorage.removeItem(token_key);\n}\nexport function hasToken() {\n return !!getToken();\n}\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport {getAddonRegistriesList, getAddonsList, getEnabledAddons} from '../api/addons';\r\n\r\nexport default {\r\n namespace: 'addons',\r\n state: {\r\n addonsList: [],\r\n registryList: [],\r\n addonListMessage: '',\r\n enabledAddons: [],\r\n },\r\n reducers: {\r\n updateAddonsList(state, {type, payload}) {\r\n return {\r\n ...state,\r\n addonsList: payload.addons || [],\r\n addonListMessage: payload.message,\r\n };\r\n },\r\n updateAddonRegistriesList(state, {type, payload}) {\r\n return {\r\n ...state,\r\n registryList: payload || [],\r\n };\r\n },\r\n updateEnabledAddons(state, {type, payload}) {\r\n return {\r\n ...state,\r\n enabledAddons: payload.enabledAddons || [],\r\n };\r\n },\r\n },\r\n effects: {\r\n * getAddonsList(action, {call, put}) {\r\n const result = yield call(getAddonsList, action.payload);\r\n if (result) {\r\n yield put({type: 'updateAddonsList', payload: result});\r\n let uxPlugins = []\r\n for (const addon of result.addons) {\r\n if (addon.uxPlugins && Object.keys(addon.uxPlugins).length > 0) {\r\n for (const [key, value] of Object.entries(addon.uxPlugins)) {\r\n uxPlugins.push({id: key, url: value, addon: addon})\r\n }\r\n }\r\n }\r\n yield put({type: 'plugins/addOrUpdateBatchPlugins', payload: uxPlugins})\r\n if (action.callback) {\r\n action.callback(result);\r\n }\r\n }\r\n },\r\n * getEnabledAddons(action, {call, put}) {\r\n const result = yield call(getEnabledAddons, action.payload);\r\n if (result) {\r\n yield put({type: 'updateEnabledAddons', payload: result});\r\n if (action.callback) {\r\n action.callback(result);\r\n }\r\n }\r\n },\r\n * getAddonRegistriesList(action, {call, put}) {\r\n const result = yield call(getAddonRegistriesList, action.payload);\r\n const registries = result ? result.registries : [];\r\n yield put({type: 'updateAddonRegistriesList', payload: registries || []});\r\n },\r\n },\r\n};\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport {\r\n getApplicationList,\r\n createApplication,\r\n getApplicationDetails,\r\n getApplicationStatus,\r\n getApplicationAllStatus,\r\n getApplicationComponents,\r\n getPolicyList,\r\n getApplicationEnvbinding,\r\n} from '../api/application';\r\nimport { getComponentDefinitions } from '../api/definitions';\r\nimport { getProjectList } from '../api/project';\r\nimport { listWorkflow } from '../api/workflows';\r\n\r\nexport default {\r\n namespace: 'application',\r\n state: {\r\n applicationList: [],\r\n applicationDetail: {},\r\n applicationStatus: {},\r\n applicationAllStatus: [],\r\n projectList: [],\r\n clusterList: [],\r\n searchAppName: '',\r\n projects: [],\r\n components: [],\r\n componentDefinitions: [],\r\n componentDetails: {},\r\n envbinding: [],\r\n workflows: [],\r\n },\r\n reducers: {\r\n update(state, { type, payload }) {\r\n return {\r\n ...state,\r\n searchAppName: payload,\r\n };\r\n },\r\n updateApplicationList(state, { type, payload }) {\r\n return {\r\n ...state,\r\n applicationList: payload,\r\n };\r\n },\r\n updateApplicationDetail(state, { type, payload }) {\r\n return {\r\n ...state,\r\n applicationDetail: payload,\r\n };\r\n },\r\n updateApplicationEnvbinding(state, { type, payload }) {\r\n return {\r\n ...state,\r\n envbinding: payload.envBindings || [],\r\n };\r\n },\r\n updateApplicationStatus(state, { type, payload }) {\r\n return {\r\n ...state,\r\n applicationStatus: payload.status,\r\n };\r\n },\r\n updateApplicationAllStatus(state, { type, payload }) {\r\n return {\r\n ...state,\r\n applicationAllStatus: payload.status,\r\n };\r\n },\r\n updateComponents(state, { type, payload }) {\r\n return {\r\n ...state,\r\n components: payload.components,\r\n componentsApp: payload.componentsApp,\r\n };\r\n },\r\n updateProjectList(state, { type, payload }) {\r\n return {\r\n ...state,\r\n projects: payload,\r\n };\r\n },\r\n updatePoliciesList(state, { type, payload }) {\r\n return {\r\n ...state,\r\n policies: payload.policies,\r\n };\r\n },\r\n updateComponentDefinitions(state, { type, payload }) {\r\n return {\r\n ...state,\r\n componentDefinitions: payload,\r\n };\r\n },\r\n updateComponentDetails(state, { type, payload }) {\r\n return {\r\n ...state,\r\n componentDetails: payload,\r\n };\r\n },\r\n updateWorkflow(state, { type, payload }) {\r\n return {\r\n ...state,\r\n workflows: payload || [],\r\n };\r\n },\r\n },\r\n effects: {\r\n *getApplicationList(action, { call, put }) {\r\n const result = yield call(getApplicationList, action.payload);\r\n yield put({ type: 'updateApplicationList', payload: result ? result.applications : [] });\r\n if (action.callback) {\r\n action.callback((result && result.applications) || []);\r\n }\r\n },\r\n\r\n *createApplicationPlan(action, { call, put }) {\r\n const result = yield call(createApplication, action.payload);\r\n if (action.callback && result) {\r\n action.callback(result);\r\n }\r\n },\r\n\r\n *getProjectList(action, { call, put }) {\r\n const result = yield call(getProjectList, action.payload);\r\n if (result) {\r\n yield put({ type: 'updateProjectList', payload: result.projects });\r\n }\r\n },\r\n\r\n *getApplicationDetail(action, { call, put }) {\r\n const { appName } = action.payload;\r\n const result = yield call(getApplicationDetails, { name: appName });\r\n yield put({ type: 'updateApplicationDetail', payload: result });\r\n if (action.callback && result) {\r\n action.callback(result);\r\n }\r\n },\r\n *getApplicationEnvbinding(action, { call, put }) {\r\n const { appName } = action.payload;\r\n const result = yield call(getApplicationEnvbinding, { appName: appName });\r\n yield put({ type: 'updateApplicationEnvbinding', payload: result });\r\n if (action.callback && result) {\r\n action.callback(result);\r\n }\r\n },\r\n *getApplicationStatus(action, { call, put }) {\r\n const { appName, envName } = action.payload;\r\n const result = yield call(getApplicationStatus, { name: appName, envName: envName });\r\n yield put({ type: 'updateApplicationStatus', payload: result });\r\n if (action.callback) {\r\n action.callback(result);\r\n }\r\n },\r\n *getApplicationAllStatus(action, { call, put }) {\r\n const { appName, envName } = action.payload;\r\n const result = yield call(getApplicationAllStatus, { name: appName, envName: envName });\r\n yield put({ type: 'updateApplicationAllStatus', payload: result });\r\n if (action.callback) {\r\n action.callback(result);\r\n }\r\n },\r\n *getApplicationComponents(action, { call, put }) {\r\n const result = yield call(getApplicationComponents, action.payload);\r\n yield put({\r\n type: 'updateComponents',\r\n payload: { components: result && result.components, componentsApp: action.payload.appName },\r\n });\r\n },\r\n *getApplicationPolicies(action, { call, put }) {\r\n const result = yield call(getPolicyList, action.payload);\r\n yield put({ type: 'updatePoliciesList', payload: result });\r\n },\r\n *getComponentDefinitions(action, { call, put }) {\r\n const { urlParam } = action.payload;\r\n const result = yield call(getComponentDefinitions, { envName: urlParam });\r\n yield put({\r\n type: 'updateComponentDefinitions',\r\n payload: result && result.definitions,\r\n });\r\n },\r\n *getApplicationWorkflows(action, { call, put }) {\r\n const result = yield call(listWorkflow, action.payload);\r\n yield put({\r\n type: 'updateWorkflow',\r\n payload: result.workflows,\r\n });\r\n },\r\n },\r\n};\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nexport default {\r\n namespace: 'cloudshell',\r\n state: {\r\n show: false,\r\n },\r\n reducers: {\r\n updateShow(state, { type, payload }) {\r\n return {\r\n ...state,\r\n show: payload,\r\n };\r\n },\r\n },\r\n effects: {\r\n *close(action, { call, put }) {\r\n yield put({ type: 'updateShow', payload: false });\r\n },\r\n *open(action, { call, put }) {\r\n yield put({ type: 'updateShow', payload: true });\r\n },\r\n },\r\n};\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport { getClusterList, createCluster, connectcloudCluster } from '../api/cluster';\r\n\r\nexport default {\r\n namespace: 'clusters',\r\n state: {\r\n clusterList: [],\r\n cloudClusters: [],\r\n cloudClustersTotal: 0,\r\n },\r\n reducers: {\r\n updateClusterList(state, { type, payload }) {\r\n return {\r\n ...state,\r\n clusterList: payload,\r\n };\r\n },\r\n updateCloudClusters(state, { type, payload }) {\r\n const { clusters = [], total = 0 } = payload;\r\n return {\r\n ...state,\r\n cloudClusters: clusters,\r\n cloudClustersTotal: total,\r\n };\r\n },\r\n },\r\n effects: {\r\n *getClusterList(action, { call, put }) {\r\n const result = yield call(getClusterList, action.payload);\r\n if (result) {\r\n yield put({ type: 'updateClusterList', payload: result.clusters || [] });\r\n }\r\n },\r\n *createCluster(action, { call, put }) {\r\n const result = yield call(createCluster, action.payload);\r\n if (action.callback) {\r\n action.callback(result);\r\n }\r\n },\r\n *connectcloudCluster(action, { call, put }) {\r\n const { params, resolve } = action.payload;\r\n const result = yield call(connectcloudCluster, params);\r\n resolve(result);\r\n },\r\n },\r\n};\r\n","import {\r\n detailPlugin,\r\n disablePlugin,\r\n enablePlugin,\r\n getPluginList,\r\n installPlugin,\r\n setPlugin,\r\n uninstallPlugin\r\n} from \"../api/plugin\";\r\n\r\nexport default {\r\n namespace: 'plugins',\r\n state: {\r\n pluginList: [],\r\n },\r\n reducers: {\r\n addOrUpdatePlugin(state, {type, payload}) {\r\n // add the plugin to pluginList if not exist\r\n const pluginList = state.pluginList;\r\n const plugin = payload;\r\n const newPluginList = pluginList.map((p) => {\r\n if (p.id === plugin.id) {\r\n return plugin;\r\n } else {\r\n return p;\r\n }\r\n })\r\n return {\r\n ...state,\r\n pluginList: newPluginList,\r\n }\r\n },\r\n addOrUpdateBatchPlugins(state, {type, payload}) {\r\n // add the plugin to pluginList if not exist\r\n const pluginList = state.pluginList;\r\n // make a copy to newPluginList\r\n const newPluginList = pluginList.slice();\r\n // merge payload to newPluginList\r\n for (const plugin of payload) {\r\n let idx = newPluginList.findIndex(p => p.id === plugin.id)\r\n if (idx === -1) {\r\n newPluginList.push(plugin);\r\n } else {\r\n const _old = newPluginList[idx]\r\n const _new = {..._old, ...plugin}\r\n newPluginList[idx] = _new\r\n }\r\n }\r\n return {\r\n ...state,\r\n pluginList: newPluginList,\r\n }\r\n },\r\n removePluginDetail(state, {type, payload}) {\r\n // remove the plugin from pluginList if exist\r\n const pluginList = state.pluginList;\r\n const {id} = payload;\r\n const newPluginList = pluginList.map((p) => {\r\n if (p.id === id) {\r\n return {\r\n id: p.id,\r\n url: p.url,\r\n }\r\n } else {\r\n return p;\r\n }\r\n })\r\n return {\r\n ...state,\r\n pluginList: newPluginList,\r\n }\r\n },\r\n },\r\n effects: {\r\n * installPlugin(action, {call, put}) {\r\n try {\r\n const res = yield call(installPlugin, action.payload);\r\n if (res && res.info) {\r\n // There's no url in returned plugin object, so we need to set it after calling\r\n res.url = action.payload.url\r\n yield put({type: 'addOrUpdatePlugin', payload: res});\r\n if (action.callback) {\r\n action.callback();\r\n }\r\n }\r\n } catch (e) {\r\n console.log('Error in installPlugin:', e)\r\n }\r\n },\r\n * uninstallPlugin(action, {call, put}) {\r\n yield call(uninstallPlugin, action.payload);\r\n yield put({type: 'removePluginDetail', payload: action.payload})\r\n if (action.callback) {\r\n action.callback();\r\n }\r\n },\r\n * getPluginList(action, {call, put}) {\r\n const res = yield call(getPluginList, action.payload);\r\n if (res) {\r\n yield put({type: 'addOrUpdateBatchPlugins', payload: res.plugins});\r\n }\r\n },\r\n * detailPlugin(action, {call, put}) {\r\n const res = yield call(detailPlugin, action.payload);\r\n if (res) {\r\n yield put({type: 'addOrUpdatePlugin', payload: res});\r\n }\r\n },\r\n * enablePlugin(action, {call, put}) {\r\n const res = yield call(enablePlugin, action.payload);\r\n if (res.info) {\r\n yield put({type: 'addOrUpdatePlugin', payload: res});\r\n }\r\n if (action.callback) {\r\n action.callback();\r\n }\r\n },\r\n * setPlugin(action, {call, put}) {\r\n const res = yield call(setPlugin, action.payload);\r\n if (res) {\r\n yield put({type: 'addOrUpdatePlugin', payload: res});\r\n }\r\n if (action.callback) {\r\n action.callback();\r\n }\r\n },\r\n * disablePlugin(action, {call, put}) {\r\n const res = yield call(disablePlugin, action.payload);\r\n if (res) {\r\n yield put({type: 'addOrUpdatePlugin', payload: res});\r\n }\r\n if (action.callback) {\r\n action.callback();\r\n }\r\n }\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nexport default {\r\n namespace: 'uischema',\r\n state: {\r\n appNamespace: '',\r\n appName: '',\r\n project: '',\r\n repo: { secretName: '', url: '' },\r\n },\r\n reducers: {\r\n updateAppName(state, { type, payload }) {\r\n return {\r\n ...state,\r\n appName: payload,\r\n };\r\n },\r\n updateAppNamespace(state, { type, payload }) {\r\n return {\r\n ...state,\r\n appNamespace: payload,\r\n };\r\n },\r\n updateHelmRepo(state, { type, payload }) {\r\n return {\r\n ...state,\r\n repo: payload,\r\n };\r\n },\r\n updateProject(state, { type, payload }) {\r\n return {\r\n ...state,\r\n project: payload,\r\n };\r\n },\r\n },\r\n effects: {\r\n *setAppName(action, { call, put }) {\r\n if (action.payload) {\r\n yield put({ type: 'updateAppName', payload: action.payload || '' });\r\n }\r\n },\r\n *setAppNamespace(action, { call, put }) {\r\n if (action.payload) {\r\n yield put({ type: 'updateAppNamespace', payload: action.payload || '' });\r\n }\r\n },\r\n *setProject(action, { call, put }) {\r\n if (action.payload) {\r\n yield put({ type: 'updateProject', payload: action.payload || '' });\r\n }\r\n },\r\n *setHelmRepo(action, { call, put }) {\r\n if (action.payload) {\r\n yield put({ type: 'updateHelmRepo', payload: action.payload || '' });\r\n }\r\n },\r\n },\r\n};\r\n"],"names":["AppPagePlugin","meta","root","PluginType","PluginType2","VelaUXPlugin","tab","DeployModes","DeployModes2","unmarshal","kv","marshal","obj","LayoutModes","LayoutModes2","MenuTypes","MenuTypes2","baseURLOject","base","getAddonRegistriesList","params","res","createAddonRegistry","deleteAddonRegistry","getAddonsList","getAddonsDetails","gurl","disableAddon","enableAddon","req","upgradeAddon","getAddonsStatus","getEnabledAddons","url","getApplicationList","createApplication","createURL","getApplicationDetails","getApplicationStatus","getApplicationAllStatus","deleteApplication","getApplicationComponents","appName","createApplicationComponent","query","getComponentDetails","deployApplication","customError","getPolicyList","createPolicy","updatePolicy","policyName","getPolicyDetail","deletePolicy","gURL","createApplicationTemplate","createApplicationEnvbinding","updateApplicationEnvbinding","getApplicationEnvbinding","deleteApplicationEnvbinding","recycleApplicationEnvbinding","getApplicationComponent","componentName","createTrait","updateTrait","traitType","deleteTrait","listRevisions","detailRevision","revision","rollbackWithRevision","getApplicationStatistics","getApplicationWorkflowRecord","getApplicationEnvRecords","updateComponentProperties","resumeApplicationWorkflowRecord","workflowName","recordName","rollbackApplicationWorkflowRecord","terminateApplicationWorkflowRecord","getApplicationTriggers","updateApplication","createTrigger","updateTrigger","token","deleteTrigger","deleteComponent","compareApplication","_url","dryRunApplication","loginSSO","loginLocal","getDexConfig","getLoginType","updateSystemInfo","getLoginUserInfo","isAdminConfigured","initAdmin","isMock","getClusterList","createCluster","updateCluster","deleteCluster","getClusterDetails","getCloudClustersList","provider","page","pageSize","connectcloudCluster","createClusterNamespace","listTemplates","projectName","detailTemplate","queryData","createConfig","data","updateConfig","name","getConfigs","template","detailConfig","deleteConfig","getProjectConfigs","urlPath","getProjectConfigDistributions","applyProjectConfigDistribution","deleteProjectConfigDistribution","getDefinitionsList","definitionType","queryAll","detailDefinition","updateDefinitionStatus","paramsData","updateUISchema","getComponentDefinitions","detailComponentDefinition","getPolicyDefinitions","detailPolicyDefinition","getTraitDefinitions","detailTraitDefinition","application_mock","addons_mock","cluster_mock","workflows_mock","project_mock","addonsDetails_mock","disabletAddonsCluster_mock","enableAddonsCluster_mock","addonsStatus_mock","getOneNamespace_mock","getClusterDetails_mock","getApplicationDetails_mock","getApplicationComponents_mock","createApplicationComponent_mock","getComponentDetails_mock","updateApplication_mock","getPolicyList_mock","createPolicy_mock","getPolicyDetails_mock","createApplicationTemplate_mock","getWorkFlowsDetails_mock","createWorkFlow_mock","getWorkFlowsRecord_mock","clusterCloudList_mock","connectClusterCloud_mock","createApplicationEnv_mock","gettarget_mock","getTraitDefinitionsDetails_mock","getTraitDefinitions_mock","getTrait_mock","listWorkflowDefinition_mock","listWorkflowDetailsDefinition_mock","updateApplicationEnv_mock","getPayloadType_mock","getEnvs","createEnv","deleteEnv","updateEnv","getPluginList","detailPlugin","enablePlugin","disablePlugin","setPlugin","installPlugin","uninstallPlugin","application","definition","addons","enabledAddon","addonRegistries","cluster","project","targetURL","envURL","payloadTypeURL","repository","authenticationLogin","authenticationDexConfig","authenticationSystemInfo","authenticationLoginType","authenticationRefreshToken","authenticationUserInfo","authenticationAdminConfigured","authenticationInitAdmin","users","roles","platformPermissions","configs","configTemplates","cloudShell","plugin","managePlugin","getProjectList","createProject","updateProject","deleteProject","getProjectDetail","getProjectTargetList","getProjectPermissions","getProjectRoles","createProjectRoles","updateProjectRoles","deleteProjectRoles","getProjectUsers","createProjectUsers","updateProjectUser","deleteProjectUser","getCloudServiceProviderList","post","err","get","rdelete","put","domainObj","baseURL","loadSystemInfo","getTarget","createTarget","deleteTarget","updateTarget","listWorkflow","updateWorkflow","pathParams","createWorkflow","getEnvWorkflowRecord","detailWorkflow","detailWorkflowRecord","getWorkflowRecordLogs","getWorkflowRecordInputs","getWorkflowRecordOutputs","deleteWorkflow","getWorkflowDefinitions","scope","detailWorkflowDefinition","resources","currentLanguage","If","props","Translation","t","useTranslation","children","className","ListTitle","title","subTitle","extButtons","addButtonTitle","addButtonClick","buttonSize","item","ResourceName","value","index","node","tn","checkPermission","request","userInfo","permissions","key","perms","userPermissions","i","match","effect","permission","resourceMatch","requestResource","permissionResource","current","targetCurrent","Permission","store","CardContent","e","extendDotVisible","Row","Col","addonLists","clickAddon","enabledAddons","selectTags","getTagColor","tag","nameUpper","sep","orderAddonList","addon","status","addonStatus","notice","icon","version","description","tags","registryName","locale","listApplicationPods","velaQLParams","urlParams","listApplicationPodsDetails","listNamespaces","listCloudResources","listCloudResourceSecrets","listApplicationService","listContainerLog","listApplicationServiceEndpoints","listApplicationServiceAppliedResources","listApplicationResourceTree","detailResource","DrawerWithFooter","visible","placement","width","onOk","onClose","onOkButtonText","onOkButtonLoading","StatusShow","applicationStatus","loading","v","row","CPUNumber","onChange","id","disabled","initValue","DefinitionCode","containerId","language","readOnly","onBlurEditor","fileUrl","theme","container","modelUri","model","textModel","nextProps","runtime","CertBase64","option","reader","fileselect","values","init","message","CustomSelect","inputValue","setInputValue","dataSource","__defProp","__getOwnPropDesc","__decorateClass","decorators","target","kind","result","decorator","ComponentPatch","error","type","components","com","componentOptions","componentTypeOptions","traits","traitKey","traitPatches","traitPatchMap","validatorName","rule","callback","validatorType","i18n","trait","label","disable","event","ComponentPatches","prevState","cp","form","componentPatches","validator","errors","UISchemaContext","WorkflowContext","WorkflowEditContext","ComponentSelect","DiskNumber","Group","closed","jsonKey","propertyValue","alwaysShow","required","initClose","field","hasToggleIcon","enable","checked","getChartValues","getChartValueFiles","getCharts","getChartVersions","getChartRepos","getImageRepos","getImageInfo","HelmChartSelect","helm","repo","re","charts","stateHelm","inputChart","HelmChartVersionSelect","versions","inputChartVersion","HelmRepoSelect","repoType","defaultRepos","repos","dispatch","onChangeSecretRef","secretName","inputRepo","transDataSource","valueFile","setValueFile","KV","items","newItems","findValueType","additional","additionalParameter","outSideValueType","matchValueTypeObj","keyOptions","itemKey","setValues","keys","getValues","newValues","subkey","HelmValues","defaultValueFile","defaultValue","helmValues","showValuesFile","valueFiles","ImageSecretSelect","registries","ImageInput","onSecretChange","imageName","secretValue","secretID","imageInfo","secrets","secretDisabled","docker","path","port","K8sObjectsCode","code","object","ob","objects","showButton","MemoryNumber","PolicySelect","policyListData","policySelectDataSource","SecretKeySelect","secretKeys","SecretSelect","secret","setKeys","InputItem","Strings","inputList","valuesInfo","Numbers","ArrayItemGroup","labelTitle","StructItem","count","p","param","uiSchemas","paramMap","pre","next","paramCount","itemCount","structId","Structs","parameterGroupOption","keyMap","firstOption","structList","valueKeys","itemkey","struct","findSuffix","quantity","ix","quantityToScalar","suffix","num","transComponentDefinitions","componentDefinitions","defaultCoreDataSource","cloud","core","custom","getLink","endpointObj","appProtocol","host","protocol","getValue","currentKey","nextKey","getSelectLabel","getMatchParamObj","getBrowserNameAndVersion","agent","regStr_ie","regStr_ff","regStr_chrome","regStr_saf","browserNV","downloadStringFile","content","filename","element","file","convertRule","validate","rules","UISchema","advanced","codeError","conditions","action","enableConditionCount","condition","codeID","yamlValue","valueObj","paramKeyMap","uiSchema","inline","maxColSpan","disableRenderRow","mode","enableCodeEdit","onlyShowRequired","couldShowParamCount","couldBeDisabledParamCount","requiredParamCount","disableEdit","getGroup","getDefaultSwitchValue","switchResult","imagePullSecretsValue","initResult","colSpan","formItemLayout","showAdvancedButton","AddonDetailDialog","clusters","enabledClusters","properties","show","addonDetailInfo","statusLoading","upgradeLoading","enableLoading","addonsStatus","showStatusVisible","allClusters","endpoints","propertiesMode","schema","showAddon","addonName","showName","buttons","workflowStatus","getAppStatusShowType","statusInfo","clusterOptions","outerEndpoint","end","Drawer","linkURL","RegistryManageDialog","syncRegistries","showAdd","selectType","renderAction","registryDataSource","reItem","SelectSearch","listFunction","registryValue","tagList","Option","queryPlaceholder","Addons","addonsList","tagMap","old","list","a","b","registryList","history","addonListMessage","addonLoading","showAddonDetail","showRegistryManage","Title","EditAppDialog","alias","labels","annotations","editItem","FormItem","ComponentDialog","temporaryTraitList","componentType","dependsOn","traitLists","onComponentClose","isEditComponent","isCreateComponentLoading","isUpdateComponentLoading","editComponent","component","getInitComponentType","definitionDetail","ComponentsList","terraform","kubernetes","PolicyDialog","policy","createPolicyLoading","selectedPolicyItem","envName","workflow","steps","policyType","env","envbinding","workflows","stepOptions","wf","step","definitions","options","selected","definitionDetailLoading","policyDefinitionDetail","showType","span","PolicyList","policies","applicationDetail","envNameAlias","TraitDialog","podDisruptive","def","isEditTrait","findSameType","isLoading","traitItem","traitDefinitions","definitionLoading","getPayloadType","TriggerDialog","hasImage","trigger","editMode","payloadType","registry","submitLoading","c","payloadTypes","workflowOption","payloadTypeOption","componentsOption","TriggerList","createTriggerInfo","triggers","showTrigger","customTriggerType","webHookURL","command","customTriggerBody","body","copy","customTriggerTypes","ApplicationConfig","createTime","updateTraitList","newTraitItem","router","visibleTrait","visibleTrigger","showEditApplication","visibleComponent","visiblePolicy","policyDetail","statistics","Components","EnvRoute","DiffEditor","ApplicationDiff","baseName","targetName","compare","rollback2Revision","Header","targets","refresh","sourceOfTrust","recycleLoading","deleteLoading","refreshLoading","visibleApplicationDiff","disableStatusShow","targetOptions","ContainerLog","logs","logLines","lines","line","startsWithDate","idx","timestamp","pod","containerName","clusterName","previous","autoRefresh","refreshInterval","logContent","info","showTimestamps","PodDetail","statu","findStatus","record","firstTimestamp","eventTime","shellScript","state","requestMemory","useMemory","percent","requestcpu","usecpu","reason","Column","containerColumns","eventColumns","events","containers","showContainerLog","col","ApplicationInstanceList","configurations","instances","configuration","identifierKey","outputs","instanceName","region","paramKey","cloudComponents","showCloudInstance","queryPod","envs","cloudResources","getColor","targetMap","componentNameAlias","openRowKeys","force","podList","showStatus","cloudInstance","deployLoading","columns","expandedRowRender","onlyShowCloudInstance","Namespace","createNamespaceDialog","loadNamespaces","targetField","createNamespace","namespace","disableNew","namespaces","TargetDialog","isEdit","liteMode","runtimeNamespace","var_providerName","var_region","var_zone","var_vpcID","clusterList","targetItem","variable","projects","projectOptions","providerList","providerListOptions","pro","EnvDialog","selectTargets","envItem","targetNames","targetLoading","newTarget","existTarget","GeneralConfig","isDisableProject","defaultProject","AppDialog","envBindings","envOption","dialogStats","createLoading","envBinding","setVisible","visibleEnvDialog","envOptions","secondStep","showLabelMode","cur","button","onClick","app","more","displayLabels","applications","showMode","projectValue","envValue","labelValue","labelSelector","setLabelValue","appLabels","projectPlaceholder","appPlaceholder","envPlaceholder","labelPlaceholder","projectSource","labelSource","envSource","Application","existIndex","applicationList","showAddApplication","activeContainerName","ApplicationLog","activeComponentName","findPod","podNameList","containersNameList","activePodName","isActiveContainerNameDisabled","podLabel","containerLabel","LogContainer","loadRevisionDetail","setDetail","nodeKey","resource","ShowRevision","detail","statusPlaceholder","statusValue","statusList","envBinds","TableList","ok","findObj","diffMode","ApplicationRevisionList","updateQuery","isChangeEnv","isChangeStatus","revisionsList","showAppRevision","describeNode","statue","describeCluster","describeTarget","describeComponents","treeNodeKey","getGraphSize","nodes","height","getNodeSize","resourceIcons","cm","crb","crd","cronjob","deploy","ds","ep","group","hpa","ing","job","limits","netpol","ns","psp","pv","pvc","quota","rb","role","rs","sa","sc","sts","svc","user","vol","ResourceIcon","customStyle","svgName","initials","n","style","renderTraitTree","graph","dagre","edges","edgeInfo","edge","size","x","y","traitNode","distance","xMid","yMid","angle","ComponentNode","showTrait","setShowTrait","WithBalloon","graphNode2","renderResourceNode","graphNode","renderAppNode","renderPodNode","renderClusterNode","renderTargetNode","setNode","subNode","TreeGraph","graphNodes","loadResource","setResource","ShowResource","ApplicationGraph","tree","service","nodeMap","ln","deleteNode","isTop","parentNode","graphType","clusterTree","services","componentMap","s","clusterNode","showResource","zoom","ApplicationStatusPage","resourceLoading","endpointLoading","componentStatus","TagGroup","notDeploy","Tags","TraitMessages","ApplicationWorkflowList","w","renderStepStatusIcon","Step","output","input","onNodeClick","stepWidth","stepInterval","isActive","setActive","subStep","PipelineGraph","total","from","to","startPoint","endPoint","ApplicationWorkflowRecord","activeKey","stepStatus","prevProps","showRecord","showDetail","logLoading","logSource","inputs","inputLoading","outputLoading","rollbackLoading","resumeLoading","terminateLoading","stepSpec","sub","ApplicationWorkflow","currentRecord","records","showRecordName","envWorkflows","recordOptions","selectRecord","WorkflowPrompt","changed","onSave","onClearChanged","handleUnload","onHistoryBlock","location","moveToBlockedLocationAfterReactStateUpdate","renderConnector","Edge","firstPoint","StepTypeIcon","onDelete","onAddSubStep","subMode","StepSelect","stepName","inGroup","groupStep","InputItemForm","setFrom","parameterKey","setParameterKey","fromChange","parameterKeyChange","fromItemOptions","convertOutputs","out","InputItems","setItems","update","OutputItemForm","setName","valueFrom","setValueFrom","nameChange","valueFromChange","OutputItems","StepForm","consumerData","isSubStep","defaultCategory","initDefinitionCategory","defs","buildDefinitionCategory","customDefs","categoryMap","category","TypeSelect","checkStepName","addSub","categories","checkStepNameRule","WorkflowStudio","se","ws","found","addIndex","subIndex","j","newSteps","showStep","addAction","WorkflowYAML","setContent","renderUrl","toUrlParams","encodeURIComponent2","val","pctEncodeSpaces","rbracket","isArray","add","k","valueQueryPart","buildParams","prefix","len","parseKeyValue","keyValue","parts","keyValue2","splitPoint","tryDecodeURIComponent","parsedVal","HistoryWrapper","replace","currentLocation","newQuery","updatedUrl","locationSearchToObject","search","queryString","locationService","generateCanaryDeployGroup","batch","interval","batchStep","approveStep","CanarySetting","deployBatchConfig","setDeployBatchConfig","initBatch","getStepBatch","canaryDeployDefinition","d","onSubmit","deploySteps","canSetting","ButtonGroup","WorkflowModeOptions","ApplicationWorkflowStudio","setCanary","saveLoading","tar","AddClusterDialog","editClusterName","valueInfo","dashboardURL","card","CloudServiceDialog","accessKeyID","accessKeySecret","resolve","pageIdx","choseInput","cloudClusters","btnLoading","tableLoading","findArr","InputSearch","Cluster","addonMessage","addonList","ele","isMatchName","arr","lastIndex","showSymbol","showAddCluster","showAddCloudCluster","isShowAddonMessage","q","CreateConfigDialog","configName","templateName","templateDetail","templateLoading","templates","edit","templateOptions","tem","Configs","nextPropsParams","config","searchValue","Definitions","newList","searchList","enumStatusList","colorClass","EnvList","envTotal","is","NotFound","listPipelines","createPipeline","updatePipeline","loadPipeline","deletePipeline","loadPipelineRuns","deletePipelineRun","stopPipelineRun","loadPipelineRunBase","loadPipelineRunStatus","loadPipelineRunStepLogs","listPipelineContexts","pipelineName","deletePipelineContext","contextName","updatePipelineContext","context","loadPipelineRunStepOutputs","loadPipelineRunStepInputs","createPipelineContext","runPipeline","terminatePipelineRun","resumePipelineRun","NewContext","clone","errs","keyValues","editValues","setLoading","contexts","setContexts","setContext","noContext","setNoContext","setSelectContextName","addContext","showAddContext","pipeline","onClonePipelineContext","onEditPipelineContext","onDeletePipelineContext","onRunPipeline","okButtonDisable","CreatePipeline","stepMode","subStepMode","stepArray","defaultContext","contextValues","fileSelect","messages","modeOptions","ClonePipeline","pipelineDetail","loadingContext","cloneLoading","disableProject","runs","setRuns","deleteRun","phase","run","PipelineListPage","pipelines","text","runState","day","failure","success","showRunPipeline","showRuns","showNewPipeline","showClonePipeline","addonEnabled","runName","Breadcrumb","runBase","loadRunStatus","runStatus","runCondition","con","reRunLoading","stopLoading","PipelineRunPage","PipelineStudio","targetValue","targetList","targetSource","ProjectApplications","queryParams","editApplicationItem","isAddApplication","isEditApplication","MemberDialog","isEditMember","userName","userRoles","createEle","editMember","projectRoles","rolesList","ProjectMembers","memberList","isMemberDialogVisible","ProjectPipelines","ProjectMenu","isCreateProjectRoles","activeRoleName","activeRole","CheckboxGroup","ProjectPermPoliciesDetail","activeItem","projectPermissions","ProjectRoles","activeRoleItem","roleName","isAddRole","ConfigDistributionPage","targetStatus","distributions","DistributeConfigDialog","applyTargets","int","config2","showConfig","distribution","GeneralDialog","isEditGeneral","owner","editGeneral","userList","General","projectDetails","Targets","Summary","ConfigDistribution","getUserList","createUser","updateUser","deleteUser","changeUserDisable","changeUserEnable","prepareCloudShell","CreateConfig","isEditProject","editProjectItem","Projects","userListData","CreateProjectDialog","getPlatformPermissions","getRoleList","createRole","updateRole","deleteRole","RolesDialog","isEditRole","editRoleItem","permissionNames","permPoliciesList","Roles","TargetList","visibleDelivery","UiSchema","definitionName","yamlValues","eleUiSchema","updateUISchemaLoading","yamlHeight","CreateUser","isEditUser","editUser","email","password","lastLoginTime","rolesName","rolesListSelect","ResetPassword","isResetPassword","Users","isUserDialogVisible","isResetPasswordDialog","nameValue","aliasValue","emailValue","EnvBindPlanDialog","existEnvs","eb","canAdd","TabsContent","visibleEnvPlan","AddAndEditEnvBind","ApplicationDryRun","RadioGroup","checkCanaryDeployStep","DeployConfigDialog","createReq","dryRunResult","defaultEnv","applicationAllStatus","dryRunLoading","showDryRunResult","dryRunResultState","dryRunMessage","envStatus","status2","env2","workflowOptions","haveCanaryRollout","haveCanaryDeploy","ApplicationHeader","currentPath","showDeployConfig","DeployConfig","isEnvPage","menuItems","activeItems","ApplicationLayout","activeName","loadingDom","EnvTabs","Menus","imgDate","sso","git","aliyun","aws","azure","nacos","grafana","prometheus","menuData","findMatchData","menuItem","ConfigsLayout","pathname","link","DefinitionDetailsLayout","active","definitionTypes","matchDefinition","menu","activeType","DefinitionsLayout","ProjectLayout","MyProjectList","PlatformSetting","systemInfo","enableCollection","loginType","velaAddress","projectMaps","infos","businessGuideCode","clientID","redirectURL","newRedirectURl","defaultProjectItems","cache","initializedAt","pluginInfoCache","formatPluginId","pluginId","getPluginInfo","settings","clearPluginSettingsCache","registerPluginInCache","invalidatePluginInCache","locateWithCache","load","defaultBust","address","extractPath","bust","_","SystemJS","exposeToPlugin","require","exports","module","react","importPluginModule","builtIn","importAppPagePlugin","pluginExports","PluginWrapper","plugins","pluginID","pluginService","getPluginSrv","defaultWorkspaces","defaultWorkspaceMenus","MenuWrapper","include","m","pluginMenu","workspace","menus","catalog","newMenu","matched","route","menuService","renderIcon","RootPage","setApp","loadAppPlugin","AppRootPage2","types2","ConfigPage","pluginList","_meta","updateMeta","previousState","dispatchMeta","handleJSONChange","newJsonData","handleSecureJSONChange","newSecureJsonData","pageApp","isEnabled","isInstalled","saveSetting","saveAndEnable","handleGotoPlugins","AppConfigPage2","mapStateToProps","AppConfigPage","AppRootPage","Router","ApplicationEnvRoute","ApplicationStatus","ApplicationWorkflowStatus","EnvPage","mergeProps","Project","ProjectSummary","DefinitionDetails","LeftMenuModule","setMenus","grafanaConfigs","setGrafanaConfigs","menus2","grafanaLeftMenu","g","fallBackCatalog","childrenSlider","childrenItem","item2","childrenArr","_isEnglish","isEnglish","setIsEnglish","setData","expire","cookie","getData","CloudShell","BASE_DOMAIN","domain","prepare","preparePadding","TelemetryDataCollectionKey","TelemetryDataCollectionServer","now","currentWorkspace","workspaces","ErrorBoundary","errorInfo","dependencies","onRecover","ErrorShow","MainLayout","setWorkspace","setMode","layoutMode","LeftMenu","CallBackPage","customErrorMessage","EditPlatFormUserDialog","LoginPage","username","issuer","dexClientURL","loginErrorMessage","loginLoading","firstTimeLogin","AuthRoute","RouterView","routes","defaultRoute","Comp","getModel","createModel","dva","payload","call","getMessage","ResetLogin","isRefreshing","retryRequests","handleAPIError","getRefreshTokenFunc","refreshToken","BackendWrapper","response","refreshData","cb","getBackendSrv","getLanguage","lang","getDomain","MOCK","isApplicationPath","isClustersPath","isAddonsPath","isOperationPath","isModelPath","isAPPStorePath","isTargetURL","isEnvPath","isPipelinePath","isUsersPath","isProjectPath","isRolesPath","isConfigPath","isDefinitionsPath","APPLICATION_PATH","CLUSTERS_PATH","ADDONS_PATH","WORKFLOWS_PATH","momentDate","time","momentShortDate","beautifyTime","mistiming","postfix","arrr","arrn","inm","timeDiff","start","endTime","seconds","beautifyBinarySize","unitArr","sizeStr","checkName","urlRegular","checkImageName","ACKClusterStatus","replaceUrl","checkUserPassword","isMatchBusinessCode","businessCode","equalArray","sb","intersectionArray","checkEnabledAddon","convertAny","showAlias","handleError","isShowErrFlag","localeData","_SingletonLocal","SingletonLocal","token_key","getToken","setToken","removeToken","hasToken","uxPlugins","urlParam","newPluginList","_new"],"sourceRoot":""}