{"version":3,"sources":["store/MenuEntries.js","store/Bundles.js","components/NavMenu.js","components/Sidenav.js","components/Layout.js","components/Home.js","components/bundle/CopyContentAction.js","components/bundle/Bundle.js","components/bundle/Bundles.js","App.js","registerServiceWorker.js","index.js","store/configureStore.js"],"names":["initialState","entries","isLoading","actionCreators","requestMenuEntries","_ref","Object","asyncToGenerator","regenerator_default","a","mark","_callee","dispatch","getState","response","wrap","_context","prev","next","menuEntries","length","abrupt","type","fetch","sent","json","stop","this","_x","_x2","apply","arguments","reducer","state","action","objectSpread","requestBundles","bundles","NavMenu","props","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","openMenu","setState","open","closeMenu","nextProps","nextState","react_default","createElement","SwipeableDrawer_default","onClose","onOpen","tabIndex","role","onClick","onKeyDown","sideList","React","Component","withStyles","MenuEntry","ListItem_default","component","Link","to","ListItemIcon_default","Icon_default","icon","ListItemText_default","primary","name","Sidenav","_this$props","classes","className","root","Fade_default","in","style","transitionDelay","List_default","map","entry","Sidenav_MenuEntry","key","onMenuEntryClick","placeholder","height","unmountOnExit","CircularProgress_default","compose","theme","width","text-align","connect","bindActionCreators","Layout","auth","anchorEl","handleChange","event","checked","handleMenu","currentTarget","handleClose","AppBar_default","position","Toolbar_default","IconButton_default","menuButton","color","aria-label","Menu_default","Typography_default","variant","flex","components_NavMenu","components_Sidenav","children","flexGrow","marginLeft","marginRight","href","target","rel","CopyContentAction","copied","handleCopyClick","reason","content","messageKey","messageId","concat","Tooltip_default","title","lib","text","onCopy","Snackbar_default","anchorOrigin","vertical","horizontal","autoHideDuration","ContentProps","aria-describedby","message","id","Button_default","handleOctopusClick","close","Close_default","ClientCountBadge","bundle","filteredClients","filter","hasFilter","undefined","trim","clientsCountBadge","clientsCount","toString","Badge_default","badgeContent","Fragment","Bundle","expanded","openMenuAnchorEl","window","focus","handleMenuClose","handleExpandClick","handleOpenMenuClick","filterEntries","toLowerCase","filteredByBundle","clients","client","indexOf","database","domains","k","_classnames","octopus","commaSeparatedDatabases","commaSeparatedDomains","version","updatedAt","Card_default","classnames","card","defineProperty","cardContracted","cardExpanded","CardHeader_default","avatar","Avatar_default","alt","src","aria-owns","aria-haspopup","MoreVert_default","core_Menu_default","Boolean","MenuItem_default","subheader","moment","format","placement","CardActions_default","actions","disableActionSpacing","bundle_CopyContentAction","WebIcon_default","DatabaseExportIcon_default","expand","Bundle_ClientCountBadge","cardBadge","Chip_default","label","expandCounter","aria-expanded","ExpandMore_default","expandIcon","expandIconOpen","Collapse_default","timeout","CardContent_default","cardDetails","Paper_default","rootContent","dist_default","data","c","columns","options","customBodyRender","tableMeta","updateValue","d","i","pagination","rowsPerPage","selectableRows","responsive","minWidth","maxWidth","transition","transitions","create","duration","shortest","easing","whiteSpace","display","fontSize","transform","backgroundColor","padding","paddingRight","borderRadius","margin","chip","spacing","unit","paper","marginTop","overflowX","table","maxHeight","Bundles","value","e","showAll","filteredEntries","Grid_default","container","item","xs","TextField_default","textField","onChange","bundle_Bundle","flexWrap","menu","App","components_Layout","react_router_es","exact","path","Home","typography","isLocalhost","location","hostname","match","registerValidSW","swUrl","navigator","serviceWorker","register","then","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","catch","error","baseUrl","document","getElementsByTagName","getAttribute","history","createBrowserHistory","basename","store","reducers","MenuEntries","middleware","thunk","routerMiddleware","enhancers","rootReducer","combineReducers","routing","routerReducer","createStore","applyMiddleware","configureStore","initialReduxState","rootElement","getElementById","ReactDOM","render","CssBaseline_default","es","react_router_redux_es","src_App","URL","process","origin","addEventListener","status","headers","get","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"sSAEMA,EAAe,CAAEC,QAAS,GAAIC,WAAW,GAElCC,EAAiB,CAC5BC,mBAAoB,iCAAAC,EAAAC,OAAAC,EAAA,EAAAD,CAAAE,EAAAC,EAAAC,KAAM,SAAAC,EAAOC,EAAUC,GAAjB,IAAAC,EAAAb,EAAA,OAAAO,EAAAC,EAAAM,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,YACpBL,IAAWM,YAAYlB,QAAQmB,OAAS,GADpB,CAAAJ,EAAAE,KAAA,eAAAF,EAAAK,OAAA,wBAMxBT,EAAS,CAAEU,KAXgB,yBAaf,2BARYN,EAAAE,KAAA,EASDK,MADX,4BARY,cASlBT,EATkBE,EAAAQ,KAAAR,EAAAE,KAAA,EAUFJ,EAASW,OAVP,OAUlBxB,EAVkBe,EAAAQ,KAYxBZ,EAAS,CAAEU,KAhBgB,uBAgBcrB,YAZjB,yBAAAe,EAAAU,SAAAf,EAAAgB,SAAN,gBAAAC,EAAAC,GAAA,OAAAxB,EAAAyB,MAAAH,KAAAI,YAAA,KAgBTC,EAAU,SAACC,EAAOC,GAG7B,OAFAD,EAAQA,GAASjC,EAtBY,yBAwBzBkC,EAAOZ,KACFhB,OAAA6B,EAAA,EAAA7B,CAAA,GACF2B,EADL,CAEE/B,WAAW,IA1Bc,yBA8BzBgC,EAAOZ,KACFhB,OAAA6B,EAAA,EAAA7B,CAAA,GACF2B,EADL,CAEEhC,QAASiC,EAAOjC,QAChBC,WAAW,IAIR+B,GCrCHjC,EAAe,CAAEC,QAAS,GAAIC,WAAW,GAElCC,EAAiB,CAC5BiC,eAAgB,iCAAA/B,EAAAC,OAAAC,EAAA,EAAAD,CAAAE,EAAAC,EAAAC,KAAM,SAAAC,EAAOC,EAAUC,GAAjB,IAAAC,EAAAb,EAAA,OAAAO,EAAAC,EAAAM,KAAA,SAAAC,GAAA,cAAAA,EAAAC,KAAAD,EAAAE,MAAA,YAChBL,IAAWwB,QAAQpC,QAAQmB,OAAS,GADpB,CAAAJ,EAAAE,KAAA,eAAAF,EAAAK,OAAA,wBAMpBT,EAAS,CAAEU,KAXY,oBAaX,kBARQN,EAAAE,KAAA,EASGK,MADX,mBARQ,cASdT,EATcE,EAAAQ,KAAAR,EAAAE,KAAA,EAUEJ,EAASW,OAVX,OAUdxB,EAVce,EAAAQ,KAYpBZ,EAAS,CAAEU,KAhBY,kBAgBcrB,YAZjB,yBAAAe,EAAAU,SAAAf,EAAAgB,SAAN,gBAAAC,EAAAC,GAAA,OAAAxB,EAAAyB,MAAAH,KAAAI,YAAA,KAgBLC,EAAU,SAACC,EAAOC,GAG7B,OAFAD,EAAQA,GAASjC,EAtBQ,oBAwBrBkC,EAAOZ,KACFhB,OAAA6B,EAAA,EAAA7B,CAAA,GACF2B,EADL,CAEE/B,WAAW,IA1BU,oBA8BrBgC,EAAOZ,KACFhB,OAAA6B,EAAA,EAAA7B,CAAA,GACF2B,EADL,CAEEhC,QAASiC,EAAOjC,QAChBC,WAAW,IAIR+B,wKChCHK,cAEF,SAAAA,EAAYC,GAAO,IAAAC,EAAA,OAAAlC,OAAAmC,EAAA,EAAAnC,CAAAqB,KAAAW,IACfE,EAAAlC,OAAAoC,EAAA,EAAApC,CAAAqB,KAAArB,OAAAqC,EAAA,EAAArC,CAAAgC,GAAAM,KAAAjB,KAAMY,KAMVM,SAAW,WACPL,EAAKM,SAAS,CACZC,MAAM,KATOP,EAanBQ,UAAY,WACRR,EAAKM,SAAS,CACZC,MAAM,KAbRP,EAAKP,MAAQ,CACTc,KAAMR,EAAMQ,MAHDP,yFAmBOS,EAAWC,GACjCvB,KAAKmB,SAAS,CACVC,KAAME,EAAUF,wCAKpB,OACII,EAAA1C,EAAA2C,cAACC,EAAA5C,EAAD,CACIsC,KAAMpB,KAAKM,MAAMc,KACjBO,QAAS3B,KAAKqB,UACdO,OAAQ5B,KAAKkB,UAEjBM,EAAA1C,EAAA2C,cAAA,OACII,SAAU,EACVC,KAAK,SACLC,QAAS/B,KAAKqB,UACdW,UAAWhC,KAAKqB,WAEfrB,KAAKY,MAAMqB,kBAxCNC,IAAMC,WA+CbC,uBAlDA,GAkDAA,CAAmBzB,wJC9B5B0B,GAAY,SAASzB,GACvB,OACIY,EAAA1C,EAAA2C,cAACa,EAAAxD,EAAD,CAAUiD,QAASnB,EAAMmB,QAASQ,UAAWC,IAAMC,GAAI7B,EAAM6B,IACzDjB,EAAA1C,EAAA2C,cAACiB,EAAA5D,EAAD,KAAc0C,EAAA1C,EAAA2C,cAACkB,GAAA7D,EAAD,KAAO8B,EAAMgC,OAC3BpB,EAAA1C,EAAA2C,cAACoB,GAAA/D,EAAD,CAAcgE,QAASlC,EAAMmC,SAKnCC,gMAGAhD,KAAKY,MAAMnC,sDAGJ,IAAAoC,EAAAb,KAAAiD,EAE0BjD,KAAKY,MAA5BsC,EAFHD,EAEGC,QAAS3E,EAFZ0E,EAEY1E,UAEjB,OACIiD,EAAA1C,EAAA2C,cAAA,OAAK0B,UAAWD,EAAQE,MACxB5B,EAAA1C,EAAA2C,cAAC4B,GAAAvE,EAAD,CACIwE,IAAK/E,EACLgF,MAAO,CACHC,gBAAiBjF,EART,QAQmC,QAG/CiD,EAAA1C,EAAA2C,cAACgC,EAAA3E,EAAD,CAAMyD,UAAU,OACXvC,KAAKY,MAAMtC,QAAQoF,IAAI,SAAAC,GAAK,OACrBnC,EAAA1C,EAAA2C,cAACmC,GAAD,CACIC,IAAKF,EAAMlB,GACXV,QAASlB,EAAKD,MAAMkD,iBACpBrB,GAAIkB,EAAMlB,GAAIM,KAAMY,EAAMZ,KAC1BH,KAAMe,EAAMf,WAM7BrE,GACCiD,EAAA1C,EAAA2C,cAAA,OAAK0B,UAAWD,EAAQa,aACpBvC,EAAA1C,EAAA2C,cAAC4B,GAAAvE,EAAD,CACKwE,GAAI/E,EACJgF,MAAO,CACHC,gBAAiBjF,EA5BlB,QA4B4C,MAC3CyF,OAAQzF,EAAY,GAAK,GAE7B0F,eAAa,GAEdzC,EAAA1C,EAAA2C,cAACyC,GAAApF,EAAD,gBAxCFoD,IAAMC,WAiDbgC,eACX/B,qBApEW,SAAAgC,GAAK,MAAK,CACrBhB,KAAM,CACFiB,MAAO,KAEXN,YAAa,CACXO,aAAc,aAgEhBC,YACI,SAAAjE,GAAK,OAAIA,EAAMd,aACf,SAAAP,GAAQ,OAAIuF,YAAmBhG,EAAgBS,KAJxCkF,CAMXnB,IChEIyB,8MAEJnE,MAAQ,CACNoE,MAAM,EACNC,SAAU,KACVvD,MAAM,EACNa,SAAU,MAGZ2C,aAAe,SAACC,EAAOC,GACrBjE,EAAKM,SAAS,CAAEuD,KAAMI,OAGxBC,WAAa,SAAAF,GACXhE,EAAKM,SAAS,CAAEwD,SAAUE,EAAMG,mBAGlCC,YAAc,WACZpE,EAAKM,SAAS,CAAEwD,SAAU,UAG5BzD,SAAW,WACPL,EAAKM,SAAS,CACZC,MAAM,OAIZC,UAAY,WACRR,EAAKM,SAAS,CACZC,MAAM,6EAIH,IACC8B,EAAYlD,KAAKY,MAAjBsC,QAER,OACE1B,EAAA1C,EAAA2C,cAAA,OAAK0B,UAAWD,EAAQE,MACtB5B,EAAA1C,EAAA2C,cAACyD,EAAApG,EAAD,CAAQqG,SAAS,SACf3D,EAAA1C,EAAA2C,cAAC2D,EAAAtG,EAAD,KACE0C,EAAA1C,EAAA2C,cAAC4D,EAAAvG,EAAD,CAAYqE,UAAWD,EAAQoC,WAAYC,MAAM,UAAUC,aAAW,OAAOzD,QAAS/B,KAAKkB,UACzFM,EAAA1C,EAAA2C,cAACgE,EAAA3G,EAAD,OAEF0C,EAAA1C,EAAA2C,cAACiE,EAAA5G,EAAD,CAAY6G,QAAQ,QAAQJ,MAAM,UAAUpC,UAAWD,EAAQ0C,MAA/D,YAKJpE,EAAA1C,EAAA2C,cAACoE,EAAD,CACIzE,KAAMpB,KAAKM,MAAMc,KACjBa,SAAUT,EAAA1C,EAAA2C,cAACqE,GAAD,CAAShC,iBAAkB9D,KAAKqB,cAG7CrB,KAAKY,MAAMmF,iBArDC7D,IAAMC,WA+DZC,wBA5EF,CACXgB,KAAM,CACJ4C,SAAU,GAEZJ,KAAM,CACJA,KAAM,GAERN,WAAY,CACVW,YAAa,GACbC,YAAa,KAmEF9D,CAAmBqC,ICxErBF,iBAZF,SAAA3D,GAAK,OAChBY,EAAA1C,EAAA2C,cAAA,WACED,EAAA1C,EAAA2C,cAAA,sCACAD,EAAA1C,EAAA2C,cAAA,UACID,EAAA1C,EAAA2C,cAAA,UAAID,EAAA1C,EAAA2C,cAAA,KAAG0E,KAAK,uDAAuDC,OAAO,SAASC,IAAI,uBAAnF,8BACJ7E,EAAA1C,EAAA2C,cAAA,UAAID,EAAA1C,EAAA2C,cAAA,KAAG0E,KAAK,8FAA8FC,OAAO,SAASC,IAAI,uBAA1H,oCACJ7E,EAAA1C,EAAA2C,cAAA,UAAID,EAAA1C,EAAA2C,cAAA,KAAG0E,KAAK,+BAA+BC,OAAO,SAASC,IAAI,uBAA3D,YACJ7E,EAAA1C,EAAA2C,cAAA,UAAID,EAAA1C,EAAA2C,cAAA,KAAG0E,KAAK,+BAA+BC,OAAO,SAASC,IAAI,uBAA3D,ihBCuEGC,8MAvEXhG,MAAQ,CAAEiG,QAAQ,KAElBC,gBAAkB,WACd3F,EAAKM,SAAS,CACVoF,QAAQ,OAIhBtB,YAAc,SAACJ,EAAO4B,GACH,cAAXA,GAIJ5F,EAAKM,SAAS,CAAEoF,QAAQ,6EAGnB,IAAAtD,EAC0CjD,KAAKY,MAA5C8F,EADHzD,EACGyD,QAAS3D,EADZE,EACYF,KAAM4D,EADlB1D,EACkB0D,WAAYzD,EAD9BD,EAC8BC,QAC7B0D,EAAS,GAAAC,OAAMF,EAAN,OACf,OACInF,EAAA1C,EAAA2C,cAAA,WACID,EAAA1C,EAAA2C,cAACqF,GAAAhI,EAAD,CACIiI,MAAK,QAAAF,OAAU9D,EAAV,mDAELvB,EAAA1C,EAAA2C,cAACuF,GAAA,gBAAD,CACIC,KAAMP,EACNQ,OAAQlH,KAAKwG,iBAEbhF,EAAA1C,EAAA2C,cAAC4D,EAAAvG,EAAD,CACI0G,aAAYkB,EACZnB,MAAOvF,KAAKM,MAAMiG,OAAS,UAAY,WAEtCvG,KAAKY,MAAMmF,YAIxBvE,EAAA1C,EAAA2C,cAAC0F,GAAArI,EAAD,CACIsI,aAAc,CACVC,SAAU,MACVC,WAAY,UAEhBlG,KAAMpB,KAAKM,MAAMiG,OACjBgB,iBAAkB,IAClB5F,QAAS3B,KAAKiF,YACduC,aAAc,CACVC,mBAAoB,CAAEb,cAE1Bc,QAASlG,EAAA1C,EAAA2C,cAAA,QAAMkG,GAAIf,GAAV,cAAiC7D,EAAjC,wBACTxC,OAAQ,CACJiB,EAAA1C,EAAA2C,cAACmG,GAAA9I,EAAD,CACIyG,MAAM,YACNxD,QAAS/B,KAAKY,MAAMiH,oBAFxB,WAMArG,EAAA1C,EAAA2C,cAAC4D,EAAAvG,EAAD,CACI+E,IAAI,QACJ2B,aAAW,QACXD,MAAM,UACNpC,UAAWD,EAAQ4E,MACnB/F,QAAS/B,KAAKiF,aAEdzD,EAAA1C,EAAA2C,cAACsG,GAAAjJ,EAAD,kBAhEIoD,IAAMC,WC6FhC6F,GAAmB,SAAApH,GAAS,IACtBqH,EAA+CrH,EAA/CqH,OAAQC,EAAuCtH,EAAvCsH,gBAAiBC,EAAsBvH,EAAtBuH,OAAQhF,EAAcvC,EAAduC,UAEnCiF,EAAuB,OAAXD,QAA8BE,IAAXF,GAAwBA,EAAOG,OAAO7I,OAAS,EAG9E8I,EAFqBL,EAAgBzI,SAAWwI,EAAOO,aAKrDhH,EAAA1C,EAAA2C,cAAA,OAAK0B,UAAWA,GACX+E,EAAgBzI,QAHvBwI,EAAOO,aAAaC,WAM1B,OAAKL,EAQG5G,EAAA1C,EAAA2C,cAACiH,GAAA5J,EAAD,CAAO6J,aAAcJ,EAAmBhD,MAAO6C,EAAY,YAAc,UAAWjF,UAAWA,GAC1FvC,EAAMmF,UAPXvE,EAAA1C,EAAA2C,cAACD,EAAA1C,EAAM8J,SAAP,KACKhI,EAAMmF,WAYjB8C,8MACFvI,MAAQ,CACJwI,UAAU,EACVC,iBAAkB,QAGtBlB,mBAAqB,WACPmB,OAAO5H,KAAP,4CAAAyF,OAAwDhG,EAAKD,MAAMqH,OAAON,GAA1E,wCAAoH,UAC1HsB,QACJpI,EAAKqI,qBAGTC,kBAAoB,WAChBtI,EAAKM,SAAS,CAAE2H,UAAWjI,EAAKP,MAAMwI,cAG1CM,oBAAsB,SAAAvE,GAClBhE,EAAKM,SAAS,CAAE4H,iBAAkBlE,EAAMG,mBAG5CkE,gBAAkB,WACdrI,EAAKM,SAAS,CAAE4H,iBAAkB,UAGtCM,cAAgB,SAACpB,EAAQE,GAErB,OADAA,EAASA,EAAOmB,cACTrB,EAAOsB,iBACRtB,EAAOuB,QACPvB,EAAOuB,QAAQrB,OAAO,SAAAsB,GACpB,IAAmD,IAA/CA,EAAO1G,KAAKuG,cAAcI,QAAQvB,KAAqE,IAAnDsB,EAAOE,SAASL,cAAcI,QAAQvB,GAC1F,OAAO,EAGX,IADA,IAAMyB,EAAUH,EAAOG,QACdC,EAAI,EAAGA,EAAID,EAAQnK,OAAQoK,IAChC,IAAkD,IAA9CD,EAAQC,GAAGP,cAAcI,QAAQvB,GACjC,OAAO,EAGf,OAAO,6EAIV,IAAA2B,EAAA7G,EAC+BjD,KAAKY,MAAjCsC,EADHD,EACGC,QAAS+E,EADZhF,EACYgF,OAAQE,EADpBlF,EACoBkF,OACjB4B,EAA4D9B,EAA5D8B,QAASC,EAAmD/B,EAAnD+B,wBAAyBC,EAA0BhC,EAA1BgC,sBAClCC,EAAuBH,EAAvBG,QAASC,EAAcJ,EAAdI,UACTpB,EAAqB/I,KAAKM,MAA1ByI,iBACFb,EAAkBlI,KAAKqJ,cAAcpB,EAAQE,GAEnD,OACI3G,EAAA1C,EAAA2C,cAAA,WACID,EAAA1C,EAAA2C,cAAC2I,GAAAtL,EAAD,CAAMqE,UAAWkH,KAAWnH,EAAQoH,MAATR,EAAA,GAAAnL,OAAA4L,GAAA,EAAA5L,CAAAmL,EAClB5G,EAAQsH,gBAAkBxK,KAAKM,MAAMwI,UADnBnK,OAAA4L,GAAA,EAAA5L,CAAAmL,EAElB5G,EAAQuH,aAAezK,KAAKM,MAAMwI,UAFhBgB,KAIvBtI,EAAA1C,EAAA2C,cAACiJ,GAAA5L,EAAD,CACI6L,OACInJ,EAAA1C,EAAA2C,cAACmJ,GAAA9L,EAAD,CAAQ+L,IAAK5C,EAAOlF,KAAM+H,IAAG,2CAAAjE,OAA6CoB,EAAON,GAApD,SAA+DxE,UAAWD,EAAQyH,SAEnHpK,OACIiB,EAAA1C,EAAA2C,cAAA,WACID,EAAA1C,EAAA2C,cAAC4D,EAAAvG,EAAD,CACIiM,YAAWhC,EAAmB,cAAgB,KAC9CiC,gBAAc,OACdjJ,QAAS/B,KAAKoJ,qBAEd5H,EAAA1C,EAAA2C,cAACwJ,GAAAnM,EAAD,OAEJ0C,EAAA1C,EAAA2C,cAACyJ,GAAApM,EAAD,CACI6F,SAAUoE,EACV3H,KAAM+J,QAAQpC,GACdpH,QAAS3B,KAAKkJ,iBAEd1H,EAAA1C,EAAA2C,cAAC2J,GAAAtM,EAAD,CAAUiD,QAAS/B,KAAK6H,oBAAxB,aAKZd,MAAOkB,EAAOlF,KACdsI,UAAYnB,GACR1I,EAAA1C,EAAA2C,cAAA,WACID,EAAA1C,EAAA2C,cAAA,eAAAoF,OAAUqD,EAAV,SACA1I,EAAA1C,EAAA2C,cAACqF,GAAAhI,EAAD,CAAS6I,GAAG,oBAAoBZ,MAAOuE,KAAOnB,GAAWoB,OAAO,OAAQC,UAAU,gBAC9EhK,EAAA1C,EAAA2C,cAAA,YAAO6J,KAAOnB,GAAWoB,OAAO,UAKpC/J,EAAA1C,EAAA2C,cAAA,cAGZD,EAAA1C,EAAA2C,cAACgK,GAAA3M,EAAD,CAAaqE,UAAWD,EAAQwI,QAASC,sBAAoB,GACzDnK,EAAA1C,EAAA2C,cAACmK,GAAD,CACIjF,WAAW,UACX5D,KAAI,GAAA8D,OAAKoB,EAAOlF,KAAZ,cACJ2D,QAASuD,EACTpC,mBAAoB7H,KAAK6H,mBACzB3E,QAASA,GAET1B,EAAA1C,EAAA2C,cAACoK,GAAA/M,EAAD,OAEJ0C,EAAA1C,EAAA2C,cAACmK,GAAD,CACIjF,WAAW,YACX5D,KAAI,GAAA8D,OAAKoB,EAAOlF,KAAZ,gBACJ2D,QAASsD,EACTnC,mBAAoB7H,KAAK6H,mBACzB3E,QAASA,GAET1B,EAAA1C,EAAA2C,cAACqK,GAAAhN,EAAD,OAEJ0C,EAAA1C,EAAA2C,cAAA,OAAK0B,UAAWD,EAAQ6I,QACpBvK,EAAA1C,EAAA2C,cAACuK,GAAD,CAAkB/D,OAAQA,EAAQC,gBAAiBA,EAAiBC,OAAQA,EAAQhF,UAAWD,EAAQ+I,WACnGzK,EAAA1C,EAAA2C,cAACyK,GAAApN,EAAD,CAAMqN,MAAOlE,EAAOO,aAAcrF,UAAWD,EAAQkJ,iBAEzD5K,EAAA1C,EAAA2C,cAAC4D,EAAAvG,EAAD,CACIiD,QAAS/B,KAAKmJ,kBACdkD,gBAAerM,KAAKM,MAAMwI,SAC1BtD,aAAW,aAEXhE,EAAA1C,EAAA2C,cAAC6K,GAAAxN,EAAD,CACIqE,UAAWkH,KAAWnH,EAAQqJ,WAAT5N,OAAA4L,GAAA,EAAA5L,CAAA,GAChBuE,EAAQsJ,eAAiBxM,KAAKM,MAAMwI,gBAMzDtH,EAAA1C,EAAA2C,cAACgL,GAAA3N,EAAD,CAAUwE,GAAItD,KAAKM,MAAMwI,SAAU4D,QAAQ,OAAOzI,eAAa,GAC3DzC,EAAA1C,EAAA2C,cAACkL,GAAA7N,EAAD,CAAaqE,UAAWD,EAAQ0J,aAC5BpL,EAAA1C,EAAA2C,cAACoL,GAAA/N,EAAD,CAAOqE,UAAWD,EAAQ4J,aACtBtL,EAAA1C,EAAA2C,cAACsL,GAAAjO,EAAD,CACIkO,KAAM9E,EAAgBxE,IAAI,SAAAuJ,GAAC,MAAI,CAACA,EAAElK,KAAMkK,EAAEtD,SAAUsD,EAAErD,WACtD7C,MAAM,eACNmG,QAAS,CACL,SACA,WACA,CACInK,KAAM,UACNoK,QAAS,CACLC,iBAAkB,SAACxD,EAASyD,EAAWC,GACnC,OACI9L,EAAA1C,EAAA2C,cAAA,UACKmI,EAAQlG,IAAI,SAAC6J,EAAEC,GACZ,OACIhM,EAAA1C,EAAA2C,cAAA,MAAIoC,IAAG,GAAAgD,OAAK0G,EAAL,KAAA1G,OAAU2G,IAAKhM,EAAA1C,EAAA2C,cAAA,KAAG0E,KAAI,WAAAU,OAAa0G,GAAKnH,OAAO,SAASC,IAAI,uBAAuBkH,WAS1HJ,QAAS,CACLM,YAAY,EACZC,YAAa,MACbC,gBAAgB,EAChBC,WAAY,wBA7J/B1L,IAAMC,WA0KZC,wBAnRA,SAAAgC,GAAK,MAAK,CACrBkG,KAAM,CACFuD,SAAU,KAEdrD,eAAgB,CACZsD,SAAU,IACVC,WAAY3J,EAAM4J,YAAYC,OAAO,YAAa,CAC9CC,SAAU9J,EAAM4J,YAAYE,SAASC,SACrCC,OAAQ,aAGhB3D,aAAc,CACVqD,SAAU,OACVC,WAAY3J,EAAM4J,YAAYC,OAAO,YAAa,CAC9CC,SAAU9J,EAAM4J,YAAYE,SAASC,SACrCC,OAAQ,aAGhBnC,UAAW,CACPoC,WAAY,UAEhBzB,YAAa,GAEblB,QAAS,CACL4C,QAAS,QAEbvC,OAAQ,CACJ9F,WAAY,QAEhBmG,cAAe,CACXmC,SAAU,SAEdhC,WAAY,CACRiC,UAAW,eACXT,WAAY3J,EAAM4J,YAAYC,OAAO,YAAa,CAC9CC,SAAU9J,EAAM4J,YAAYE,SAASC,YAG7C3B,eAAgB,CACZgC,UAAW,kBAEfzE,QAAS,CACL0E,gBAAiB,UACjBC,QAAS,EACTC,aAAc,EACdC,aAAc,EACdvK,MAAO,GACPL,OAAQ,IAEZ2G,OAAQ,CACJkE,OAAQ,IAEZC,KAAM,CACFD,OAAQzK,EAAM2K,QAAQC,MAE1BC,MAAO,CACHJ,OAAQzK,EAAM2K,QAAQC,KACtBN,QAAStK,EAAM2K,QAAQC,MAE3BlC,YAAa,CACTzI,MAAO,OACP6K,UAAgC,EAArB9K,EAAM2K,QAAQC,KACzBG,UAAW,QAEfC,MAAO,CACH/K,MAAO,IACPyJ,SAAU,IACVD,SAAU,IACVwB,UAAW,KAGfvH,MAAO,CACHzD,MAA4B,EAArBD,EAAM2K,QAAQC,KACrBhL,OAA6B,EAArBI,EAAM2K,QAAQC,QA0Mf5M,CAAmByG,IChR5ByG,8MAEFhP,MAAQ,CAAE6H,OAAQ,MAOlBvD,aAAe,SAAAC,GACbhE,EAAKM,SAAS,CACZgH,OAAQtD,EAAMuB,OAAOmJ,WAIzBlG,cAAgB,SAAC/K,EAAS6J,GAEtB,OADAA,EAASA,EAAOmB,cACThL,EAAQ6J,OAAO,SAAUqH,GAC5B,GAAe,KAAXrH,EAGA,OAFAqH,EAAEC,SAAU,EACZD,EAAEjG,kBAAmB,GACd,EAJoB,IAOvBxG,EAAkByM,EAAlBzM,KAAMyG,EAAYgG,EAAZhG,QACd,IAA4C,IAAxCzG,EAAKuG,cAAcI,QAAQvB,GAE3B,OADAqH,EAAEjG,kBAAmB,GACd,EAEXiG,EAAEjG,kBAAmB,EAErB,IAAK,IAAIiE,EAAI,EAAGA,EAAIhE,EAAQ/J,OAAQ+N,IAAK,CACrC,IAAM/D,EAASD,EAAQgE,GAEvB,IAAmD,IAA/C/D,EAAO1G,KAAKuG,cAAcI,QAAQvB,KAAqE,IAAnDsB,EAAOE,SAASL,cAAcI,QAAQvB,GAC1F,OAAO,EAGX,IADA,IAAMyB,EAAUH,EAAOG,QACdC,EAAI,EAAGA,EAAID,EAAQnK,OAAQoK,IAChC,IAAkD,IAA9CD,EAAQC,GAAGP,cAAcI,QAAQvB,GACjC,OAAO,EAKnB,OAAO,yFAvCXnI,KAAKY,MAAMH,kDA2CN,IAAAwC,EACmCjD,KAAKY,MAArCsC,EADHD,EACGC,QAAS5E,EADZ2E,EACY3E,QAASC,EADrB0E,EACqB1E,UAClB4J,EAAWnI,KAAKM,MAAhB6H,OAEJuH,EAAkB1P,KAAKqJ,cAAc/K,EAAS6J,GAElD,OACI3G,EAAA1C,EAAA2C,cAAA,WACID,EAAA1C,EAAA2C,cAACkO,GAAA7Q,EAAD,CAAM8Q,WAAS,EAACb,QAAS,IACrBvN,EAAA1C,EAAA2C,cAACkO,GAAA7Q,EAAD,CAAM+Q,MAAI,EAACC,GAAI,IACXtO,EAAA1C,EAAA2C,cAAA,WACAD,EAAA1C,EAAA2C,cAAA,WACAD,EAAA1C,EAAA2C,cAAA,WACAD,EAAA1C,EAAA2C,cAACsO,GAAAjR,EAAD,CACI6I,GAAG,SACHwE,MAAM,SACNhJ,UAAWD,EAAQ8M,UACnBT,MAAOvP,KAAKM,MAAM6H,OAClB8H,SAAUjQ,KAAK4E,aACfiK,OAAO,aAGbtQ,GACEmR,EAAgBhM,IAAI,SAAAC,GAAK,OACrBnC,EAAA1C,EAAA2C,cAACkO,GAAA7Q,EAAD,CAAM+E,IAAKF,EAAMgE,GAAIkI,MAAI,GACrBrO,EAAA1C,EAAA2C,cAACyO,GAAD,CAAQjI,OAAQtE,EAAOwE,OAAQA,QAM9C5J,GACGiD,EAAA1C,EAAA2C,cAAA,WACID,EAAA1C,EAAA2C,cAAC4B,GAAAvE,EAAD,CACIwE,GAAI/E,EACJgF,MAAO,CACHC,gBAAiBjF,EAjCrB,QAiC+C,MAC3CyF,OAAQzF,EAAY,GAAK,GAE7B0F,eAAa,GAEbzC,EAAA1C,EAAA2C,cAACyC,GAAApF,EAAD,gBA1FNoD,IAAMC,WAmGbgC,eACX/B,qBAnHW,SAAAgC,GAAK,MAAK,CACrBwL,UAAW,CACTtB,QAAS,OACT6B,SAAU,QAEZH,UAAW,CACT/J,WAAY7B,EAAM2K,QAAQC,KAC1B9I,YAAa9B,EAAM2K,QAAQC,KAC3B3K,MAAO,KAET+L,KAAM,CACJ/L,MAAO,QAyGTE,YACI,SAAAjE,GAAK,OAAIA,EAAMI,SACf,SAAAzB,GAAQ,OAAIuF,YAAmBhG,EAAgBS,KAJxCkF,CAMbmL,ICvHIe,oLAEF,OACI7O,EAAA1C,EAAA2C,cAAA,OAAK0B,UAAWnD,KAAKY,MAAMsC,QAAQE,MACjC5B,EAAA1C,EAAA2C,cAAC6O,GAAD,KACE9O,EAAA1C,EAAA2C,cAAC8O,EAAA,EAAD,CAAOC,OAAK,EAACC,KAAK,IAAIlO,UAAWmO,KACjClP,EAAA1C,EAAA2C,cAAC8O,EAAA,EAAD,CAAOC,OAAK,EAACC,KAAK,WAAWlO,UAAW+M,cANlCpN,IAAMC,WAaTC,wBAnBA,SAAAgC,GAAK,MAAK,CACrBhB,KAAKzE,OAAA6B,EAAA,EAAA7B,CAAA,GACAyF,EAAMuM,cAiBAvO,CAAmBiO,IChB5BO,GAAczF,QACW,cAA7BnC,OAAO6H,SAASC,UAEe,UAA7B9H,OAAO6H,SAASC,UAEhB9H,OAAO6H,SAASC,SAASC,MACvB,2DA6BN,SAASC,GAAgBC,GACvBC,UAAUC,cACPC,SAASH,GACTI,KAAK,SAAAC,GACJA,EAAaC,cAAgB,WAC3B,IAAMC,EAAmBF,EAAaG,WACtCD,EAAiBE,cAAgB,WACA,cAA3BF,EAAiBlR,QACf4Q,UAAUC,cAAcQ,WAK1BC,QAAQC,IAAI,6CAKZD,QAAQC,IAAI,2CAMrBC,MAAM,SAAAC,GACLH,QAAQG,MAAM,4CAA6CA,KC1DjE,IAAMC,GAAUC,SAASC,qBAAqB,QAAQ,GAAGC,aAAa,QAChEC,GAAUC,YAAqB,CAAEC,SAAUN,KAI3CO,GCXS,SAAwBH,EAAS/T,GAC9C,IAAMmU,EAAW,CACfhT,YAAaiT,EACb/R,QAAS4O,GAGLoD,EAAa,CACjBC,IACAC,YAAiBR,IAIbS,EAAY,GAMZC,EAAcC,YAAgBpU,OAAA6B,EAAA,EAAA7B,CAAA,GAC/B6T,EAD8B,CAEjCQ,QAASC,OAGX,OAAOC,YACLJ,EACAzU,EACA8F,IAAOhE,WAAP,GAAQgT,IAAehT,WAAf,EAAmBuS,IAA3B7L,OAA2CgM,KDfjCO,CAAehB,GADRpJ,OAAOqK,mBAGtBC,GAAcrB,SAASsB,eAAe,QAE5CC,IAASC,OACPjS,EAAA1C,EAAA2C,cAACD,EAAA1C,EAAM8J,SAAP,KACEpH,EAAA1C,EAAA2C,cAACiS,EAAA5U,EAAD,MACI0C,EAAA1C,EAAA2C,cAACkS,EAAA,EAAD,CAAUpB,MAAOA,IACjB/Q,EAAA1C,EAAA2C,cAACmS,EAAA,EAAD,CAAiBxB,QAASA,IACtB5Q,EAAA1C,EAAA2C,cAACoS,GAAD,SAIVP,IDVa,WACb,GAA6C,kBAAmBpC,UAAW,CAGzE,GADkB,IAAI4C,IAAIC,GAAwB/K,OAAO6H,UAC3CmD,SAAWhL,OAAO6H,SAASmD,OAIvC,OAGFhL,OAAOiL,iBAAiB,OAAQ,WAC9B,IAAMhD,EAAK,GAAApK,OAAMkN,GAAN,sBAEPnD,GAwCV,SAAiCK,GAE/BrR,MAAMqR,GACHI,KAAK,SAAAlS,GAGkB,MAApBA,EAAS+U,SACuD,IAAhE/U,EAASgV,QAAQC,IAAI,gBAAgB1K,QAAQ,cAG7CwH,UAAUC,cAAckD,MAAMhD,KAAK,SAAAC,GACjCA,EAAagD,aAAajD,KAAK,WAC7BrI,OAAO6H,SAAS0D,aAKpBvD,GAAgBC,KAGnBa,MAAM,WACLF,QAAQC,IACN,mEA5DA2C,CAAwBvD,GAGxBD,GAAgBC,MCPxBwD","file":"static/js/main.a16d42e4.chunk.js","sourcesContent":["const requestMenuEntriesType = 'REQUEST_MENU_ENTRIES';\r\nconst receiveMenuEntriesType = 'RECEIVE_MENU_ENTRIES';\r\nconst initialState = { entries: [], isLoading: false };\r\n\r\nexport const actionCreators = {\r\n requestMenuEntries: () => async (dispatch, getState) => {\r\n if (getState().menuEntries.entries.length > 0) {\r\n // Don't issue a duplicate request (we already have or are loading the requested data)\r\n return;\r\n }\r\n\r\n dispatch({ type: requestMenuEntriesType });\r\n\r\n const url = 'api/Security/MenuEntries';\r\n const response = await fetch(url);\r\n const entries = await response.json();\r\n\r\n dispatch({ type: receiveMenuEntriesType, entries });\r\n }\r\n};\r\n\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === requestMenuEntriesType) {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }\r\n\r\n if (action.type === receiveMenuEntriesType) {\r\n return {\r\n ...state,\r\n entries: action.entries,\r\n isLoading: false\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n","const requestBundlesType = 'REQUEST_BUNDLES';\r\nconst receiveBundlesType = 'RECEIVE_BUNDLES';\r\nconst initialState = { entries: [], isLoading: false };\r\n\r\nexport const actionCreators = {\r\n requestBundles: () => async (dispatch, getState) => { \r\n if (getState().bundles.entries.length > 0) {\r\n // Don't issue a duplicate request (we already have or are loading the requested data)\r\n return;\r\n }\r\n\r\n dispatch({ type: requestBundlesType });\r\n\r\n const url = 'api/bundles/all';\r\n const response = await fetch(url);\r\n const entries = await response.json();\r\n\r\n dispatch({ type: receiveBundlesType, entries });\r\n }\r\n};\r\n\r\nexport const reducer = (state, action) => {\r\n state = state || initialState;\r\n\r\n if (action.type === requestBundlesType) {\r\n return {\r\n ...state,\r\n isLoading: true\r\n };\r\n }\r\n\r\n if (action.type === receiveBundlesType) {\r\n return {\r\n ...state,\r\n entries: action.entries,\r\n isLoading: false\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport SwipeableDrawer from '@material-ui/core/SwipeableDrawer';\r\n\r\nconst styles = { \r\n};\r\n\r\nclass NavMenu extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: props.open\r\n }\r\n }\r\n\r\n openMenu = () => {\r\n this.setState({\r\n open: true\r\n });\r\n }\r\n \r\n closeMenu = () => {\r\n this.setState({\r\n open: false\r\n });\r\n }\r\n\r\n componentWillReceiveProps(nextProps, nextState) {\r\n this.setState({\r\n open: nextProps.open\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.props.sideList}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(NavMenu);","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { compose } from 'recompose';\r\nimport { connect } from 'react-redux';\r\nimport { actionCreators } from '../store/MenuEntries';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport Icon from '@material-ui/core/Icon';\r\nimport Fade from '@material-ui/core/Fade';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n width: 250,\r\n },\r\n placeholder: {\r\n \"text-align\": \"center\",\r\n },\r\n });\r\n\r\nconst MenuEntry = function(props) {\r\n return (\r\n \r\n {props.icon}\r\n \r\n \r\n );\r\n}\r\n\r\nclass Sidenav extends React.Component {\r\n componentWillMount() {\r\n // This method runs when the component is first added to the page\r\n this.props.requestMenuEntries();\r\n }\r\n \r\n render() {\r\n const fadingDelay = '400ms';\r\n const { classes, isLoading } = this.props;\r\n\r\n return (\r\n
\r\n \r\n \r\n {this.props.entries.map(entry => (\r\n \r\n )\r\n )}\r\n \r\n \r\n {isLoading && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(\r\n state => state.menuEntries,\r\n dispatch => bindActionCreators(actionCreators, dispatch)\r\n ),\r\n )(Sidenav);","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport NavMenu from './NavMenu';\r\nimport Sidenav from './Sidenav';\r\n\r\nconst styles = {\r\n root: {\r\n flexGrow: 1,\r\n },\r\n flex: {\r\n flex: 1,\r\n },\r\n menuButton: {\r\n marginLeft: -12,\r\n marginRight: 20,\r\n },\r\n };\r\n\r\n class Layout extends React.Component {\r\n\r\n state = {\r\n auth: true,\r\n anchorEl: null,\r\n open: false,\r\n sideList: []\r\n };\r\n\r\n handleChange = (event, checked) => {\r\n this.setState({ auth: checked });\r\n };\r\n \r\n handleMenu = event => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n };\r\n \r\n handleClose = () => {\r\n this.setState({ anchorEl: null });\r\n };\r\n\r\n openMenu = () => {\r\n this.setState({\r\n open: true\r\n });\r\n }\r\n \r\n closeMenu = () => {\r\n this.setState({\r\n open: false\r\n });\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n DevOps\r\n \r\n \r\n \r\n }\r\n >\r\n \r\n {this.props.children}\r\n
\r\n );\r\n }\r\n }\r\n \r\n Layout.propTypes = {\r\n classes: PropTypes.object.isRequired,\r\n };\r\n \r\n export default withStyles(styles)(Layout);","import React from 'react';\r\nimport { connect } from 'react-redux';\r\n\r\nconst Home = props => (\r\n
\r\n

Welcome to Vonigo DevOps

\r\n \r\n
\r\n);\r\n\r\nexport default connect()(Home);\r\n","import React from 'react';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport Button from '@material-ui/core/Button';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\r\n\r\nclass CopyContentAction extends React.Component {\r\n\r\n state = { copied: false };\r\n\r\n handleCopyClick = () => {\r\n this.setState({\r\n copied: true\r\n });\r\n };\r\n\r\n handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n\r\n this.setState({ copied: false });\r\n };\r\n\r\n render() {\r\n const { content, name, messageKey, classes } = this.props;\r\n const messageId = `${messageKey}-id`;\r\n return (\r\n
\r\n \r\n \r\n \r\n {this.props.children}\r\n \r\n \r\n \r\n Content of {name} copied to clipboard}\r\n action={[\r\n \r\n Octopus\r\n ,\r\n \r\n \r\n ,\r\n ]}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CopyContentAction;","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport moment from 'moment';\r\nimport classnames from 'classnames';\r\nimport Card from '@material-ui/core/Card';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport CardHeader from '@material-ui/core/CardHeader';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport MUIDataTable from 'mui-datatables';\r\nimport DatabaseExportIcon from 'mdi-react/DatabaseExportIcon';\r\nimport WebIcon from 'mdi-react/WebIcon';\r\nimport CopyContentAction from './CopyContentAction';\r\n\r\nconst styles = theme => ({\r\n card: {\r\n minWidth: 250\r\n },\r\n cardContracted: {\r\n maxWidth: 250,\r\n transition: theme.transitions.create('max-width', {\r\n duration: theme.transitions.duration.shortest,\r\n easing: 'ease-in'\r\n }),\r\n },\r\n cardExpanded: {\r\n maxWidth: 'none',\r\n transition: theme.transitions.create('max-width', {\r\n duration: theme.transitions.duration.shortest,\r\n easing: 'ease-in'\r\n }),\r\n },\r\n cardBadge: {\r\n whiteSpace: 'nowrap',\r\n },\r\n cardDetails: {\r\n },\r\n actions: {\r\n display: 'flex',\r\n },\r\n expand: {\r\n marginLeft: 'auto',\r\n },\r\n expandCounter: {\r\n fontSize: 'small'\r\n },\r\n expandIcon: {\r\n transform: 'rotate(0deg)',\r\n transition: theme.transitions.create('transform', {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n },\r\n expandIconOpen: {\r\n transform: 'rotate(180deg)',\r\n },\r\n octopus: {\r\n backgroundColor: '#2f93e0',\r\n padding: 3,\r\n paddingRight: 4,\r\n borderRadius: 5,\r\n width: 20,\r\n height: 20\r\n },\r\n avatar: {\r\n margin: 10,\r\n },\r\n chip: {\r\n margin: theme.spacing.unit,\r\n },\r\n paper: {\r\n margin: theme.spacing.unit,\r\n padding: theme.spacing.unit\r\n },\r\n rootContent: {\r\n width: '100%',\r\n marginTop: theme.spacing.unit * 3,\r\n overflowX: 'auto',\r\n },\r\n table: {\r\n width: 310,\r\n maxWidth: 310,\r\n minWidth: 310,\r\n maxHeight: 200\r\n\r\n },\r\n close: {\r\n width: theme.spacing.unit * 4,\r\n height: theme.spacing.unit * 4,\r\n },\r\n});\r\n\r\nconst ClientCountBadge = props => {\r\n const { bundle, filteredClients, filter, className } = props;\r\n\r\n const hasFilter = filter !== null && filter !== undefined && filter.trim().length > 0;\r\n const hasFilteredClients = filteredClients.length !== bundle.clientsCount;\r\n\r\n const clientsCountBadge = !hasFilteredClients\r\n ? bundle.clientsCount.toString()\r\n : (\r\n
\r\n {filteredClients.length}\r\n
\r\n );\r\n if (!hasFilter) {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n } else {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n }\r\n}\r\n\r\nclass Bundle extends React.Component {\r\n state = {\r\n expanded: false,\r\n openMenuAnchorEl: null\r\n };\r\n\r\n handleOctopusClick = () => {\r\n var win = window.open(`https://octopus.vonigo.cool/app#/tenants/${this.props.bundle.id}/variables?activeTab=commonVariables`, '_blank');\r\n win.focus();\r\n this.handleMenuClose();\r\n };\r\n\r\n handleExpandClick = () => {\r\n this.setState({ expanded: !this.state.expanded });\r\n };\r\n\r\n handleOpenMenuClick = event => {\r\n this.setState({ openMenuAnchorEl: event.currentTarget });\r\n };\r\n\r\n handleMenuClose = () => {\r\n this.setState({ openMenuAnchorEl: null });\r\n };\r\n\r\n filterEntries = (bundle, filter) => {\r\n filter = filter.toLowerCase();\r\n return bundle.filteredByBundle\r\n ? bundle.clients\r\n : bundle.clients.filter(client => {\r\n if (client.name.toLowerCase().indexOf(filter) !== -1 || client.database.toLowerCase().indexOf(filter) !== -1) {\r\n return true;\r\n }\r\n const domains = client.domains;\r\n for (let k = 0; k < domains.length; k++) {\r\n if (domains[k].toLowerCase().indexOf(filter) !== -1) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n\r\n render() {\r\n const { classes, bundle, filter } = this.props;\r\n const { octopus, commaSeparatedDatabases, commaSeparatedDomains } = bundle;\r\n const { version, updatedAt } = octopus;\r\n const { openMenuAnchorEl } = this.state;\r\n const filteredClients = this.filterEntries(bundle, filter);\r\n\r\n return (\r\n
\r\n \r\n \r\n }\r\n action={\r\n
\r\n \r\n \r\n \r\n \r\n Octopus\r\n \r\n\r\n
\r\n }\r\n title={bundle.name}\r\n subheader={(version && (\r\n
\r\n {`${version} at `}\r\n \r\n {moment(updatedAt).format('ll')}\r\n \r\n
\r\n )) || (\r\n // \r\n
\r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n [c.name, c.database, c.domains])}\r\n title='Client setup'\r\n columns={[\r\n 'Client',\r\n 'Database',\r\n {\r\n name: 'Domains',\r\n options: {\r\n customBodyRender: (domains, tableMeta, updateValue) => {\r\n return (\r\n
    \r\n {domains.map((d,i) => {\r\n return (\r\n
  • {d}
  • \r\n )\r\n })}\r\n
\r\n )\r\n }\r\n }\r\n }\r\n ]}\r\n options={{\r\n pagination: false,\r\n rowsPerPage: 99999,\r\n selectableRows: false,\r\n responsive: 'scroll'\r\n }}\r\n />\r\n
\r\n
\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(Bundle);","import React from 'react';\r\nimport { bindActionCreators } from 'redux';\r\nimport { compose } from 'recompose';\r\nimport { connect } from 'react-redux';\r\nimport { actionCreators } from '../../store/Bundles';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Fade from '@material-ui/core/Fade';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Bundle from './Bundle';\r\n\r\nconst styles = theme => ({\r\n container: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n textField: {\r\n marginLeft: theme.spacing.unit,\r\n marginRight: theme.spacing.unit,\r\n width: 200,\r\n },\r\n menu: {\r\n width: 200,\r\n },\r\n });\r\n \r\nclass Bundles extends React.Component {\r\n\r\n state = { filter: '' }\r\n\r\n componentWillMount() {\r\n // This method runs when the component is first added to the page\r\n this.props.requestBundles();\r\n }\r\n\r\n handleChange = event => {\r\n this.setState({\r\n filter: event.target.value,\r\n });\r\n };\r\n\r\n filterEntries = (entries, filter) => {\r\n filter = filter.toLowerCase();\r\n return entries.filter(function (e) {\r\n if (filter === '') {\r\n e.showAll = false;\r\n e.filteredByBundle = false;\r\n return true;\r\n }\r\n\r\n const { name, clients } = e;\r\n if (name.toLowerCase().indexOf(filter) !== -1) {\r\n e.filteredByBundle = true;\r\n return true;\r\n }\r\n e.filteredByBundle = false;\r\n\r\n for (let i = 0; i < clients.length; i++) {\r\n const client = clients[i];\r\n\r\n if (client.name.toLowerCase().indexOf(filter) !== -1 || client.database.toLowerCase().indexOf(filter) !== -1) {\r\n return true;\r\n }\r\n const domains = client.domains;\r\n for (let k = 0; k < domains.length; k++) {\r\n if (domains[k].toLowerCase().indexOf(filter) !== -1) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n });\r\n }\r\n\r\n render() {\r\n const { classes, entries, isLoading } = this.props;\r\n const { filter } = this.state;\r\n const fadingDelay = '400ms';\r\n var filteredEntries = this.filterEntries(entries, filter);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {!isLoading && \r\n filteredEntries.map(entry => (\r\n \r\n \r\n \r\n )\r\n )}\r\n
\r\n\r\n {isLoading && (\r\n
\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default compose(\r\n withStyles(styles),\r\n connect(\r\n state => state.bundles,\r\n dispatch => bindActionCreators(actionCreators, dispatch)\r\n )\r\n)(Bundles);\r\n","import React from 'react';\r\nimport { Route } from 'react-router';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport Layout from './components/Layout';\r\nimport Home from './components/Home';\r\nimport Bundles from './components/bundle/Bundles';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n ...theme.typography,\r\n },\r\n });\r\n\r\nclass App extends React.Component {\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n};\r\n\r\nexport default withStyles(styles)(App);\r\n// export default App;","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register() {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import './index.css';\r\nimport React from 'react';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { ConnectedRouter } from 'react-router-redux';\r\nimport { createBrowserHistory } from 'history';\r\nimport configureStore from './store/configureStore';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\n// Create browser history to use in the Redux store\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst history = createBrowserHistory({ basename: baseUrl });\r\n\r\n// Get the application-wide store instance, prepopulating with state from the server where available.\r\nconst initialState = window.initialReduxState;\r\nconst store = configureStore(history, initialState);\r\n\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n","import { applyMiddleware, combineReducers, compose, createStore } from 'redux';\r\nimport thunk from 'redux-thunk';\r\nimport { routerReducer, routerMiddleware } from 'react-router-redux';\r\nimport * as MenuEntries from './MenuEntries';\r\nimport * as Bundles from './Bundles';\r\n\r\nexport default function configureStore(history, initialState) {\r\n const reducers = {\r\n menuEntries: MenuEntries.reducer,\r\n bundles: Bundles.reducer\r\n };\r\n\r\n const middleware = [\r\n thunk,\r\n routerMiddleware(history)\r\n ];\r\n\r\n // In development, use the browser's Redux dev tools extension if installed\r\n const enhancers = [];\r\n const isDevelopment = process.env.NODE_ENV === 'development';\r\n if (isDevelopment && typeof window !== 'undefined' && window.devToolsExtension) {\r\n enhancers.push(window.devToolsExtension());\r\n }\r\n\r\n const rootReducer = combineReducers({\r\n ...reducers,\r\n routing: routerReducer\r\n });\r\n\r\n return createStore(\r\n rootReducer,\r\n initialState,\r\n compose(applyMiddleware(...middleware), ...enhancers)\r\n );\r\n}\r\n"],"sourceRoot":""}